从文本中查找位置

时间:2013-07-30 20:26:22

标签: ruby-on-rails ruby geolocation location

我目前正在考虑如何从文本中找到位置,例如博客帖子,而无需用户输入任何其他信息。例如,帖子可能如下所示:


“阿伯丁,踏上海底

自20世纪70年代初以来,苏格兰的阿伯丁已从一个坚韧不拔的渔镇发展成为世界海上能源工业技术创新中心。“


通过阅读它,我意识到这篇文章是关于苏格兰阿伯丁的,但我怎么能对它进行地理标记呢?我一直在使用Alex Reisner的地理编码器(https://github.com/alexreisner/geocoder),但是对google / nominatim(osm)检查每个单词似乎很奇怪。我最初的想法是通过使用地理编码器检查每个单词来简单地强制它,并尝试查看单词之间是否存在相似之处。但似乎可以有更好的解决方法。

有没有人做过类似的事情?任何可以建议的算法(或宝石:)都会非常感激!

1 个答案:

答案 0 :(得分:1)

我确信已经有专门的项目 - 例如,谷歌不可思议的地理标记和从您的个人电子邮件中轻松选择数据的能力。

我在这里可以看到的最明显的答案是为位置创建一些正则表达式。最简单的一个是City,Country:

Regexp.new("((?:[a-z][a-z]+))(.)(\\s+)((?:[a-z][a-z]+))",Regexp::IGNORECASE);

这会识别Aberdeen, Scotland,但也会识别course, I甚至thanks, bye。但是,只查询那些已识别的点而不是文档中的每个单词,这将是一个开始。

地址,城市等也有广为人知的正则表达式。如果您发现算法缺少匹配,也可以使用它们。

干杯!