我需要从 Google 搜索结果中提取地点 *国家/地区*、城市。例如,我搜索“EEE 图像处理计算智能研讨会”。我正在使用谷歌自定义搜索 API。
我得到这样的片段,
"snippet": "The Computer Security Foundations Symposium is an annual conference for
researchers in ... It was created in 1988 as a workshop of the IEEE Computer
Society Technical Committee on Security and ... CSF-26 was held at Tulane
University, New Orleans, LA, June 26-28, 2013. ... CSFW-19 program and 5-
minute talks.",
如何从响应中提取“杜兰大学,新奥尔良”......请注意,有多个结果,但假设我只获取包含此内容的第一个结果......
最佳答案
考虑到您正在处理自然语言,这很困难。有几种可能性。这实际上取决于输入。
您可以尝试使用模板/正则表达式查找这些内容。如果您知道场馆是通过“举行于”或“组织于”等方式介绍的,您可以使用该信息来提取场馆/地点。
您可以使用 POS/NE 标记器来标记单词。使用 Standford CoreNLP Pipeline 的效果(缩短,仅使用相关句子和信息):
CSF-26 NN O 是VBD O 举行VBN O 在INO 杜兰 NNP 组织 大学 NNP 组织 新 NNP 地点 奥尔良 NNP 位置 兰州国家公园位置 六月 NNP 日期 26-28 CD 日期 2013 年 CD 日期
该词后面是 POS 标记,然后是 NE 实体标记。 O 代表“Other”,其余的应该是不言自明的。然后,您可以查找“位置”以及周围的“位置”或“组织”。
您可以使用地名数据库来查找“国家/城市”,然后查看 x 周围的单词。如果您还可以提供常用“ field ”名称的列表,则可以将其包括在内以进一步改善结果。此步骤也可以集成到任何其他方法中。
此列表并不详尽。它很大程度上取决于输入的方差。
关于java - 从谷歌搜索中提取国家、城市和地点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728880/