如何用 Python 和机器学习训练中文文本情感分类模型?
利用 Python 机器学习框架 scikit-learn,我们自己做一个分类模型,对中文评论信息做情感分析。其中还会介绍中文停用词的处理方法。
疑惑
前些日子,我在微信后台收到了一则读者的留言。
我一下子有些懵 — — 这怎么还带点播了呢?
但是旋即我醒悟过来,好像是我自己之前挖了个坑。
之前我写过《 如何用 Python 从海量文本抽取主题? 》一文,其中有这么一段:
为了演示的流畅,我们这里忽略了许多细节。很多内容使用的是预置默认参数,而且完全忽略了中文停用词设置环节,因此“这个”、“如果”、“可能”、“就是”这样的停用词才会大摇大摆地出现在结果中。不过没有关系,完成比完美重要得多。知道了问题所在,后面改进起来很容易。有机会我会写文章介绍如何加入中文停用词的去除环节。
根据 “自己挖坑自己填” 的法则,我决定把这一部分写出来。
我可以使用偷懒的办法。
例如在原先的教程里,更新中文停用词处理部分,打个补丁。
但是,最近我发现,好像至今为止,我们的教程从来没有介绍过如何用机器学习做情感分析。
你可能说,不对吧?
情感分析不是讲过了吗?老师你好像讲过《 如何用 Python 做情感分析? 》,《 如何用 Python 做舆情时间序列可视化? 》和《 如何用 Python 和 R 对《权力的游戏》故事情节做情绪分析? 》。
你记得真清楚,提出表扬。
但是请注意,之前这几篇文章中,并没有使用机器学习方法。我们只不过调用了第三方提供的文本情感分析工具而已。
但是问题来了,这些第三方工具是在别的数据集上面训练出来的,未必适合你的应用场景。
例如有些情感分析工具更适合分析新闻,有的更善于处理微博数据…… 你拿过来,却是要对店铺评论信息做分析。
这就如同你自己笔记本电脑里的网页浏览器,和图书馆电子阅览室的网页浏览器,可能类型、版本完全一样。但是你用起自己的浏览器,就是比公用电脑上的舒服、高效 — — 因为你已经根据偏好,对自己浏览器上的…