1

物事のいくつかの説明を含むリストがあるとします。説明は、カンマ区切りの単語で構成されます。例として次のリストを見てみましょう (各行は個別の説明です)。

white, leather, round
black, plastic, rectangular
wood, rectangular, brown
...

それらを次の構造に解析したい: (色、素材、形状)

最初の 2 つの説明は、構造に直接マッピングできます。しかし、3人目はできませんでした。値は、材料、形状、色の順序が異なるためです。

実際の問題は、このような不規則なエントリをどのように検出して解析するかということです。

それぞれの単語がどの部分を表しているかを何らかの方法で検出する必要があると思います。しかし、どこから、どのように始めればよいかさえわかりません。また、ヒント、アルゴリズム、および論文(関連するアルゴリズムに関する)も本当に感謝しています。

編集:既知の固定語彙がないことを忘れて申し訳ありません。そして、異なるカテゴリに同じ単語が存在する可能性があります。しかし、おそらく私が見逃したと思う最も重要なことは、ほとんどのエントリが定期的であることです。ですから、それを何らかの形で使用して辞書を作成できると思います。

4

4 に答える 4

2

なんらかの制約がなければ、これは不可能な問題です。単語を分類するためのある種の辞書があると仮定すると (おそらくあいまいですが)、ある程度の進歩を遂げることができます。アルゴリズムの概要は次のとおりです。

  1. まず、各行を分類せずに 3 つの単語として解析します。
  2. 次に、辞書を使用して、各単語に一連の候補カテゴリ (色、素材、および/または形状) を割り当てます。
  3. 単語にカテゴリが 1 つしかない場合は、そのカテゴリを他の 2 つの単語から削除します。それ以上進行できなくなるまで繰り返します。
  4. すべての単語に 1 つのカテゴリが含まれている場合は、これで完了であり、唯一の解決策が見つかりました。
  5. カテゴリがゼロの単語がある場合、3 つの単語を組み合わせて有効にすることはできません。
  6. 次に、推測する必要があります。複数のカテゴリを持つ単語を選択し、その単語の暫定的な割り当てとして 1 つのカテゴリを選択します。手順 3 のルールを再適用します。
  7. カテゴリが 0 の単語がある場合、カテゴリが試行されていない場合はステップ 6 に戻ります。そうでなければ、失敗して終了します。
  8. すべての単語に 1 つのカテゴリがある場合は、一貫した割り当てが見つかりました。必要な解決策があればこれで終了します。すべてのソリューションが必要な場合は、このソリューションを一連のソリューションに追加し、手順 6 に戻って別の試行を行います。
  9. 一部の単語にまだ複数のカテゴリがある場合は、手順 6 に戻ります (後戻りせずに)。
于 2012-08-01T22:24:56.070 に答える
1

最初の一歩として、色、素材、形状の辞書を作成し、この辞書に基づいて解析することを考えています。

そうしないと、どの単語がどのカテゴリに属しているかを検出できません

于 2012-08-01T19:00:37.133 に答える
0

3つの単語リスト、素材、色、形から始めます。解析する行ごとに、各エントリを3つのリストすべての単語と照合してみてください。一致する場合は、関連する構造フィールドに入力します。一致するものが2つある場合は、3つ目を一致しないリストに追加します。2つ未満のエントリに一致する可能性がある場合は、その行をスキップして、できればより大きなリストを使用して2番目のパスで試してください。たとえば3番目以降の行を解析できない場合は、パスしてから、ユーザーに行を解析して関連リストにエントリを追加するように依頼します。

于 2012-08-01T18:59:56.950 に答える
0

各位置の単語の 3 つのリストを保持します。新しいエントリを指定すると、そのリスト内の頻度 (絶対頻度および/または出現総数に対する相対的な頻度) に基づいて、各リストの各単語にスコアを付けます。最高スコアの単語とリストの組み合わせについては、その単語をそのリストに一致させます。残っている 2 つの単語と 2 つのリストを繰り返します。次に、最後に残った単語を最後に残ったリストに一致させます。

于 2012-08-01T22:41:08.760 に答える