Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP确定短文本(500到1000字)中提到的位置_Php_Drupal_Location_Text Parsing - Fatal编程技术网

使用PHP确定短文本(500到1000字)中提到的位置

使用PHP确定短文本(500到1000字)中提到的位置,php,drupal,location,text-parsing,Php,Drupal,Location,Text Parsing,我想找到一种方法来获取一段用户提供的文本,并确定文本中提到了地图上的哪些地址。我很乐意使用一个免费的web服务,如果它存在的话,或者使用一个不会消耗太多资源的脚本 我可以想象这样做的一种方式是使用一个巨大的数据库来寻址和搜索文本中的每一个元素,但这似乎并不高效。有没有更好的算法或技术可以推荐 我的基本想法是将位置信息转化为谷歌地图上的标记。如果自动确定位置太困难或CPU密集,我可以要求用户在必要时在位置字段中添加信息,但我不希望这样做,因为一些用户将是非常年轻的学生 这需要在PHP中完成,因为这

我想找到一种方法来获取一段用户提供的文本,并确定文本中提到了地图上的哪些地址。我很乐意使用一个免费的web服务,如果它存在的话,或者使用一个不会消耗太多资源的脚本

我可以想象这样做的一种方式是使用一个巨大的数据库来寻址和搜索文本中的每一个元素,但这似乎并不高效。有没有更好的算法或技术可以推荐

我的基本想法是将位置信息转化为谷歌地图上的标记。如果自动确定位置太困难或CPU密集,我可以要求用户在必要时在位置字段中添加信息,但我不希望这样做,因为一些用户将是非常年轻的学生

这需要在PHP中完成,因为这是我的学校托管服务器上可用的脚本语言


请注意,整个设置将在Drupal节点的上下文中进行,我计划使用过滤器从单个节点收集必要的位置信息,因此这种解析只会发生一次(当新文本进入数据库时)。

如果关系数据库中有大量的位置列表,您只需要关心500到1000个单词,然后您就可以通过SQL命令来查找500到1000个单词的匹配项,这将是非常有效的

但是,即使您必须调用一个缓慢的API,您也可以一个接一个地请求500个单词。如果你保留了一个匹配的缓存,那么缓存可能会很快填满所有的停止字(你知道,比如“the”,“If”,“and”),然后使用缓存,你每次搜索的字可能会少于500个


我想你可能会惊讶于暴力手段的工作速度

您可以获得类似于标记文本的内容。它返回的分类之一是“城市”,然后您可以使用另一个第三方模块来显示城市的位置。

作为将来的参考,我只想提及调用的Yahoo API以及在此基础上构建的服务


这些工具可用于根据此处的请求从文本中解析出位置。不幸的是,目前似乎不存在Drupal模块,但定制解决方案似乎很容易编码。

locations?你指的是地址吗?谷歌有一个地理编码器,它可以接收地址并返回你可以用于标记的lon和lat-不是CPU密集型是的,我计划使用这些信息,但首先我需要提到的位置(不会是地址)。例如,一个学生可能会提到“罗马”这个词,我想把它变成谷歌地图上的一个标记。创建标记很容易,我正在寻找在文本中查找单词“Rome”的最有效方法。我想我可以从忽略所有长度小于3个字符的单词开始…这将稍微提高性能。虽然两个答案在技术上都是正确的,但我这方面的工作似乎要少得多。更好的是,显然有一个加来地理模块,它几乎完全符合我的要求。