我是ML / NLP领域的新手,所以我的问题是什么技术最适合实现以下目标:
我们有一个短句 - "去哪里吃饭?"或者"你最喜欢的酒吧是什么?"或者"你最喜欢的廉价酒吧是什么?"
是否有一项技术可以让我训练它,提供以下数据集:
以便下次我们对未知活动有类似的问题,比如说,"你最喜欢的是什么?[无论如何]"它能够提取昂贵的"和[无论如何]?
我们的目标是,如果我们能够根据所提问题的数百种变化(或数千种)以及预期的相关输出数据对其进行训练,那么它可以与日常语言一起使用。
如果我们有一个包含酒吧,餐厅,游泳池等预期条款的字典,我知道如果没有NLP / ML就可以制作它,但我们也希望它能用于未知术语。
我已经看过Rake和Scikit的例子 - 学习"事物"的分类,但是我不确定如何将文本提供给那些,所有这些例子都有预定义的输出用于培训。
我还尝试了谷歌的NLP API,亚马逊Lex和Wit,看看他们在提取实体方面有多好,但至少可以说结果令人失望。
阅读摘要技巧,我留下的印象是它不会使用小的单句文本,所以我还没有深入研究它。
答案 0 :(得分:3)
正如@ polm23提到的简单内容,您可以使用POS标记进行提取。您提到的服务如LUIS,Dialog flow等,使用的是所谓的自然语言理解。他们利用意图和实体(详细解释与示例here)。如果您担心自己的数据正在上线,或者有时您必须离线,那么请始终使用RASA。
你可以用RASA做的事情:
您可以找到教程here。
Set<String> mySet = new HashSet<>();
mySet.add("Dad");
mySet.add("Mum");
mySet.add("15454");
mySet.add("90000");
mySet.stream()
.forEach(x -> System.out.println(x + " : " + x.hashCode()));
System.out.println(mySet);
痛苦 I am having
腿。
例如,我训练了RASA用各种句子来识别身体部位和症状(我只限于2个实体,你可以添加更多),然后当出现一个未知句子(如上面的那个)时,它会正确识别“痛”为“症状”,“腿”为“身体部位”。
希望这能回答你的问题!