我有一個包含超過一百萬個字符串的數據庫表。每個字符串是一個術語,其長度可以從兩個單詞到五個或六個不等。在Python中識別數據庫中的類似字符串
["big giant cars", "zebra videos", "hotels in rio de janeiro".......]
我也有一個在csv文件中的數千個小項的黑名單。我想要做的是在數據庫中識別我的csv文件中列入黑名單的術語。在這種情況下的相似性可以被解釋爲黑名單術語的錯誤拼寫。
我熟悉Python中的庫,如fuzzywuzzy,它們可以使用Levensthein距離評估字符串相似度並返回相似度的整數表示。從本教程的一個例子是:
fuzz.ratio("NEW YORK METS", "NEW YORK MEATS") ⇒ 96
這種方法的缺點是,它可能會錯誤地識別,這可能意味着在不同的上下文的東西條款。
一個簡單的例子就是「大屁股」,一個黑名單的字符串,與一個更加無辜的字符串混淆,比如「大但是」。
我的問題是,在python中是否可以通過編程來實現這一點,還是僅僅檢索所有類似外觀的關鍵字並過濾出誤報會更容易?
是的,我想通過機器學習會走的路,但我一直在摸索着想弄明白。我開始了一個關於交叉驗證的問題,詢問同一個問題,看起來它會很困難。 http://stats.stackexchange.com/questions/199311/clustering-a-database-of-strings-based-on-their-similarity-to-a-seperate-set-of/199423?noredirect=1#comment378505_199423 – GreenGodot