问题 : 将用户产品分类为禁用或批准
。
如果产品包含如”濒危物种“、”虎皮“等禁用词语,将被标记为禁用。
- 输入:产品的标题 + 描述
- 相应标签:批准 / 禁用
我使用了MultinomialNB这种监督学习算法来对产品进行分类,使用二元语法时准确率达到了92%。
但我遇到了一个误分类的难题,即”虎皮”产品被批准了。原因是我们有很多”虎皮花岗岩/虎皮虾”产品被标记为批准。
为了解决这个问题,我想在MultinomialNB算法之外创建一些规则,以改善这些误分类情况。
规则应该像这样:如果关键词”虎”附近3/4个词内有”花岗岩/虾”,则将其标记/视为批准。
请帮帮我。我该怎么做?
回答:
你可以尝试使用另一种类型的分类器,例如GradientBoostedClassifier
,它可以捕捉变量之间的交互;这可能解决你的问题。否则,你可以使用正则表达式来实现你的自定义规则:
import re
if re.search(r'tiger (\w+ ){0,4}(prawn|granite)', text):
return 'allowed'