Nlp 从文本中提取位置的方法?

Nlp 从文本中提取位置的方法?,nlp,text-mining,information-extraction,named-entity-recognition,named-entity-extraction,Nlp,Text Mining,Information Extraction,Named Entity Recognition,Named Entity Extraction,从自由文本中提取位置的推荐方法是什么 我能想到的是使用regex规则,比如“单词……在位置”。但还有比这更好的方法吗 我还可以考虑使用一个包含国家和城市名称的查找哈希表,然后将从文本中提取的每个标记与哈希表的标记进行比较 有人知道更好的方法吗 编辑:我试图从tweets文本中提取位置。因此,大量tweet的问题也可能会影响我对方法的选择。将所有有效位置放入排序列表中。如果计划比较不区分大小写,请确保列表的大小写已经规范化 然后,您所要做的就是循环输入文本中的单个“单词”,并在每个新词的开头,在位

从自由文本中提取位置的推荐方法是什么

我能想到的是使用regex规则,比如“单词……在位置”。但还有比这更好的方法吗

我还可以考虑使用一个包含国家和城市名称的查找哈希表,然后将从文本中提取的每个标记与哈希表的标记进行比较

有人知道更好的方法吗


编辑:我试图从tweets文本中提取位置。因此,大量tweet的问题也可能会影响我对方法的选择。

将所有有效位置放入排序列表中。如果计划比较不区分大小写,请确保列表的大小写已经规范化

然后,您所要做的就是循环输入文本中的单个“单词”,并在每个新词的开头,在位置列表中启动新的二进制搜索。一旦你发现一个不匹配的词,你可以跳过整个词,继续下一个

可能的问题:多词位置,如“纽约”、“第三街”、“中华人民共和国”。不过,如果你发现你的B搜索会导致(可能的!)多个单词的结果,那么可能只需要保存第一个新词的位置。然后,如果完全比较失败——可能是几个字之后——你所要做的就是回到这个“下一个”字,相对于你开始的前一个字


至于“单词”是什么:在准备位置列表时,列出可能出现在位置中的所有字符。只有包含此列表中字符的短语才能被视为有效的“单词”。

所有基于规则的方法都将失败(如果您的文本确实是“免费的”)。这包括正则表达式、上下文无关语法、任何类型的查找。。。相信我,我以前去过那里:-)

此问题称为命名实体识别。地点是三个学习最多的课程之一(包括个人和组织)。斯坦福NLP有一个非常强大的开源Java实现:


您可以很容易地找到其他编程语言的实现。

推文的速度有多快?就像在twitter上一样,是完整的消防水管还是一些过滤查询? 一种更复杂的方法,类似于您所描述的,是使用集成到地名录的NLP工具。 很少有NLP工具能跟上twitter的速度,也很少有工具能很好地使用twitter,因为所有的leet语言。NLP可以根据您的需要调整精度或召回率,以限制在地名录中执行锁定。
我建议查看(也可以通过Amazon AWS)和

另一个可能的问题可能是多词位置的第一部分可能是位置本身。例如,“柏林”和“柏林高地”,我试图从推文中提取位置。考虑到每秒推文的数量很高,我想这会减慢速度。是吗?不是。训练很慢而且占用内存,但在运行时这是非常有效的。