Sklearn:如何将关联规则添加到MultinomialNB进行文本分类?
Sklearn: How to add association rules to MultinomialNB for text classification?
问题:To classify the user product as banned or approved
。
如果产品包含诸如“濒危物种”、“[=”之类的禁用词,将被标记为禁用25=]虎皮”等
- 输入: 标题+产品描述
- 相应的标签:已批准/已禁止
我使用监督学习算法MultinomialNB对产品进行分类,它给出了准确率92% 的双字母组。
但是我有一个分类错误的问题,"tiger skin" 的产品正在获得批准。这是因为我们有很多 "tiger skin granite / tiger skin prawns" 的产品被标记为已批准。
为了解决这个问题,我想创建一些 规则 以及 MultinomialNB 算法 ,以改善这些错误分类。
规则应该是这样的:- 如果关键字 "tiger" 在附近的 3/4 个单词处也有 granite/prawns 那么 mark/consider 它被批准。
请帮帮我。我该怎么做。
您可能想尝试的一件事是使用另一种类型的分类器,例如 GradientBoostedClassifier
,它可以捕获变量之间的相互作用;这可能会解决您的问题。否则你可以只使用正则表达式来实现你的自定义规则:
import re
if re.search(tiger (\w+ ){0,4}(prawn|granite),text):
return 'allowed'
问题:To classify the user product as banned or approved
。
如果产品包含诸如“濒危物种”、“[=”之类的禁用词,将被标记为禁用25=]虎皮”等
- 输入: 标题+产品描述
- 相应的标签:已批准/已禁止
我使用监督学习算法MultinomialNB对产品进行分类,它给出了准确率92% 的双字母组。
但是我有一个分类错误的问题,"tiger skin" 的产品正在获得批准。这是因为我们有很多 "tiger skin granite / tiger skin prawns" 的产品被标记为已批准。
为了解决这个问题,我想创建一些 规则 以及 MultinomialNB 算法 ,以改善这些错误分类。
规则应该是这样的:- 如果关键字 "tiger" 在附近的 3/4 个单词处也有 granite/prawns 那么 mark/consider 它被批准。
请帮帮我。我该怎么做。
您可能想尝试的一件事是使用另一种类型的分类器,例如 GradientBoostedClassifier
,它可以捕获变量之间的相互作用;这可能会解决您的问题。否则你可以只使用正则表达式来实现你的自定义规则:
import re
if re.search(tiger (\w+ ){0,4}(prawn|granite),text):
return 'allowed'