3

同じかどうかを判断する必要があるさまざまな製品アイテムがあります。簡単な例:

Microsoft RS400 mouse with middle button一致する必要がありますが、一致Microsoft Red Style 400 three buttoned mouseしませんMicrosoft Red Style 500 mouse

名前以外にマッチングできる素敵なものがなく、マッチングワードの比率でやってもダメ(エラー率が高すぎる)

私はドメインについて知っているので、(たとえば) 3 つボタンのマウスはおそらく中ボタンのマウスと同じであるという事実を手書きで書くことができます。私はメーカーも知っています (または、非常によく推測できます)。

私がこれまでに持っていた唯一の考えは、手書きのルールを使用して文字列のサイズを小さくし、一致する単語をチェックしてそれらを一致させることですが、誰かがこの一致を行うための最良の方法はより良いアイデアを持っているかどうか疑問に思いました.精度と精度 (またはどこから調べ始めるか) と、この分野で行われた作業を誰かが知っている場合は? (論文、例など)。

4

4 に答える 4

2

「ドメインについては知っています...」

ドメインについてどれだけ正確に知っていますか? ドメインについてすべて知っている場合は、すべてのメーカーの製品 (基本的にはメーカーの Web ページからの製品の説明) のインデックスを作成することをお勧めします。次に、説明を互いに一致させようとする代わりに、それらを製品のインデックスと一致させます。

このアプローチの利点:

  • おそらく、製品の説明で使用されているすべての単語は、販促資料のどこかで使用されています
  • インデックスを作成するときに、一部の情報 (製品コードなど) を重み付けできた場合は、より成功する可能性があります。

短所:

  • インデックスの作成に時間がかかる場合があります (特に手作業の場合)

ドメインについてすべてを知っているわけではない場合は、非常に一般的な単語 (インターネットから一般的な単語のリストを取得できます) をランク付けを下げ、辞書にない数字と単語をランク付けすることを検討してください。 (インターネットから単語のリストを取得できます/ほとんどのLinux / UNIXディストリビューションには、スペルチェックの目的でそれらが付属しています)。


あなたが検索についてどれだけ知っているかはわかりませんが、過去に、W. Bruce Croft、Donald Metzler、Trevor Strohman による「Search Engines: Information Retrieval in Practice」という本が役立つことがわかりました。出版社のウェブサイトには、本があなたに適しているかどうかを示すサンプルの章がいくつかあります: pearsonhighered.com

それが役立つことを願っています。

于 2012-06-26T12:51:35.040 に答える
1

より一般的に適用できるものをお勧めします。私が理解しているように、同義語として認識できるものを処理する nlp 処理が必要です。かなり単純な実装だと思います。

もし私があなただったら、同義語のリストをパラメーターとして持つキーワード オブジェクトを作成し、時折しか表示されない単語のテキストをスクレイピングするスクリプトを作成します (キーワードが実際に適用可能と見なされる頻度の上限を設定します)。 )、同義語を含む各キーワードのパラメーターとしてキーワードのリストを追加します。さらに一歩進んでよろしければ、同義語リストに重みを設定して、それらがどれほど類似しているかを示します。

この種の nlp 問題では、100% の精度に達する可能性は 0 ですが、90% を超える可能性があります。自動化された方法で重みを調整できる要素を追加することをお勧めします。ここではかなり漠然としている必要がありますが、前の仕事で同様の問題を担当し、90 年代後半の精度を得ることができました。私の実装もおそらく必要以上に複雑でしたが、単純な実装でもかなりの利益が得られるはずですが、かなり大きなデータセット (~数百以上) を扱っていない場合は、おそらくスクリプトを作成する価値はありません.

簡単な例では、「中間」と「3」が同義語であると言うだけで、違いをかなり正確に抽出できます。必要に応じてさらに複雑にすることもできますが、それは多くの場合一致します。

于 2012-06-26T15:21:48.490 に答える
1

手書きのルールに加えて、特徴抽出による教師あり学習の使用を試みることもできます。

説明を特徴ベクトルとして見るよりも、特徴を説明の言葉にしましょう。アルゴリズムを教えるときは、比率で似ている 2 つのベクトルを表示させ、同じアイテムの場合は、アルゴリズムがそれらの単語の重みを改善できるようにします。

たとえば、あなたが行ったように、単語の各ペアは単純な比率よりも大きな重みを持つ場合があります。

[3-button]    [middle]
[wheel]       [button]
[mouse]       [mouse]

あなたのアルゴリズムでは、類似度に対して 1/3 の比率が得られます。これを「同じアイテム」として設定すると、アルゴリズムは、次回それらに到達したときに、それらの単語のペアにより多くの価値を追加する必要があります。

于 2012-06-26T11:49:17.983 に答える
1

トークン化するだけです(そのステップでは、数字と文字を分離する必要があるため、空白のトークナイザーだけではありません)、ステム、フィルターのストップワード、およびマウスのような興味のない単語です。おそらく、単語プロデューサーも含むリストを作成し、プロデューサーと数字以外のすべてを最初の文字に短縮する必要があります。(そうする場合、トークナイザーでも大文字を区切る必要があります)

Microsoft RS400 mouse with middle button -> Microsoft R S 400
Microsoft Red Style 400 three buttoned mouse -> Microsoft R S 400
Microsoft Red Style 500 mouse -> Microsoft R S 500

盗作検出からのより良い解決策vsm(ベクトル空間モデル)が必要な場合はいいでしょう。(すべての単語は、識別値に従って重みを取得し、それらの重みは多次元空間に投影されます。その後、2つのテキスト間の角度を測定するだけです)

于 2012-06-26T12:57:11.077 に答える