3

自分のサイトでユーザーが検索したクエリ内で、人や場所などの名前を特定する良い方法を見つけたいと考えています。たとえば、ユーザーが「ジョージ ワシントンは何歳ですか」と尋ねた場合、あらかじめ定義されたリストからジョージ ワシントンが人物であることを知ることができる必要があります。

リストにはグローバルなものもあれば、ユーザー固有のものもあります。たとえば、「John Smith は何歳ですか」と尋ねられた場合、私は特定の John Smith を特定したいだけで、彼が私の仲間でない場合は特定したくありません。

Soundx、成熟した NLP、ミススペルなどの機能を活用するために実行できる NLP ライブラリまたはこれらのリストのクロールはありますか? 手で書くこともできますが、成熟したものを活用したいと思います。ありがとう。

4

2 に答える 2

4

必要なものはNamed Entity Recognition

それを行うために利用できる最高のソフトウェアの1つは、Stanford NLPに付属しています:http: //nlp.stanford.edu/software/CRF-NER.shtml (Javaで記述)

別のプラットフォームを使用している場合は、RubyとPythonに優れたオープンソースプロジェクトがあります。「固有表現抽出」を検索します。

于 2013-01-29T18:10:45.377 に答える
2

探している特定の自然言語処理 (NLP) タスクはNamed Entity Recognition(NER)と呼ばれます

スタンフォード大学のCRF-NERNatural Language ToolKit (Java) 以外に、 ( NLTK )からの人気のある Python の選択肢が、NER タスクのベースラインとしてよく使用されます。

NLTK をインストールしてから、次のコードを実行してみてください。

>>> from nltk.tokenize import word_tokenize
>>> from nltk.tag import pos_tag
>>> from nltk.chunk import ne_chunk
>>> sentence = "How old is John Smith?"
>>> ne_chunk(pos_tag(word_tokenize(sentence)))
Tree('S', [('How', 'WRB'), ('old', 'JJ'), ('is', 'VBZ'), Tree('PERSON', [('John', 'NNP'), ('Smith', 'NNP')]), ('?', '.')])
于 2013-01-30T05:47:47.583 に答える