4

レシピのさまざまなプロパティの統計分析に基づいて、プログラムでレシピを分類することに興味があります。Breakfastつまり、レシピを、、、またはユーザー入力なしLunchで分類したいと思います。DinnerDessert

私が利用できるプロパティは次のとおりです。

  1. レシピタイトル(チキンサラダなど)
  2. レシピの説明(レシピを説明する任意のテキスト)
  3. 調理方法(このレシピの準備に必要な手順)
  4. 準備と調理時間
  5. レシピの各材料とその量

幸いなことに、すでに分類されている約10,000のレシピのサンプルセットがあり、これらのデータを使用してアルゴリズムを教えることができます。私の考えは、朝食のレシピでシロップという単語が統計的に頻繁に現れるか、 1カップ以上の砂糖を必要とするレシピがデザートである可能性が90%であるかなど、パターンを探すことです。レシピを複数の次元で分析し、必要に応じて重みを微調整すると、かなり正確なものを取得できると思います。

この問題に取り組む際に調査するためのいくつかの良いアルゴリズムは何でしょうか?k-NNのようなものが役立つでしょうか、それともこのタスクにより適したものがありますか?

4

3 に答える 3

2

もし私がそれをするなら、私はLiKaoによって提案されたようにそれをしようとします。私は最初に材料に焦点を合わせます。レシピの「材料」セクションに表示される単語の辞書を作成し、監視された方法でリストをクリーンアップして、数量や単位などの非成分の用語を削除します。

それから私はベイズの定理に頼ります:あなたのデータベースはあなたが朝食と夕食に卵を持っている確率を計算することを可能にします...; それらの先験的確率を事前計算します。次に、卵とマーマレードの両方を含む未知のレシピが与えられた場合、食事が朝食、事後分析である確率を計算できます。

後で他の用語で強化したり、量を考慮に入れたりすることができます(1人あたりの卵の数)...

于 2012-02-13T22:37:23.223 に答える
1

さまざまなよく知られた機械学習アルゴリズムを試してください。実装が簡単で、多くの場合かなりうまく機能するため、最初にベイズ分類器を使用することをお勧めします。これが機能しない場合は、ニューラルネットやSVMなどのより複雑なものを試してください。

主な問題は、メソッドへの入力として一連の機能を決定することです。このためには、どの情報が一意であるかを確認する必要があります。たとえば、「チキンサラダ」というタイトルのレシピがある場合、「チキン」の部分は材料にも含まれていて、そこから簡単に収集できるため、あまり重要ではありません。したがって、新しい情報を提供している一連のキーワード(つまり、サラダの部分)を見つけようとする必要があります。このための適切なキーワードのセットを見つけてください。これはおそらく何らかの方法で自動化できますが、1回だけ実行する必要があるため、手動で実行した方がよい可能性が高くなります。

説明についても同じことが言えます。正しい機能のセットを見つけることは、そのようなタスクにとって常に最も難しい部分です。

一連の機能を取得したら、それらのアルゴリズムをトレーニングして、それがどの程度うまく機能するかを確認します。機械学習の経験があまりない場合は、MLアルゴリズムを正しくテストするためのさまざまな方法を確認してください(たとえば、Nを除外するテストなど)。

于 2012-02-13T18:48:06.583 に答える
1

NNはおそらくこれにはやり過ぎだと思います。食事の種類(朝食、夕食)ごとに1つのパーセプトロン「ネットワーク」を使用して分類し、入力を調べて重みベクトルを調整してみます。データセットで見つかったすべての意味のある単語は、ネットワークの入力になる可能性があります。私はあなたのニーズに十分であると期待しています。以前、このメソッドを使用してテキストを分類しました。

于 2012-02-14T07:55:22.573 に答える