【问题标题】:Using NLP or machine learning to extract keywords off a sentence使用 NLP 或机器学习从句子中提取关键字
【发布时间】:2018-03-16 05:38:26
【问题描述】:

我是 ML/NLP 领域的新手,所以我的问题是哪种技术最适合实现以下目标:

我们有一个简短的句子 - “去哪里吃晚饭?”或“你最喜欢的酒吧是什么?”或“你最喜欢的廉价酒吧是什么?”

是否有一种技术可以让我通过以下数据集对其进行训练:

  • “去哪里吃晚饭?” -> 晚餐
  • “你最喜欢的酒吧是什么?” -> 酒吧
  • “你最喜欢哪家便宜的餐馆?” -> 便宜的餐厅

这样下次我们有一个关于未知活动的类似问题时,比如说“你最喜欢的贵的 [whatever]”,它就能够提取“expensive”和 [whatever]?

我们的目标是,如果我们可以使用数百个(或数千个)所问问题的变体和预期的相关输出数据对其进行训练,以便它可以使用日常语言。

如果我们有一个包含诸如酒吧、餐厅、游泳池等预期术语的字典,我知道即使没有 NLP/ML 也能做到这一点,但我们也希望它能够处理未知术语。

我已经看到使用 Rake 和 Scikit-learn 对“事物”进行分类的示例,但我不确定如何将文本输入到这些示例中,并且所有这些示例都有预定义的训练输出。

我还尝试过 Google 的 NLP API、Amazon Lex 和 Wit,看看它们在提取实体方面的表现如何,但至少可以说结果令人失望。

阅读摘要技术,我的印象是它不适用于小的单句文本,所以我没有深入研究。

【问题讨论】:

  • 如果您的输入都和您的示例一样短,那么仅提取所有形容词和名词似乎就足够了。有什么不适合你的原因吗?

标签: machine-learning nlp deep-learning artificial-intelligence summarization


【解决方案1】:

正如@polm23 提到的简单内容,您可以使用 POS 标记进行提取。您提到的LUISDialog flow 等服务使用了所谓的自然语言理解。他们使用意图和实体(您可以找到here 的示例详细说明)。如果您担心您的数据会在线或有时您必须离线,您总是选择RASA

你可以用 RASA 做的事情:

  • 实体提取和句子分类。通过使用各种句子标记单词位置来提及要从句子中提取的特定术语。因此,如果出现与您在训练集中给出的不同的词,它将被检测到。
  • 使用基于规则的学习和 keras LSTM 进行检测。
  • 与在线服务相比,一个缺点是您必须手动标记 JSON 文件中的位置编号以进行训练,而不是在线服务中的点击和标记功能。

你可以找到教程here

I am having 疼痛 in my

例如,我已经用各种句子训练 RASA 来识别身体部位和症状(我只限制了 2 个实体,您可以添加更多),然后当出现未知句子(如上一个)时,它会正确识别“疼痛”为“症状”,“”为“身体部位”。

希望这能回答你的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多