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

时间:2015-12-15 15:16:28

标签: machine-learning scikit-learn

问题To classify the user product as banned or approved

如果产品包含类似" 濒危物种 "," 等禁用词,则会将其标记为已禁止虎皮 "等

  • 输入:标题+产品说明
  • 对应标签:已批准/已禁止

我使用监督学习算法 MultinomialNB 对产品进行分类,用bigrams给出了92%的准确率。

但我有一个错误分类的问题,其中" tiger skin"正在获得批准。原因是我们有很多老虎皮花岗岩/老虎皮虾的产品。被标记为已批准。

为了解决这个问题,我想创建一些 规则 以及MultinomialNB算法,以改善这些错误分类。

规则应该是这样的: - 如果关键字" tiger"附近还有3/4字的花岗岩/虾,然后标记/认为它是批准的。

请在这里帮助我。我怎么能这样做。

1 个答案:

答案 0 :(得分:3)

您可能想要尝试的一件事是使用其他类型的分类器,例如GradientBoostedClassifier,它可以捕获变量之间的交互;这可能会解决您的问题。否则,您可以使用正则表达式来实现自定义规则:

import re
if re.search(tiger (\w+ ){0,4}(prawn|granite),text):
   return 'allowed'