2016-04-05 11 views
2

以下は、製品IDのサンプルデータです。製品の場合、ユーザーが図書館から関連キーワードを入力し、最も関連性の高い商品をトップリンクに戻す必要があります。文字列類似度スコアを見つけるために使用するもの類似度が80%の場合、スコアは3、50%なら2、一致しない場合は2になります。検索用語の類似性スコア

検索ライブラリ:{'100001':['Bullet01'、 '様々な90°接続と家の修復のための多目的コネクタ'角度'、 'メイク'、 'ジョイント'、 '強い'、 'も'、 '提供する'、 '一貫性のある' 「ストレート」、「コーナー」、「シンプソン」、「強」、「タイ」、「オファー」、「ワイド」、「多様」、「角度」、「様々」、「サイズ」、「太さ」、 「構造」、「接続」、「必要」、「何らかの」、「曲げられた」、「歪められた」、「一致する」、「プロジェクト」、 'ZMAX'、 '亜鉛'、 'コーティングされた'、 'コネクタ'、 '提供する'、 '余分なもの'、 ' 「コネクタ」、「様々な」、「接続」、「家庭」、「接続」、「接続」、「接続」、 「固定」、「固定」、「固定」、「固定」、「固定」、「固定」、「固定」、「固定」、「固定」、「固定」、 'x'、 'Made'、 'Gauge'、 'steelGalvanized'、 'extra'、 'corrosion'、 'resistanceInstall'、 'd'、 'common'、 'nails'、 'x'、 'Strong'ドライブ '、' SD '、'ねじ '、' Simpson Strong-Tie 12ゲージ角 '、' Simpson Strong-Tie 12ゲージ角 ']}

検索語:{' 100001 ':[' angle [ 『TERM1を検索』、「海:ブラケット」、 『L型ブラケット』]}ここで

+0

は、データ構造はすべきではない 『製品』には二つの文字列間の類似性を得ることができる方法ですrch term2 "、" search term 3 "]リストの一部の項目が別のリストである理由 – Keatinge

+0

4つのcsvファイルから複数の行を結合しました。各ファイルには、すべての製品のデータが含まれています。 – Sameer

答えて

1

はあなたのpython

from difflib import SequenceMatcher 

string1 = "hello" 
string2 = "hellx" 

print (SequenceMatcher(None, string1, string2).ratio()) 

#prints 0.8 
+0

私のデータにdifflibを使用するとエラーが発生します。 「検索ライブラリ」の上にあるすべてのカンマ、括弧を削除して、データを単一の文のように見せる方法はありますか?そうすればdifflibは動作します。 ser_rel = {} searchdictにおけるkの : 場合maindictにおけるk: = searchdict [K] B = maindict [K] SEQ = difflib.SequenceMatcher(なし、B) ser_rel [K] = seq.ratio()* 100 ここに特定のデータのための私のコードです。 – Sameer

+0

あのデータを文字列形式で扱っていますか?私はそれがリストであると仮定した – Keatinge

+0

ええ、その文字列は辞書に格納されています。最初の投稿でサンプルのデータ形式を見てください – Sameer

関連する問題