回答:
CRF ++は一般的に一般的な選択肢であり、Pythonバインディングがあります。CRFSuiteには、ここに記載されているバインディングもありますが、CRF ++ほど広く使用されているとは思われません。この記事の執筆時点では、scikit-learnなどの高レベルの機械学習フレームワークにはCRFサポートがありません(このプルリクエストを参照)。
CRF ++は古いライブラリであるため、より多くの着信リンクがあります。私の意見では、
CRFSuiteは優れています。
Pythonバインディングを探している場合は、Pythonでモデルをトレーニングできるため、CRFSuiteも優れていますが、CRF ++では、Pythonで既存のモデルしかテストできません。(それが私にとっては取引のブレイカーでした。)CRFSuiteには、NER、Chunking、POSタグなど、Pythonのサンプルコードも多数付属しています。
他のラッパー/実装は次のとおりです。
exit()
、トレーニング中にメモリリークが発生しました。また、wapitiは、表現できる機能の種類が制限されていますが、CRFsuiteも制限されています(別の方法で)。Wapitiはラッパーにバンドルされており、個別にインストールする必要はありません。可能であればseqlearn、CRFsuiteトレーニングアルゴリズムとトレーニング速度が必要な場合はpython-crfsuite、より高度なCRFsuite統合が必要で不便に直面する準備ができている場合はpyCRFsuite、Wapitiトレーニングアルゴリズムまたは機能が必要な場合はpython-wapitiを使用することをお勧めしますCRFsuite(遷移の個々の観測の調整など)およびC / C ++コンパイラを動作させる方法がない場合はtimvieiraのcrfでは利用できませんが、事前に構築されたnumpyは利用可能です。
あなたが探しているのはPyStructだと思います。
PyStructは、使いやすい構造化された学習および予測ライブラリであることを目指しています。現在、max-marginメソッドとパーセプトロンのみを実装していますが、他のアルゴリズムが続く場合があります。
PyStructの目標は、構造化された予測アルゴリズムを利用するために、研究者および非専門家に十分に文書化されたツールを提供することです。この設計は、scikit-learnのインターフェースと規則に可能な限り近づけようとします。
PyStruct
優れたドキュメントが付属しており、githubで積極的に開発されています。
以下は、PyStruct-Pythonの構造化予測から抽出PyStruct
したCRFsuite
、他のパッケージと比較した表です。