2016-02-26 13 views
0

情景:百分比類似文本和承受程度

想象一個鍵值對象(字典),包含以下數據:

{ 
    'www.example.com/':2, 
    'www.example.com/happy/':4 
} 

我從包含源接收值以下數據:

{ 
    'www.example.com//':4 
} 

很明顯,www.example.com//與www.example.com/非常相似。我不想在我的字典中創建一個新條目,而是希望代碼根據文本相似性來查看我的字典中最接近的關鍵字,然後總結這些數字。因此,字典的最終狀態應該是這樣的:

{ 
    'www.example.com/':6, 
    'www.example.com/happy/':4 
} 

求和部分是容易的,彈跳反對寬容是容易的,但挑戰性的部分是什麼利用作爲字典生長的最好的算法?

即難道我翻翻字典,每次都循環並檢查鍵(是這樣的:

for key in dictionary: 
    if tolerance > diff(key,collected_data): 
     dictionary[key] += collected_data[value] 
     break 

但上面的例子中並沒有停止,直到找到最好的價值,這並不理想。

+1

這真的是越來越自然語言處理的問題。有很多方法可以使用,但是一個經典的方法是將字符串分解成類似詞語的部分並利用諸如[tf-idf]之類的內容(https://en.wikipedia.org/wiki/Tf%E2%80%93idf )來確定相似度。 [NTLK](http://www.nltk.org/)在實際實施中可能很有用。 –

+0

@GustavoBezerra NTLK有很大的潛力,感謝您分享它!我需要查看是否有URL /超鏈接領域的實際應用程序。 – Adib

回答

1

我猜你需要某種局部性敏感散列(LSH),我以前從來沒有嘗試過,但你可以嘗試像http://nearpy.io/