私は、さまざまな仕入先の製品の価格を比較する簡単なプログラムを作成しようとしています。 異なるサプライヤは同じ製品を異なるものと呼ぶことがあります。 異なる店舗/仕入先の商品名の比較と一致
- A2フル・クリームミルクボトル:
たとえば、以下の3つの文字列は、同じ製品を参照してください。
または次の2つの文字列は同じ製品です:
- Ambi PurエアーフレッシュカーCar Voyage 8mL。フレッシュバニラフラワーフレグランス。 - 1各
- アンビピュール空気清浄航海プライマリ8ミリリットル
さらに - いくつかの製品が同じではなく、(例えば、フルクリーム2Lミルクは、種々の同様の製品を包含することができる。)
類似しています私が各製品に持っている情報の唯一のビットは、タイトルと価格です。
このような製品文字列を照合するために現在推奨されている方法は何ですか?私のグーグルや他のSOスレッドを読んでから、
は、私が見つかりました:
- 一部の人々は、ベイジアンフィルタリング技術を使用することをお勧めします。
- 一部の人は、すべての製品文字列に対して特徴抽出を行うことをおすすめします。だから、製品からブランド(例えば "A2")、製品( "ミルク")、容量( "2L")を抽出し、製品間の距離ベクトルを作成し、バイナリ分類器のようなものを使用して製品言及された)。しかし、私はルールや正規表現のすべての束なしでこれを達成する方法についてはわからないのですか?私はおそらく、この問題を攻撃するよりスマートな教師なし学習方法があると仮定していますか?価格はおそらく、距離ベクトルを計算するために使用できる別の「機能」でもあります。
- ニューラルネットワークのアプローチを使用することを推奨している人もいますが、ここでは具体的なコードや例はほとんど見つかりませんでした。
- 他にも、Levenshtein距離やJaro-Winkler距離などの文字列類似性アルゴリズムを使用することをお勧めします。
上記の手法のいずれかを使用するか、別の手法を使用しますか?
また、誰かがこの種の問題のサンプルコードやライブラリを知っていますか?私は何かを見つけることができなかった。
(たとえば、大規模なデータセットでJaro-Winklerの距離を計算するとパフォーマンスに問題が発生する人がいることがわかりましたが、Mahoutなどでアルゴリズムの分散実装が行われることを期待していましたが、
いくつの商品(ボールパークの見積もり)を管理する必要がありますか? – Blacksad
それはスーパーマーケットなので、かなりたくさんの商品があります - 私は数万人に見積もりますか? – victorhooi
すべての提案は良いですが、監督されています。そして何万人もの授業の監督下での学習は、地獄になるだろう...私は監督されていないアプローチは考えていない。 – Blacksad