[英]String Algorithm Comparison VB.Net
我想問一些建議,因為我已經這樣做了一個星期。 它基本上是一個數據清理程序。 我有一個包含數千個公司名稱的 excel 文件,我有這個包含正確公司名稱的數據庫。 我想要的是讀取我已經完成的 excel 文件,並將 excel 文件中的每個公司與我在數據庫中的值進行比較。 例如
Excel 中的數據
數據庫中的數據
它會自動檢測 excel 中的這 3 個值是惠普,因為 excel 是自由類型的形式。 我想更正其中輸入的所有內容並在我的數據庫中找到相似的值。 就像如果 Hewlett-Packard 拼寫錯誤,它會自動告訴它是 Hewlett-Packard。 任何的想法?
它就像一個自動完成,但帶有思考。 自動完成但決定正確的值
順便說一句,我在 VB.Net 中這樣做。 我正在研究模糊搜索算法和 levenstein 之類的東西。 但我還是不明白我該如何使用它
參見我的博客, 解決正確的問題,有點類似。 您最好進行簡單的匹配並將任何失敗輸出到您手動編輯的文本文件。 這是苦差事,但它會完成工作。 當您開始談論 Levenstein 距離和模糊搜索時,您正在將一個簡單但枯燥的任務變成一個研究項目。
如果您的數據庫僅包含“數千個”(而不是數百萬個)名稱,那么您可以做的一件事就是將所有名稱加載到一個列表中,並對它們進行排序。 然后對 Excel 文件中的名稱進行排序。 然后遍歷兩個列表(標准的合並類型算法)。 例如,您的數據庫中可能有:
Hasbro
Hewlett Packard
Home Depot
並在您的 Excel 文件中:
Grainger
Halliburton
Hewlet Packard, Costa Rica
Hewlett Packard (HP)
Humana
使用合並算法,您可以將“Hewlett Packard, Costa Rica”與“Hewlett Packard”進行比較,您甚至可以將其輸出為建議的替換。 這可能構成您的大部分錯誤。
無論如何,我強烈建議使用計算機來識別不匹配,然后手動解決它們。 這通常是解決此類問題的最快方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.