我有大量的字符串包含產品名稱和一些其他屬性(大小,體積,年齡等)。但字符串根本不是標準化的。產品名稱可能拼寫錯誤,音量可能不同(0.5l,1/2升,500ml等)。雖然變化的數量是有限的,但例如只有幾百種產品。我可以使用哪些工具分析每個字符串並告訴我它是否包含某些令牌?我的猜測是某種學習機制會很有用,但我不確定哪些工具可以提供這種功能。我已經看過ElasticSearch,但我不確定這是否應該走。我所有的數據目前都在PostgreSQL數據庫中,我也查看過pg_grm。再次,不知道這是否符合我的需要。模糊字符串匹配:哪個工具?
我一直在考慮的一個解決方案是維護一個正確的關鍵字列表,並根據每個字符串查看該字符串是否包含任何關鍵字。我不知道這是否會工作,如果它願意,如何切實有效地實現它在PostgreSQL的
編輯 這裏是我試圖從提取關鍵詞幾個示例行:
wine Bardolo red 1L 12b 12%
La Tulipe, 13* box 3 bottles, 2005
Great Johnny Walker 7CL 22% red label
Wisky Jonny Walken .7 Red limited editon
我已經做了相當多的搜索,但現在還沒有找到正確的方法來解決這個問題。
也許使用'ngram'標記器將整個字符串分析爲一個ngram對Elasticsearch有用嗎?它將允許子詞模糊匹配。 –
也許,但我想我需要子串模糊匹配而不是子詞模糊匹配。這樣也能工作嗎? –