我試圖處理一個CSV文件,每行都有一個文本字段,組織名稱和該組織內個人的位置作爲非結構化文本。這個字段通常是這樣的文字:命名實體識別與Python/PHP的預設名稱列表
Assoc. Research Professor Dept. Psychology Univ. California Santa Barbara
我需要取出位置和組織名稱。對於這個職位,我使用preg_match爲不同職業的大約60個不同的正則表達式系列,我認爲它工作得很好(我的猜測是它可以獲得大約80%)。但是,我無法捕捉組織名稱。我有一個大約有16,000個組織名稱的MySQL表,我可以執行一個簡單的preg_match,但由於常見的拼寫錯誤和縮寫,它只能捕獲大約30%的組織。例如,我的數據庫中有
University of California Santa Barbara
但CSV文件可能有任何的選項:
Univ Cal Santa Barbara
University Cal-Santa Barbara
University California-Santa Barbara
Cal University, Santa Barbara
我需要處理數十萬條記錄,我不能花時間去糾正當前70%的記錄沒有被正確處理或刻意爲每個組織創建多個別名。我希望能夠做的是捕捉小差異(如小拼寫錯誤,連字符與空格以及常用縮寫),並且如果仍然找不到匹配項,則理想地識別組織名稱並創建新記錄爲了它。
- Python或PHP中的哪些庫或工具可以執行相似性匹配,從而獲得更廣泛的覆蓋範圍?
- Python中的NLTK會捕獲拼寫錯誤嗎?
- 是否有可能使用AlchemyAPI來抓拼寫錯誤的組織?到目前爲止,我只能用它來捕捉拼寫正確的組織
- 因爲我將一個較短的字符串(組織名稱)與一個較長的字符串(包括名稱加上無關信息)進行比較,是否有任何希望使用PHP的similar_text函數?
任何幫助或見解,將不勝感激。
感謝您指出這些資源。我對神經網絡並不熟悉,但我會試着深入研究,看看能否實現它。 – tchaymore 2010-11-17 17:02:57