字符串我試圖比較使用一些衆所周知的算法如Levenstein distance和string simmetrics(與SmithWatermanGotoh ALG得到了最好的結果)不同的解決方案庫中有兩個字符串(產品名稱)。比較兩個使用已知算法
兩個字符串是:
iPhone 3GS 32 GB黑色
蘋果iPhone 3 GS 16GB黑色
萊文施泰因正在整個字符串非常糟糕,如果有的話是在不同的順序(這是從算法的工作原理預計的),所以我試圖逐字比較。
我面臨的問題是,檢測相似 '單詞' 是與空間炭劃分(」 3GS '的方式 - >' 3個GS ';' 32 GB ' - >' 16GB')。
我的代碼比較短(字數,如果==然後str.length)字符串較長的一個。單詞分爲ArrayList<String>
。我將str1中的每個單詞與同一個字符串中的其他單詞合併爲一個新的ArrayList。
這裏是一個粗略的代碼:
foreach(str1)
foreach(str2)
res1 = getLevensteinDist
endforeach
foreach(combinedstr2)
res1 = getLevensteinDist
endforeach
return getHigherPercent(res1, res2)
endforeach
這工作,如果在str2中的話被分割,但我無法弄清楚如何做一個反向的,在被str1中拆分STR2檢測的話。
我希望我至少有點清楚我想要做什麼。每一個幫助表示讚賞。
不,我不清楚你在做什麼,你在這裏做什麼。你期望的是什麼? –
兩個字符串(在本例中是字)之間的差異百分比。基本上,我希望返回'3 gs'和'3gs'(並且相反)爲100%準確。 – Ivan