9

私はメールを解析する Python スクリプトを書いています。これには、メールのテキストから一般的な食品である単語を検索することが含まれます。言葉が本当に食べ物かどうかを判断する方法が必要です。

いくつかの自然言語処理 API (AlchemyAPI や NLTK 2.0 など) を調べたところ、Named Entity Extraction (これが必要です) があるようですが、特に食品のエンティティ タイプが見つかりません。

私が必要としているものに対して、自然言語処理が過剰である可能性は十分にあります。私が必要としているのは、一致する食品のリストだけです。そのような単語リストはどこにありますか? 独自のスクレーパーを作成してオンライン ソースから解析する必要がありますか?それとももっと簡単な方法がありますか?

4

3 に答える 3

8

すべての食品を 1 つのリストにまとめることができれば非常に便利ですが、残念ながらそれは理想的なケースです。

foodWordNet で synset にアクセスしてみることができます。NLTK を使用している場合は、次を試してください。

>>> from nltk.corpus import wordnet as wn
>>> food = wn.synset('food.n.02')
>>> list(set([w for s in food.closure(lambda s:s.hyponyms()) for w in s.lemma_names()]))
于 2013-12-30T15:57:10.770 に答える
1

私の知る限り、NLTKまたは類似の一般的な食品の実体はありません. 自分でリストを作成しなければならない可能性が非常に高いです。

しかし、ありがたいことに、インターネットはあなたの友達です。ここでは、英語圏で一般的な野菜や果物の多くをカバーするいくつかの優れた情報源を紹介します:

幸運を!

于 2013-10-28T03:39:35.063 に答える
1

名前付きエンティティは固有名詞 (つまり、人、場所、会社、場所など) であるため、NLP エンティティ抽出が一般的な食べ物の名前を見つけるために機能する可能性は低いです。機能する可能性のある NLP 機能は、キーワード抽出です。AlchemyAPI のデモでいくつかのレシピを実行したところ、材料がキーワードとして識別されました。これで途中まではできましたが、キーワードを jrd1 のような一般的な食品のリストと比較する必要があります。

于 2013-10-29T15:48:28.937 に答える