Microsoft、「Bing」で使用する自然言語処理ライブラリとツール「Bling Fire」を公開:他のライブラリより10倍高速
Microsoftは、Bingで使用している超高速有限ステートマシンと正規表現操作ライブラリ「Bling Fire」をGitHubで公開した。従来のライブラリよりも高速で、例えばPythonから容易に利用できる。
Microsoftの検索エンジン「Bing」の改良を担当する「Bling(Beyond Language Understanding)」チームは、Bingで使われている「超高速有限ステートマシン」と正規表現操作ライブラリ「Bling Fire」をGitHubで公開した。「Fire」は、FInite state machine and REgular expression manipulation libraryの略語。
Bling Fireは、Bing内のさまざまな言語操作に使われている。その一部を挙げると、トークナイゼーション(トークン化)や複数語表現マッチング、未知語の推測、ステミング/レンマ化などがある。
ステミングは、テキスト内の語の語幹を取り出す作業。レンマ化は、テキスト内の語を、見出し語(レンマ)を決めるために分類整理することを指す。
Bling Fireトークナイザ
Bling Fireトークナイザは、自然言語テキストの高速で高品質なトークン化を行うように設計されている。主に、Pythonの自然言語処理(NLP)ライブラリ「NLTK」のトークン化ロジックに従うが、例外もある。ハイフン付きの語が分割されることと、幾つかのエラーが修正されていることだ。
NLTKとBling Fireのトークン化がどの程度異なるのかを次に示す。
- NLTKによるトークン化
The South Florida/Miami area has previously hosted the event 10 times . Names such as French , ( De ) Roche , Devereux , D'Arcy , Treacy and Lacy are particularly common in the southeast of Ireland . Marconi 's European experiments in July 1899 - Marconi may have transmitted the letter S ( dot/dot/dot ) in a naval demonstration In the confirmation window , click OK. Review the FMT Real - time Report ES . Go to C : \Users\Public\Documents\hyper - v\Virtual hard disks\ and delete MSIT_Win10.VHDX . … and an agency / vendor company are regulated by the country ' s civil code ; labor relationships between a …
- Bling Fireによるトークン化
The South Florida / Miami area has previously hosted the event 10 times . Names such as French , ( De ) Roche , Devereux , D' Arcy , Treacy and Lacy are particularly common in the southeast of Ireland . Marconi 's European experiments in July 1899 - Marconi may have transmitted the letter S ( dot / dot / dot ) in a naval demonstration In the confirmation window , click OK . Review the FMT Real - time Report ES . Go to C : \ Users \ Public \ Documents \ hyper - v \ Virtual hard disks \ and delete MSIT_Win10 . VHDX . … and an agency / vendor company are regulated by the country 's civil code ; labor relationships between a …
現在リリースされているモデルは、東アジアの言語(日本語、韓国語、簡体中国語、繁体中国語、タイ語)以外の大半の言語をサポートしている。スペースをトークン区切りとして使用する言語では、良好な結果が期待できるだろうと、Blingチームは述べている。
Bling FireトークナイザのハイレベルAPIは、構成や初期化、追加ファイルを必要とせず、PythonやPerl、C#、Javaなどの言語から使いやすように設計されている。決定論的ステートマシンを利用したことで、高速に動作する。
性能評価の結果は良好
Blingチームによると、Bling Fireと他の一般的なNLPライブラリでトークン化タスクの実行速度を比べたところ、Bling Fireは約10倍の速度を記録したという。
システム | 平均実行時間(秒/1万パッセージ) |
---|---|
Bling Fire | 0.823 |
SpaCy | 8.653 |
NLTK | 17.821 |
Bling Fireをインストールするには
独自のトークン化やセグメント化、ステミングなどのロジックを作成したい場合や、有限ステートマシンを他の目的で使用する必要がある場合は、WindowsやLinux上でCMakeを用いてプロジェクトをビルドすればよい。
Bling Fireを単にPythonで使いたい場合は、以下のようにpipを使えば最新リリースをインストールできる。
pip install blingfire
Pythonのコードでは、次のようにBling Fireを使えばよい。
from blingfire import * text = 'This is the Bling-Fire tokenizer' output = text_to_words(text)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 学習させることで、どんどん賢くなっていくLUISをbotサービスで活用するには
コグニティブサービスのAPIを用いて、「現在のコグニティブサービスでどのようなことができるのか」「どのようにして利用できるのか」「どの程度の精度なのか」を検証していく連載。最終回となる今回は、LUIS(Language Understanding Intelligent Service)とMicrosoft Bot Frameworkを組み合わせてbotサービスを作成します。 - Pythonで機械学習/Deep Learningを始めるなら知っておきたいライブラリ/ツール7選
最近流行の機械学習/Deep Learningを試してみたいという人のために、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説する連載。初回は、筆者が実業務で有用としているライブラリ/ツールを7つ紹介します。 - ElasticsearchとKuromojiを使った形態素解析とN-Gramによる検索の適合率と再現率の向上
リクルートの事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。今回は、テンプレートを利用したインデックス生成など、検索結果の品質を向上させるためのさまざまな取り組みを紹介する。