目前,我正在考虑如何从文本(如博客)中找到一个位置,而不需要用户输入任何其他信息。例如,一篇文章可能如下所示:
“阿伯丁,脚踩在海底
自20世纪70年代初以来,苏格兰的阿伯丁从一个粗犷的渔村发展成为世界海上能源工业技术创新的中心。“
通过阅读这篇文章,我意识到这篇文章是关于苏格兰阿伯丁的,但我如何才能给它贴上地理标签呢?我一直在使用Alex的geocoder (https://github.com/alexreisner/geocoder),但是对照google/nominatim(osm)来检查每个单词似乎很奇怪。我最初的想法是用地理编码器检查每个单词,看看它们之间是否有相似之处。但似乎有更好的方法来解决这个问题。
有人做过类似的事吗?任何可能被建议的算法(或gem :)都会受到极大的赞赏!
发布于 2013-07-30 20:32:45
我相信已经有专门的项目-例如,谷歌的不可思议的能力,地理标记和从你的个人电子邮件中提取数据毫不费力。
我在这里看到的最明显的答案是为位置创建一些正则表达式。最简单的一个是城市,乡村:
Regexp.new("((?:[a-z][a-z]+))(.)(\\s+)((?:[a-z][a-z]+))",Regexp::IGNORECASE);
这将识别Aberdeen, Scotland,但也会识别course, I甚至thanks, bye。不过,这将是一个开始,只查询那些已识别的点,而不是文档中的每个单词。
还有众所周知的地址、城市等正则表达式。如果您发现算法缺少匹配,也可以使用这些正则表达式。
干杯!
https://stackoverflow.com/questions/17956712
复制相似问题