【发布时间】:2018-09-13 18:40:24
【问题描述】:
许多 NLP API 都提供意图提取,例如 API.ai 和 wit.ai。但是我不清楚他们的细节。他们是进行依赖解析然后提取关系,还是只是从句子中取出关键字?如何解析“检查明天是否会下雨”?
【问题讨论】:
-
你有什么发现吗??
-
还没有。似乎仍然是一个非常棘手的问题
许多 NLP API 都提供意图提取,例如 API.ai 和 wit.ai。但是我不清楚他们的细节。他们是进行依赖解析然后提取关系,还是只是从句子中取出关键字?如何解析“检查明天是否会下雨”?
【问题讨论】:
我知道有几种方法。它们可以一起用作输出分数的集合。
(1) 将意图映射到字符串文字。比较这些字符串文字是否完全匹配或余弦相似度。
(2) 根据上下文缩小可能意图的范围。
(3) 正则表达式匹配:如果一个句子包含一个特征正则表达式(如电话号码),那么它至少可以“缩小”搜索意图的范围。
(4) Word Movers Distance:类似于word embeddings(即深度学习NLP),只是传入整个句子,比较与另一个句子的总距离。
(5) 使用双向 LSTM:参见 tutorial 或 tensorflow。
(6) 使用命名实体识别 (NER) 保留“候选意图”列表。 spaCy 这样做。更好的是用它来subject-object extraction。
(7) 如果找不到,请使用“后备意图”。这可以指“分层意图”,其中底层叶子代表您所指的意图。这也可以指类似于“机器人不知道该说什么”的意图。
【讨论】: