【问题标题】:Approach to extract meaning from sentence NLP从句子 NLP 中提取意义的方法
【发布时间】:2018-09-06 23:31:03
【问题描述】:

我想知道从文本中提取意义的最佳方法是什么。我读了NLTK,它确实给了我一些关于 NLP 基础知识的好信息。

我是 nlp 的新手,所以我很难决定我的方向应该是什么。在阅读了 NLTK 文本后,我想到了可以解决我的问题的方法:

这是我的理想目标,并附有例句:

输入:

在 2018 年 8 月 29 日至 2018 年 9 月 12 日(每个星期三)和 2018 年 9 月 10 日(星期一)执行 X

以粗体输出词性标记(至少是我的设想):

在 2018 年 8 月 29 日(日期)做 X,直到(范围)9/12/ 2018(日期)(每个(频率)星期三( )和 2018 年 9 月 10 日(日期)(星期一)(

接下来,我将遍历词性标签并删除文本。我希望在对文本进行适当的分块之后,我需要做一些额外的处理才能弄清楚用户到底想要什么。这是我认为从句子中成功提取含义后的输出:

2018 年 8 月 29 日 - 2018 年 9 月 12 日,星期三

2018 年 9 月 10 日,星期一

我意识到可以通过正则表达式轻松找到月份中的日期、日期和日期等。

但我的问题是 NLTK 方法 nltk.pos_tag 方法对我不起作用。 (对于那些不熟悉的人,该方法是一个词性标注器来标注词,如名词、动词等。)我很可能需要自定义我自己的 pos_tag方法?

所以这是我的问题。是否首先标记每个标记化的单词,然后从被认为是提取意义的最佳实践的标记中分块句子?

我猜我需要某种 AI 分类来学习分块部分,以便将来我可以从多个句子中提取含义。

我的方法合理吗?我疯了吗? :)

【问题讨论】:

    标签: python nlp artificial-intelligence nltk


    【解决方案1】:

    虽然您没有发疯(可能:),但这是一个非常笼统的问题(可能)很快就会被管理员标记为不适合 SO,因为它太宽泛了。 “提取句子的含义”基本上是每个从事 NLP 工作的人几十年来一直在努力的事情。大多数(商业上/实际)可行的方法之所以存在,只是因为它们的应用领域相对有限。想想一个用于酒店预订的聊天机器人(有明确定义的到达/离开日期、位置等的时间段),一个允许语音输入的汽车导航系统(“我想去 X,避开高速公路”)等等。

    由于您的示例输出是针对日期和时间的,而这确实不是 pos-tagger 的用途,因此某些时间分析模块可能更适合您的用例。想到的只有一个工具包是https://github.com/HeidelTime/heideltime,它使用 TimeML 方案(这也是您可能想看看的东西)来指示具体的时间点和时间间隔,并尝试将其标准化为机器- 可读的时间点。

    就 NLP 模块而言,您还需要什么取决于您的输入。如果它相对严格(说某事的不同方式的数量很少),那么手动制作一个简单的语法可能是你最好的选择。然而,事情很容易变得更复杂。自然语言中的“Do X on Mondays from dd-mm-yyyy until dd-mm-yyyy”同样可以用“Do X on Mondays,从 dd-mm-yyyy 开始,到 dd-mm-yyyy 结束”来表达。它确实有助于了解您的用户将使用哪种语言。一个开箱即用的包或工具包,通常用于从句子中提取含义(对于英语,更不用说其他 6.000 种左右官方认可的语言之一(无论哪个机构决定):) 尚未被发现/开发.

    除了 NLTK(我发现它对于教育目的非常有价值,并且使用起来相对灵活,但现在有点过时了),您可以查看 https://spacy.io/。在某种程度上,它旨在做同样的事情,但使用更现代的方法和数据集。

    【讨论】:

      【解决方案2】:

      我猜你正在寻找的不是 pos 标记,因为 pos 标记是指你所说的决定一个词是名词、动词等。你的问题是一个 NER 问题,它代表命名实体识别和这可以让您了解一个单词或单词列表是否是地名、人名、酒店名称等。

      有很多资源、教程库(甚至在 nltk NLTK NER 和 Spacy Spacy NER 中)可以解释这个问题。

      希望我能帮助你更好地定位。

      祝你好运;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 2018-03-16
        相关资源
        最近更新 更多