2012-07-04 17 views
35

NLTKを使用してテキストから名前付きエンティティを抽出しようとしています。私はNLTK NERが私の目的にとってあまり正確ではないことを知り、自分のタグをいくつか追加したいと思います。私は自分のNERを訓練する方法を見つけようとしてきましたが、適切なリソースを見つけることができないようです。 私はNLTKで固有表現認識器を訓練するために自分のデータをNLTK-NLTKのカスタムデータでの名前付きエンティティの認識

  1. に関する質問のカップルを使用することはできますか?
  2. 私自身のデータを使用して訓練することができたら、named_entity.pyファイルを変更するのですか?
  3. 入力ファイル形式がIOBなどである必要があります。エリックNNP B-PERSON?
  4. nltk調理帳とnlpとは別に、私が使用できるPythonがありますか?

私はこの点

答えて

18

で助けを本当に感謝あなたがNLTK /パイソンを使用することにコミットしていますか?私はあなたと同じ問題に遭遇し、スタンフォードの名前付きエンティティ認識ツールhttp://nlp.stanford.edu/software/CRF-NER.shtmlを使用した方がより良い結果を得ました。独自のデータを使用してクラシファイアをトレーニングするプロセスはFAQで詳しく説明されています。

本当にNLTKを使用する必要がある場合は、他のユーザーからのアドバイスについてメーリングリストにヒットします:http://groups.google.com/group/nltk-users

希望すると便利です。

+1

SNERサイトを参照すると、ここにはPythonインターフェイス(https://github.com/dat/pyner)があることがわかりました。どの程度成熟しているのか分かりませんが、参考になるかもしれません。 – senderle

+0

この質問は、nltkという名前のエンティティ認識を改善するための検索では多く出てきますが、「何か他のものを使用する」と言っても有益ではありません。 – blueblank

+5

私は同じ問題を抱え、私にとってうまくいったことを共有しました。申し訳ありませんが、それはあなたを怒らせる場合:( – jjdubs

10

nltkと一緒にスタンフォードNERを簡単に使用できます。 Pythonスクリプトは、独自のデータを訓練するために、あなたはスタンフォードNERよくある質問の最初の質問を参照することができたモデルを作成するために

from nltk.tag.stanford import NERTagger 
import os 
java_path = "/Java/jdk1.8.0_45/bin/java.exe" 
os.environ['JAVAHOME'] = java_path 
st = NERTagger('../ner-model.ser.gz','../stanford-ner.jar') 
tagging = st.tag(text.split()) 

のようなものです。

リンクは、私もこの問題があったが、私はそれを動作するように管理さhttp://nlp.stanford.edu/software/crf-faq.shtml

0

です。 独自のトレーニングデータを使用できます。私の主な要件/手順は、github repositoryに記載されています。

私はNLTK-trainerを使用しました。基本的に正しい形式(トークンNNP Bタグ)でトレーニングデータを取得し、トレーニングスクリプトを実行する必要があります。詳細については、私のリポジトリをチェックしてください。

関連する問題