【问题标题】:Parser to parse search terms and extract valuable information [closed]解析器解析搜索词并提取有价值的信息[关闭]
【发布时间】:2011-09-18 23:37:22
【问题描述】:

我想了解用户的 serarh 术语。想想有人正在搜索“纽约的订书钉” - 我想了解它是一个位置搜索,其中关键字是订书钉,位置是纽约。类似地,如果有人键入“cat in hat”,解析器不应将其标记为位置搜索,这里整个关键字是“cat in hat”。 是否有任何算法或开源库可用于解析搜索词并理解其比较(如 A 与 B)或基于位置的搜索(如 X 中的 A)?

【问题讨论】:

    标签: algorithm parsing nlp information-extraction


    【解决方案1】:

    您应该在 GATE 和http://code.google.com/p/graph-expression/ 等语法中编写此类语言规则。 例子: Token+ in (LocationLookup)。

    【讨论】:

      【解决方案2】:

      不太确定,但根据我的解析经验有两种方法 -

      1. 定义一个可以解析表达式并收集值/参数的语法。您可能想提出一个关键字字典,然后您可以使用它来推断搜索的类型。

      2. 在定义语法时要严格,以便表达式本身告诉您搜索的类型。 例如 LOC: A in B , VALUE $ to Euro。等等

      有关解析器,请参阅 ANTLR / jcup 和 jflex。

      【讨论】:

        【解决方案3】:

        您描述的问题称为information extraction。存在许多算法,最简单的是正则表达式匹配,最好的结构化机器学习。如果您了解 Python,请先尝试正则表达式,然后查看 NLTK 之类的内容。

        如果您的程序知道“NY”是一个位置,则可以区分“纽约的订书钉”和“戴帽子的猫”。您可以通过大写字母或“NY”出现在名为 gazetteer 的列表中来判断。

        一般的问题是AI-complete,所以如果你想要好的结果,请期待付出很多努力。

        【讨论】:

        • 如何使用地名词典?我可以转储地址并解析吗?有没有提供这种服务的服务商?
        • @Shamik:如果你想要一个服务,那么你可以从像 OpenCalais 这样的地方获得完整的 IE 服务。如果您想免费乘坐,请下载 Wikipedia 数据库转储并从中提取地名词典。
        • @Shamic dbpedia.org 正好提供了这一点。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-08
        • 2010-11-06
        • 1970-01-01
        • 2015-04-19
        • 1970-01-01
        • 2013-08-17
        • 2017-01-24
        相关资源
        最近更新 更多