29

1 カップの小麦粉、2 個のレモンの皮、1 カップの詰められたブラウン シュガーなど、レシピの材料を量、測定、アイテム、説明に解析する必要があります。これを行う最良の方法は何でしょうか? 私はプロジェクトに python を使用することに興味があるので、nltk を使用することが最善の策であると想定していますが、他の言語にも対応しています。

4

5 に答える 5

30

私は実際に自分のウェブサイトでこれを行っています。これは現在、他の人が使用できるオープンソース プロジェクトの一部です。

私は自分のテクニックについてブログ記事を書きました。

http://blog.kitchenpc.com/2011/07/06/chef-watson/

于 2011-08-12T01:43:11.467 に答える
5

これは数年後だと思いますが、私は自分で似たようなことをしようと考えていて、これに出くわしたので、他の人に役立つ場合に備えて刺すかもしれないと思いました

無料のテストを解析したいと言っても、ほとんどのレシピのレシピ リストはかなり標準的な形式になっています。各材料は別の行にあり、正確な文の構造がそれほど重要になることはめったにありません。語彙の範囲も比較的狭いです。

1 つの方法は、各行をチェックして、名詞である可能性のある単語と量を表す単語/記号を確認することです。WordNet は、単語が名詞であるかどうかを確認するのに役立つと思いますが、私自身は使用したことがありません。別の方法として、 http://en.wikibooks.org/wiki/Cookbook:Ingredientsを単語リストとして使用することもできますが、これがどれほど包括的なものかは正確にはわかりません。

他の部分は量を認識することです。これらはいくつかの異なる形式で提供されますが、おそらくキーワードのリストを作成できるほどの数ではありません. 特に、適切なエラー報告があることを確認してください。プログラムが行を完全に解析できない場合は、その行の内容と、認識した/認識しなかった内容を報告して、それに応じてキーワード リストを調整できるようにします。

とにかく、これが機能することを保証するものではありません (そして、100% 信頼できるわけではないことはほぼ確実です)。

于 2011-03-03T15:15:42.023 に答える
3

これは不完全な答えですが、ご存知のように、自明ではないフリーテキストパーサーを作成しようとしています:)

料理に特化した知識を使ってごまかすいくつかの方法:

  1. 「形容詞」と「動詞」の単語のリストを作成し、それらに対してフィルター処理します
    1. 測定単位は、{L.、c、cup、t、dash} などの単語や略語を使用して、閉じたセットを形成します。
    2. 指示 - 切る、さいの目に切る、調理する、皮をむく。この後に来るものはほぼ確実に食材
  2. 主に名詞を探していることを思い出してください。非名詞のラベル付きリスト (たとえば、WordNet から) を取得して、それらに対してフィルター処理を行うことができます。

もっと野心的な人は、NLTK Bookのパーサーに関する章を参照してください。

幸運を!これは、ほとんど実行可能なプロジェクトのように思えます!

于 2008-10-20T14:40:57.950 に答える
-1

あなたの入力が何であるかをより具体的に教えてもらえますか? 次のような入力がある場合:

1 cup flour
2 lemon peels
1 cup packed brown sugar

NLP をまったく使用せずに解析するのはそれほど難しくありません。

于 2008-10-15T08:22:58.480 に答える