PythonでのCRFの実装


回答:



15

CRF ++は古いライブラリであるため、より多くの着信リンクがあります。私の意見では、
CRFSuiteは優れています。

  • CRFSuiteの著者は、モデルのトレーニングにおいてCRF ++より20倍高速であると主張しています。
  • 入力データの要件がそれほど厳しくありません。

Pythonバインディングを探している場合は、Pythonでモデルをトレーニングできるため、CRFSuiteも優れていますが、CRF ++では、Pythonで既存のモデルしかテストできません。(それが私にとっては取引のブレイカーでした。)CRFSuiteには、NER、Chunking、POSタグなど、Pythonのサンプルコードも多数付属しています。


3
CRFSuiteが提供するNERとチャンキングの使用方法について詳しく説明してください。異なる形式のトレーニングデータを想定しているようです。これはどこにありますか?
伝説

14

他のラッパー/実装は次のとおりです。

  • https://github.com/adsva/python-wapiti -のためのPythonラッパーhttp://wapiti.limsi.fr/。Wapitiは高速です。wapitiはL-BFGSトレーニングを複数のCPUコアに並列化できるため、crfsuiteベンチマークはwapitiにとって公平ではなく、この機能はベンチマークでは使用されませんでした。Wapitiの問題は、ライブラリとして書かれていないことです。ラッパーはそれを克服しようとしますが、まだキャッチできないを取得することができexit()、トレーニング中にメモリリークが発生しました。また、wapitiは、表現できる機能の種類が制限されていますが、CRFsuiteも制限されています(別の方法で)。Wapitiはラッパーにバンドルされており、個別にインストールする必要はありません。
  • https://github.com/jakevdp/pyCRFsuite-crfsuiteのラッパー。ラッパーは非常に高度で、scipyのスパース行列を入力として使用できますが、未解決の問題があるようで、場合によってはセグメンテーション違反を起こす可能性があります。
  • https://github.com/tpeng/python-crfsuite-別のcrfsuiteラッパー。これはかなり単純です。インストールを簡単にするためにcrfsuiteがバンドルされており、「pip install python-crfsuite」でインストールできます。
  • https://github.com/larsmans/seqlearnは、多くの場合、CRFの代替となる構造化パーセプトロンを提供します。構造化パーセプトロンの実装は、seqlearnで非常に高速です。seqlearnにCRFサポートを追加するPR(執筆時点ではマージされていません)があります。しっかり見えます。
  • https://github.com/timvieira/crf-非常に基本的であり、いくつかの重要な機能はありませんが、numpyのみが必要です。

可能であればseqlearn、CRFsuiteトレーニングアルゴリズムとトレーニング速度が必要な場合はpython-crfsuite、より高度なCRFsuite統合が必要で不便に直面する準備ができている場合はpyCRFsuite、Wapitiトレーニングアルゴリズムまたは機能が必要な場合はpython-wapitiを使用することをお勧めしますCRFsuite(遷移の個々の観測の調整など)およびC / C ++コンパイラを動作させる方法がない場合はtimvieiraのcrfでは利用できませんが、事前に構築されたnumpyは利用可能です。


7

あなたが探しているのはPyStructだと思います。

PyStructは、使いやすい構造化された学習および予測ライブラリであることを目指しています。現在、max-marginメソッドとパーセプトロンのみを実装していますが、他のアルゴリズムが続く場合があります。

PyStructの目標は、構造化された予測アルゴリズムを利用するために、研究者および非専門家に十分に文書化されたツールを提供することです。この設計は、scikit-learnのインターフェースと規則に可能な限り近づけようとします。

PyStruct優れたドキュメントが付属しており、githubで積極的に開発されています。

以下は、PyStruct-Pythonの構造化予測から抽出PyStructしたCRFsuite、他のパッケージと比較した表です

構造化予測ソフトウェアパッケージの比較

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.