文本分类,当不同类别中存在通用短语时

时间:2019-05-24 09:19:44

标签: python machine-learning artificial-intelligence classification text-classification

首先,对不起我的英语,并感谢您的耐心等候。

我正在尝试使用对话引擎创建一个聊天机器人分类器。 当前管道如下所示:

Raw_user_input -> preprocessing -> classification -> dialog_engine -> bot_answer

对话框引擎根据对话框状态重新计算分类器分数。

问题是我在不同的班级都有类似的短语。 例如:

如果漫游器询问:Can you provide more information about yourself?

用户的答案:I can //表示“是”。也可以回答“是”

但是如果漫游器询问:Do you want to join our ...<whatever>

用户的回答:I do //也可以使用“是”,但是火车中不会出现“我可以”。

因此,我在“ provide_info_yes”,“ provide_info_no”,“ join_yes”,“ join_no”意图中有一些常用短语。

关于分类,用户回答是“是”,我得到了以下结果:

intents: [other_int1, other_int2, provide_info_yes, provide_info_no, join_yes, join_no]

scores: [0.001, 0.003, 0.21, 0.03, 0.75, 0.006] (分数不是真实的,但是代表问题) 我为'provide_info_yes'得到了0.21,为'join_yes'得到了0.75,但是预期结果是0.5 / 0.5(更少或更多),并且对话框引擎将根据对话框状态重新计算它们(如果机器人询问有关提供信息的分数,则得分为80/20)

目前,我正在使用sklrean的SVC分类器和TF_IDF转换器。在Wikipedia的转储中了解到TF_IDF。我尝试使用KNN分类器,多数民众赞成在我得到预期结果(50/50)的情况下,但是我不想使用它,因为我不喜欢它在其他情况下的行为。

能否请您给我一些有关解决此问题的技巧?而且我不确定我是否做对了所有事情。因此,您还能提供一些有关如何以正确的方式做我想做的提示吗?

0 个答案:

没有答案