我有一個藥品名稱(regular_list)和一個新名稱列表(new_list)。我想檢查new_list中的名稱是否已經存在於regular_list中。問題是名稱new_list可能有一些錯字錯誤,我希望這些名稱被視爲與常規列表的匹配。我知道,使用stringdist是解決問題的辦法,但我需要一個機器學習算法用於拼寫檢查的機器學習算法
回答
因爲它已經在這裏machine learning to overcome typo errors提到,機器學習工具太多這樣的任務,但最簡單的一種可能性是合併那些方法。
一方面,您可以計算給定單詞x
與每個詞典單詞d_i
之間的edit distance
。 Additionaly,你可以訓練探索每個字,如果給定的編輯距離已經學會了足夠的考慮x
的d_i
一個missspelled版本分類
c(d_i, distance(x,d_i))
返回True
(類1
)。這可以爲您提供更一般的模型,然後不使用機器學習,因爲您可以爲每個字典單詞設置不同的閾值(有些單詞比其他單詞更常拼錯),但很顯然,您必須準備一個形式爲(misspelled_word, correct_one)
(和也加上(correct_one, correct_one
)。
您可以使用任何類型的二進制分類器來執行此類任務,它可以處理「真實」輸入數據。
繼續上面的問題。我的數據庫常規列表大約有150,000個單詞,而新列表大約有350,000個單詞。兩個項目之間的計算距離需要(150,000 * 350,000個搜索)。它的工作真的很慢。請問我可以找到一個更好的方法 – rohit
有幾十種方法來加快速度。您可以構建各種類型的索引,這些索引會切斷距離太大而無法考慮的數據庫部分(可以通過例如散列3個字母前綴和3個字母后綴在固定時間內完成並僅查找那些前綴或後綴匹配perfercly)。對於大型搜索,您應該考慮使用現有的搜索引擎,例如。 lucene http://lucene.apache.org/core/ – lejlot
可以使用任何數據庫來解決這個問題。假設我把這兩個表格作爲regular_list和新的_list。然後通過查詢我可以比較上述距離,並讓數據庫相應地返回解決方案? – rohit
- 1. 名稱拼寫檢查機器學習
- 2. 機器學習算法Android拼寫檢查和自動更正
- 3. 機器學習算法
- 4. 關於機器學習,統計學習算法
- 5. 帶拼寫糾錯算法的拼寫檢查器
- 6. 此任務的機器學習算法?
- 7. 用於機器學習算法的Python csv流
- 8. 用於機器學習算法的Flink HBase輸入
- 9. 適用於多條件變量的機器學習算法?
- 10. 用於數據分類的機器學習算法。
- 11. 用於OpenCV機器學習算法的CSV格式
- 12. 紅寶石機器學習算法
- 13. 迭代機器學習算法
- 14. 機器學習 - 分類算法
- 15. 機器學習算法評估
- 16. 什麼機器學習算法用於人臉匹配?
- 17. 拼寫檢查器
- 18. Android的拼寫檢查器正在使用哪種算法?
- 19. 用於學習字符串模式的機器學習技術
- 20. 用於機器學習的Python導入
- 21. 適用於Android的機器學習庫
- 22. 用於機器學習的外部GPU
- 23. IE6的拼寫檢查器?
- 24. Python的拼寫檢查器
- 25. 感知器學習算法
- 26. OpenCV vs Mahout基於計算機視覺的機器學習?
- 27. 拼寫檢查器遺傳算法的實現
- 28. 隨機選擇學習卡的算法
- 29. 拼寫和語法檢查器
- 30. 是否有成功學習奇偶校驗函數的機器學習算法?
[機器學習克服錯字錯誤]的可能的重複(http://stackoverflow.com/questions/18329826/machine-learning-to-overcome-typo-errors) –