我是ML / NLP领域的新手,所以我的问题是哪种技术最适合实现以下目标:
我们有一个短句——“去哪里吃饭?”或“你最喜欢的酒吧是什么?”
有没有一种技术可以让我训练它提供以下数据集:
因此,下次我们对未知活动提出类似的问题时,例如,“您最喜欢的昂贵[无论如何]是什么”,它将能够提取“昂贵”和[其他]?
我们的目标是,如果我们可以用数百个(或数千个)不同的问题和预期的相关输出数据来训练它,那么它就可以使用日常语言。
如果我们有酒吧、餐厅、游泳池等预期术语的字典,我知道如何使它即使没有NLP/ML,但我们也希望它与未知术语一起工作。
我见过Rake和Scikit-learn对“事物”进行分类的例子,但我不确定如何将文本输入这些例子,所有这些例子都有预定义的训练输出。
我还尝试了谷歌的NLP API、亚马逊Lex和Wit,看看它们在提取实体方面有多好,但至少可以说,结果令人失望。
读到关于摘要技术的文章,我留下的印象是,它不适用于小的单句文本,所以我没有深入研究它。
正如@polm23提到的简单内容,您可以使用POS标签进行提取。你提到的服务,如 LUIS、对话流等。,使用所谓的自然语言理解。他们利用意图
使用RASA可以做的事情:
你可以在这里找到教程。
我的
腿疼。
例如,我用各种句子来训练RASA识别身体部位和症状(我只限于2个实体,你可以添加更多),然后当一个未知的句子(如上所示)出现时,它将正确地识别“疼痛”为“症状”,而“腿”为“身体部位”。
希望这能回答你的问题!
因为“数百到数千”听起来您几乎没有从头开始训练模型的数据。您可能需要考虑训练(技术上微调)一个DialogFlow代理来匹配句子(“去哪里吃饭?”)和意图(“晚餐”),然后通过API调用进行集成。
或者,您可以投入时间微调一个小型的预训练模型,如“HuggingFace”中的“Distilled BERT分类器”,因为您不需要训练一个有生产价值的模型所需的1000到数十亿个数据样本。这也可以离线评估,并使您能够在未来解决其他NLP问题,而无需对基本统计数据有太低的理解。