我们收到很多疑问,比如“波士顿的东西”,“纽约附近的东西”,“迈阿密的东西”,我们正在寻找解决这个问题的最好方法。
答案 0 :(得分:4)
如果我正确地解释了您的问题,您正在寻找一种从问题中解析出位置/城市的方法吗?
由于单词以英语自由飞行,我提出的最佳建议是创建一个您感兴趣的国家中最常见城市的表格,并通过文本进行不区分大小写的搜索,扫描这些城市。
使用python进行快速测试实现,使用维基百科提取usa中的城市列表,并创建一个带有城市名称的假问题。脚本从文件中读取文本并搜索城市;使用:
时间如下所示:
real 0m0.061s
user 0m0.040s
sys 0m0.016s
首先列出最常见的城市及其最常见的拼写错误(感谢ted-hop)。然后使用像
这样的简单策略经过几次迭代后,你应该有一个覆盖大部分城市的好名单。
如果你感兴趣,我可以发布代码,这是一个非常简单的蛮力搜索~~ 12行的python。
更新(因为人们仍然会阅读此帖子)
查看difflib
>>> get_close_matches('appel', ['ape', 'apple', 'peach', 'puppy'])
['apple', 'ape']
>>> import keyword
>>> get_close_matches('wheel', keyword.kwlist)
['while']
>>> get_close_matches('apple', keyword.kwlist)
[]
>>> get_close_matches('accept', keyword.kwlist)
['except']
这可能会减轻匹配......
答案 1 :(得分:1)
在计算语言学方面,您正在寻找一种名为“Named Entity Recognition”的方法/技术。有许多可用于执行NER的库,系统或解决方案可以通过Google找到,可能是您选择的开发语言。