自然言語処理ツール

自然言語処理の研究で役立つツールを集めてみました。

音声認識

CMU Sphinx: 広く利用されている音声認識プログラム。

Juicer: 重み付き有限状態トランスデューサを利用した音声認識デコーダ。

Julius: 音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジン。

言語モデル

IRSTLM: 言語モデルの学習・格納ツール。

kenlm: メモリ効率とスピードを重視した言語モデル保持ツール。

Kylm: 重み付き有限状態トランスデューサーの出力や未知語の文字ベースモデル化などの機能が揃っている言語モデルツールキット。Javaで実装。

RandLM: 乱択データ構造であるBloom Filterを用いることで、膨大な言語モデルを少ないメモリで保持するツールキット。

SRILM: 効率的なn-gram言語モデルツールキット。様々な平滑化手法(Kneser-Neyなど)、クラス言語モデル、複数のモデルの補間等の機能が揃っている。

言語処理ライブラリ

NLTK: Pythonで書かれた言語処理ライブラリ。

OpenNLP: Javaで書かれた一般的な言語処理ライブラリ。

Stanford CoreNLP: Stanford大学で作られたNLPツールを含めたライブラリ。

読み推定

KyTea: 単語分割と読み推定の機能が揃っているテキスト解析ツールキット。

mpaligner: 発音推定システムを学習する時に必要となる文字・発音対応をアライメントするツール。

Phonetisaurus: WFSTに基づく表記⇔発音変換ツールキット。

句構造解析

Berkeley Parser: PCFGの構文解析器。英語、アラビア語、中国語、フランス語、ドイツ語、ブルガリア語などのモデル付き。

Charniak Parser: 英語用のCFGパーザ。

Egret: 圧縮森やn-bestリストを出力できる確率的正則文法(PCFG)の構文解析器。

EVALB: 句構造解析結果の評価スクリプト。

Stanford Parser: CFG解析と係り受け解析を同時に行う構文解析器。英語・中国語・アラビア語・フランス語・ドイツ語のモデルあり。

形態素解析

Chasen: HMMを用いた形態素解析器。

JUMAN: 日本語の形態素解析器。品詞等以外にも様々な意味情報を付与する。

KyTea: 分野適応可能で未知語にロバストな形態素解析器。

MeCab: 条件付き確率場(CRF)を用いた形態素解析エンジン。

Sen: Javaで書かれた形態素解析システム。

有限状態モデル

Kyfd: 重み付き有限状態トランスデューサ(WFST)で構築されたテキスト処理システムのためのデコーダ。

OpenFST: 重み付き有限状態トランスデューサ(WFST)の様々なアルゴリズムを実装したライブラリ。有限状態モデルを利用したシステムの構築に便利。

機械翻訳アライメント

Berkeley Aligner: 教師ありと教師なしアライメントを両方実装した単語アライメントプログラム。

GIZA++: IBMモデルを実装した標準的な単語アライメントツール。

pialign: Inversion transduction grammar (ITG)に基づいたフレーズアライメントツール。精度を保ちながらコンパクトなモデルが学習できるのが特長。

機械翻訳デコーダ

cdec: 最近の木ベース・森ベース機械翻訳の研究成果を実装したデコーダ。

Joshua: 統語ベース翻訳のためのデコーダ。

Moses: 標準的な機械翻訳デコーダ。フレーズベースと木ベースの機械翻訳に対応。

Travatar: 統語情報を用いる翻訳のためのtree-to-stringデコーダ。

機械翻訳評価

METEOR: 類義語、語幹正規化、並べ替え情報などを考慮したMETEOR評価尺度を計算するツール。

multeval: 複数の評価基準に基づく統計的有意性を考慮した機械翻訳の評価ツール。

RIBES: 機械翻訳結果の並べ換えの精度を評価するプログラム。

機械学習

AROW++: Adaptive Regularization of Weight Vectorsというノイズにロバストなオンライン学習器の実装。

Classias: オンライン学習、バッチ学習に基づいた様々な分類器を実装したライブラリ。

CRF++: 系列解析で用いられる条件付き確率場(CRF)のツールキット。素性テンプレートを簡単に指定できるので、さまざまな素性で実験をするのに便利。

CRFsuite: 高速な学習を実現している条件付き確率場(CRF)の実装。

LIBLINEAR: 線形SVMやロジスティック回帰などの分類器を実装したライブラリ。学習は非常に速い。

LIBSVM: 様々なオプションをサポートするSVM学習ツール。

Mallet: 自然言語処理のための機械学習ツールキット。隠れマルコフモデル(HMM)、最大エントロピーマルコフモデル(MEMM)、条件付確率場(CRF)などの機能がある。JAVAで実装。

SVM-Light: 効率的なSVMライブラリー。

Weka: 様々な学習アルゴリズムを実装した機械学習ライブラリ。

係り受け解析

CaboCha: Cascaded Chunkingに基づく日本語の係り受け解析器。

KNP: 日本語の係り受け解析と格解析器。

MaltParser: Shift-Reduceに基づく係り受け解析器。

MSTParser: 最小極大木に基づく係り受け解析器。