Sklearn:如何将关联规则添加到MultinomialNB进行文本分类?

Sklearn: How to add association rules to MultinomialNB for text classification?

问题To classify the user product as banned or approved

如果产品包含诸如“濒危物种”、“[=”之类的禁用词,将被标记为禁用25=]虎皮”等

我使用监督学习算法Mu​​ltinomialNB对产品进行分类,它给出了准确率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'