我有如下编号的示例文本:
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 喜欢技术在这里有帮助吗?
最佳答案
地名列表称为“地名词典”。这里有很多美国和其他国家的城市(还有其他的,只需谷歌搜索“地名词典”或“美国城市列表”: http://www.fallingrain.com/world/index.html
您可以抓取网站并将城市名称列表存储在文件中。然后您的程序可以将它们读入适当的数据结构并检查每行中的单词的成员资格。请注意由多个单词组成的城市名称,例如“旧金山”。
从更一般的 NLP 角度来看,您正在寻找“命名实体识别器”。这是一个尝试将字符串中的单词标记为人名或地名的系统。这也应该可以解决您的问题,但代价是将其他人的库包含到您的项目中并弄清楚如何使用它。一种经常使用的 NE 识别器来自斯坦福 NLP 工具,http://nlp.stanford.edu/software/CRF-NER.html
关于java - 从非结构化文本中识别并获取城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40469433/