Java中虚拟助手的查询分类?

这是我第一次在Stack Overflow上发帖,请告诉我以后在提问时是否需要更加详细。

目前我正在使用Java开发一个Android的虚拟助手应用,虽然进展顺利,但我不知道如何对用户输入进行分类。到目前为止,我已经在程序中实现了Stanford NLP Parser,这样可以对原始文本应用从句、短语和词汇标签。这让我能够让程序识别直接提问并从中提取主题,只需搜索某些标签的出现即可。

(ROOT  (SBARQ <--- 表示该句子是一个问题    (WHNP (WP Who))      (SQ (VBD were)        (NP (DT the) (FW samurai))) <--- 问题的对象      (. ?)))

虽然这感觉是一个进步,但我希望最终能够让助手能够对不同类型的问题进行分类(如与天气相关的问题、与时间/日期相关的问题等),同时也能够识别那些不那么直接但询问相同信息的问题(例如,“你能告诉我关于武士的事吗?”与“武士是谁?”)。仅仅使用Stanford NLP Parser并寻找某些标签来完成这项任务似乎非常困难。有人对我可以采取的其他方法有建议吗?

谢谢!


回答:

关于虚拟助手或聊天机器人,这通常被称为意图分类。有很多方法可以做到这一点,但通常你会提供标记的例子并训练一个模型来区分它们。以下是来自一篇博客文章的主题示例数据:

# 3类训练数据training_data = []training_data.append({"class":"greeting", "sentence":"how are you?"})training_data.append({"class":"greeting", "sentence":"how is your day?"})training_data.append({"class":"greeting", "sentence":"good day"})training_data.append({"class":"greeting", "sentence":"how is it going today?"})training_data.append({"class":"goodbye", "sentence":"have a nice day"})training_data.append({"class":"goodbye", "sentence":"see you later"})training_data.append({"class":"goodbye", "sentence":"have a nice day"})training_data.append({"class":"goodbye", "sentence":"talk to you soon"})training_data.append({"class":"sandwich", "sentence":"make me a sandwich"})training_data.append({"class":"sandwich", "sentence":"can you make a sandwich?"})training_data.append({"class":"sandwich", "sentence":"having a sandwich today?"})training_data.append({"class":"sandwich", "sentence":"what's for lunch?"})

虽然你的训练数据是特定于你的应用的,但原则上它与自动分类电子邮件或新闻文章没有不同。

一种易于使用的文本分类基线算法是朴素贝叶斯。较新的方法包括使用词移动距离或神经网络。

你提取主题的部分也被称为槽检测,助手的“意图和槽”架构很常见。即使你想从头开始构建一些东西,查看像rasa这样的聊天机器人平台的配置屏幕可能会有帮助,以了解如何使用训练数据。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注