DUICUO

2022年に知っておくべきオープンソースNLPライブラリ20選

この記事では、現在最もよく使われているNLPライブラリをいくつか挙げ、簡潔に解説しました。それぞれ異なるユースケースにおいて、それぞれに長所と短所があり、NLPを専門とする優秀なデータサイエンティストにとって、どれも有効な選択肢となるでしょう。各ライブラリの説明は、それぞれのGitHubページから引用しています。

NLPライブラリ

以下は、GitHub での星の数の降順で並べたトップライブラリのリストです。

1. ハグフェイストランスフォーマー

GitHub スター数 57.1k。

Transformersは、テキスト、ビジョン、音声など、様々なタスクを実行するための数千もの事前学習済みモデルを提供しています。これらのモデルは、テキスト(テキスト分類、情報抽出、質問応答、要約、翻訳、テキスト生成、100以上の言語に対応)、画像(画像分類、オブジェクト検出、セグメンテーション)、音声(音声認識と音声分類)に適用できます。Transformersモデルは、複数のモダリティを組み合わせて、表形式の質問応答、OCR、スキャンされた文書からの情報抽出、ビデオ分類、ビジュアル質問応答などのタスクを実行することもできます。

2. スペイシー

22.2k GitHub スター。

spaCyは、PythonとCythonで利用できる自然言語処理用の無料オープンソースライブラリです。当初から本番環境向けに設計されています。spaCyには事前学習済みのパイプラインが付属しており、現在60以上の言語のトークン化と学習をサポートしています。タグ付け、構文解析、固有表現抽出、テキスト分類、そしてBERTなどの事前学習済みTransformerを用いたマルチタスク学習のための最先端のニューラルネットワークモデルを備えています。モデルはパッケージ化、デプロイ、そして本番環境への導入も容易に行えます。spaCyはMITライセンスに基づいてリリースされている商用オープンソースソフトウェアです。

3. フェアセク

15.1k GitHub スター。

Fairseqは、研究者や開発者が翻訳、要約、言語モデリング、その他のテキスト生成タスク用のカスタムモデルを学習できるシーケンスモデリングツールキットです。様々なシーケンスモデリング論文向けのリファレンス実装を提供しています。

4. ゲンシム

12.8k GitHub スター。

Gensimは、トピックモデリング、ドキュメントインデックス作成、大規模コーパスの類似検索のためのPythonライブラリです。NLPおよび情報検索(IR)コミュニティを対象としています。Gensimは、潜在的意味解析(LSA/LSI/SVD)、潜在的ディリクレ配分法(LDA)、ランダム射影(RP)、階層的ディリクレ過程(HDP)、Word2Vecディープラーニングなど、一般的なアルゴリズムの効率的なマルチコア実装を備えています。

5. フレア

11.2k GitHub スター。

Flairは強力なNLPライブラリです。Flairは、固有表現抽出(NER)、品詞タグ付け(PoS)、生物医学データへの対応、意味的曖昧性解消、分類といった最先端のNLPモデルをテキストに適用することを目的としています。Flairは、Flair埋め込み、BERT埋め込み、ELMo埋め込みなど、様々な単語や文書の埋め込みを自由に組み合わせて使用​​できるシンプルなインターフェースを備えています。このフレームワークはPyTorch上に構築されているため、独自のモデルを簡単に学習し、Flair埋め込みやライブラリを用いた新しい手法を試すことができます。

6. アレンNLP

GitHub スター数 10.8k。

AllenNLPは、PyTorchをベースに構築され、Apache 2.0オープンソースライセンスに基づいてライセンスされているNLP研究ライブラリです。幅広い言語タスクにおいて最先端のディープラーニングモデルを開発するためのツールが含まれており、高い水準で設計された幅広い既存モデル実装も提供しており、さらなる研究のための強固な基盤を築きます。AllenNLPは、トランスフォーマー、マルチタスクトレーニング、視覚+言語タスク、公平性、解釈可能性など、多くの一般的なNLPアプローチを実装するための高水準設定言語を提供します。これにより、設定のみで幅広いタスクの実験が可能になり、ユーザーは研究における重要な問題の解決に集中できます。

7. NLTK

10.4k GitHub スター。

NLTK(Natural Language Toolkit)は、自然言語処理の研究開発を支援するオープンソースのPythonパッケージ、データセット、チュートリアルのコレクションです。50以上のコーパスと語彙リソース(WordNetなど)への使いやすいインターフェースに加え、分類、トークン化、ステミング、ラベリング、構文解析、意味推論のためのテキスト処理ライブラリスイートを提供します。

8. コアNLP

8.3k GitHub スター。

Stanford CoreNLPは、Javaで記述された自然言語解析ツールセットを提供します。人間の言語による生のテキスト入力を受け取り、単語、品詞、会社名、人名などの基本形を生成したり、日付、時刻、数値を正規化・解釈したり、句や単語の依存関係に基づいて文の構造をマークしたり、同じエンティティを参照する名詞句を特定したりできます。

9. パターン

8.1k GitHub スター。

注意: このライブラリは 2 年間更新されていません。

Patternは、Webサービス(Google、Twitter、Wikipedia)、Webクローラー、HTML DOMパーサーを含むPython Webマイニングツールキットです。品詞タグ付け、Nグラム検索、感情分析、WordNetといった自然言語処理モデルをサポートしています。機械学習モデル(ベクトル空間モデル、クラスタリング、分類(KNN、SVM、パーセプトロン))も実装しています。また、グラフ中心性や可視化といったネットワーク分析にも利用できます。

10. テキストブロブ

GitHub スター 8,000 件。

TextBlobは、テキストデータを処理するためのPythonライブラリです。品詞タグ付け、名詞句抽出、感情分析、分類、翻訳といった一般的な自然言語処理タスクを詳細に調査するためのシンプルなAPIを提供します。TextBlobはNLTKとPatternをベースに構築されており、どちらとも連携して動作します。

11. ハグフェイストークナイザー

GitHub スター 5.2k。

このライブラリは、パフォーマンスと汎用性を重視して、現在最も一般的に使用されているタグ付けツールの実装を提供します。

12. 干し草の山

3.8k GitHub スター。

Haystackは、多様な検索ユースケースに対応し、堅牢で本番環境対応可能なパイプラインの構築を可能にするエンドツーエンドのフレームワークです。質問応答やセマンティックドキュメント検索など、Haystackは最先端のNLPモデルを活用し、独自の検索エクスペリエンスを提供し、ユーザーが自然言語でクエリを実行できるようにします。Haystackはモジュール形式で構築されているため、HuggingfaceのTransformers、Elasticsearch、Milvusなどの他のオープンソースプロジェクトとの統合が可能です。

13. スニップNLU

3.6k GitHub スター。

注意: このライブラリは 2 年間更新されていません。

Snips NLUは、自然言語で書かれた文章から構造化された情報を抽出できるPythonライブラリです。ユーザーが自然言語を用いて人工知能とインタラクトする際、そのテキストは機械が読み取れる形式(ベクター)に変換される必要があります。Snips NLUのNLU(自然言語理解)エンジンは、まずユーザーの意図(インテント)を検出し、次にクエリパラメータ(スロットと呼ばれる)を抽出します。

14. NLPアーキテクト

GitHub スター数 2.8k。

NLP Architectは、自然言語処理と自然言語理解におけるニューラルネットワークを最適化するための最先端のディープラーニングトポロジーと手法を探索するためのPythonライブラリです。NLPモデルをアプリケーションに簡単かつ迅速に統合し、最適化されたモデルを表示できます。

15. PyTorch-NLP

GitHub スター 2,000 件。

PyTorch-NLP は PyTorch を拡張し、基本的なテキスト データ処理機能を提供します。

16. 多言語話者

1.9k GitHub スター。

Polyglot は、トークン化 (165 言語)、言語検出 (196 言語)、固有表現認識 (40 言語)、部分音声トークン化 (16 言語)、感情分析 (136 言語)、単語埋め込み (137 言語)、形態素解析 (135 言語)、および翻字 (69 言語) など、幅広い多言語アプリケーションをサポートする自然言語パイプラインです。

ただし、ライブラリは 3 年前に最後に更新されました。

17. テキストアタック

1.8k GitHub スター。

TextAttack は、敵対的攻撃、データ拡張、NLP におけるモデル トレーニング用の Python フレームワークです。

18. 語形

513 個の GitHub スター。

単語の形態は、英語の単語のあらゆる可能な形を正確に生成できます。名詞と形容詞、形容詞と副詞、名詞と動詞など、異なる品詞を結び付けることができます。

19. ロゼッタ

GitHub スター 420 件。

Rosettaは、TensorFlowをベースとしたプライバシー保護フレームワークです。暗号化、フェデレーテッドラーニング、信頼できる実行環境など、主要なプライバシー保護コンピューティング技術を統合しています。RosettaはTensorFlowのAPIを再利用しているため、従来のTensorFlowコードを最小限のコード変更でプライバシー保護ランタイムに変換できます。

必須の基本ライブラリ

このリストには、NLP に特化していないものの、NLP プロジェクトで頻繁に使用されるデータ サイエンス ライブラリがいくつか含まれています。

20. scikit-learn

GitHub スター数 48.6k。

Scikit-learn(sklearnとも呼ばれる)は、Pythonプログラミング言語用のフリーソフトウェア機械学習ライブラリです。サポートベクターマシン、ランダムフォレスト、勾配ブースティング、k-means、DBSCANなど、様々な分類、回帰、クラスタリングアルゴリズムを備えており、Pythonの数値計算および科学計算ライブラリであるNumPyとSciPyをベースに構築されています。

21. パンダ

32.4 GitHub スター。

Pandasは、表形式データを操作するためのツールを提供するPythonパッケージです。Pythonにおける実用的かつ現実的なデータ分析のための基本モジュールとなっています。最も強力で柔軟性の高いオープンソースのデータ分析/操作ツールの一つと言えるでしょう。