2016-01-08 98 views
2

我有一個字符串列表(名詞短語),我想過濾掉所有有效的地理位置。其中大多數(不需要的位置名稱)都是國家或城市或州名。有什麼辦法可以做到這一點?是否有可用的開源查詢表,其中包含世界上所有的國家,州和城市?如何檢查給定的字符串是否爲有效的地理位置?

實施例所需的輸出: TREC4:假,維也納:假,IBM:假,蒙特利爾新加坡

不像這篇文章:Verify user input location string is a valid geographic location? 我有很多這樣的字符串(~70萬),所以谷歌地理定位API可能不適合我。

+1

怎麼樣:en-ner-location.bin從http://opennlp.sourceforge.net/models-1.5/或類似的東西http://stackoverflow.com/questions/18371092/stanford-named-entity-recognizer -ner-functional-with-nltk – alvas

+0

我使用了NLTK ner識別。看起來不錯,我會試試看.. – Soumyajit

回答

3

您可以通過Yahoo使用geoplanet數據,或通過geonames.org使用geonames數據。 這裏是geoplanet含500萬個世界的地理地方TSV文件的鏈接: https://developer.yahoo.com/geo/geoplanet/data/

此外,geoplanet數據將提供您鍵入的地理位置(市,鄉村,郊區等),具有獨特的ID一起。 https://developer.yahoo.com/geo/geoplanet/guide/concepts.html

你可以做一個小寫,消毒(如去除特殊字符等異常情況)你的針串存在於該數據的名稱相匹配。 如果你不想完整的文件掃描,首先處理這些數據將其存儲在快速查找數據庫,如mongodb或redis將是有益的。

+0

它看起來像雅虎已停止給予下載數據集。他們提供了一個API:\ ....無論如何,我正在研究它。 – Soumyajit

+0

該數據庫可能在其他來源下載。您也可以嘗試使用geonames或openstreetmap數據。 – DhruvPathak

+0

你已經做到了.. :)在互聯網存檔:D – Soumyajit

1

我可以建議以下三個選項:

一)使用鍊金術API:http://www.alchemyapi.com/ 如果您嘗試他們的演示,如法國的地方,檀香山給實體類型爲國家或城市

B)使用TAGME:http://tagme.di.unipi.it/ TAGME將給定文本中的每個實體連接到相應的維基百科頁面。抓取wikipedia頁面並檢查信息框和篩選器

c)使用維基百科礦工:我無法找到相關鏈接。但是,這也適用於TAGME。

建議您嘗試所有三種方法,併爲每個實例進行多數投票。

相關問題