文章目录
最近在我的网站骂我的人比较多,想写一个语义分类器,让电脑自动屏蔽那些骂人的评论,怎么办呢?这就用到了一个机器学习的算法——贝叶斯文本分类器。这个算法很有用处,可以让电脑识别人类语言,如果加上一点心理学的知识,可以让电脑理解人类的文章并让电脑判断作者的个性特征,这就复杂了,现在我们先做一个简单的示范。
- 首先是需要一个样本集,用于训练文本分类器:这里面用到了一个分词算法【cs.perse】,其实是一个机械分词算法,cs.py 文件的代码粘贴在最下面。
![Python机器学习:[1]贝叶斯文本分类器](/2016/05/05/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%9A%5B1%5D%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%99%A8/35da1d3b5bb5c9ea8a85a169d639b6003bf3b383.jpg)
- 下面的函数利用样本创建一个词表,也就是所有词的集合
![Python机器学习:[1]贝叶斯文本分类器](/2016/05/05/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%9A%5B1%5D%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%99%A8/b3508d13b07eca80ca739b6d922397dda0448383.jpg)
- 下面的函数将一个词表转换成词向量
![Python机器学习:[1]贝叶斯文本分类器](/2016/05/05/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%9A%5B1%5D%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%99%A8/647912d7912397dd12243a8e5a82b2b7d1a28798.jpg)
- 训练样本得到脏话/非脏话的词分布概率
![Python机器学习:[1]贝叶斯文本分类器](/2016/05/05/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%9A%5B1%5D%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%99%A8/9c57e3faaf51f3de6dc41bee97eef01f3b297983.jpg)
- 利用贝叶斯条件概率,计算输入的一句话到底是不是骂人的话,如果是骂人的话,就返回1,否则返回0
![Python机器学习:[1]贝叶斯文本分类器](/2016/05/05/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%9A%5B1%5D%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%99%A8/5f9e93b1cb134954e1684aee554e9258d0094a83.jpg)
- 最后测试一下【’fuck you! mother fucker!’】这句话,输出结果为:1
![Python机器学习:[1]贝叶斯文本分类器](/2016/05/05/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%9A%5B1%5D%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%99%A8/718e25c79f3df8dcdb612d1bce11728b46102898.jpg)
转载请注明来自DataScience.
邮箱: 675495787@qq.com