我的样本文本编号如下:
1)';Roy\'\'s Chalet, sears road,Green woods;Street avenue;Arlington;Texas;United States;'
2)';PLOT NO. A-10, Seras -1, Green woods woods;PARK,;Arlington;Texas;United States;'
3)';Seras tampon woods avenue park green AS IN;Wallet Hall;St Ann ROAD Arlington Texas;United States;'.
我需要一种方法来识别每个文本中的城市“阿灵顿”。 有数百万条带有此类文本的记录和嵌入文本的城市。在java中实现这一目标的最佳方法是什么。
nlp喜欢技术会帮助吗?。
答案 0 :(得分:3)
地名列表称为“地名词典”。这里有很多城市在美国和其他国家(还有其他国家,谷歌只是“地理标志”或“美国城市名单”:http://www.fallingrain.com/world/index.html
您可以抓取网站并将城市名称列表存储在文件中。然后,您的程序可以将它们读入适当的数据结构,并检查每行中的单词是否有成员资格。注意由多个单词组成的城市名称,例如“旧金山”。
从更一般的NLP角度来看,您正在寻找“命名实体识别器”。这是一个尝试将字符串中的单词标记为人名或位置名称的系统。这也应该解决您的问题,代价是将其他人的库包含在您的项目中并找出如何使用它。一个被大量使用的NE识别器来自斯坦福NLP工具,http://nlp.stanford.edu/software/CRF-NER.html