1.朴素贝叶斯中文文本分类
- 中文分词
- 停用词
- 朴素贝叶斯中文分类举例:新闻文档分类
- 朴素贝叶斯中文分类的具体过程:加载停用词、中文分词、文本向量化、模型训练和保存、模型的加载和预测。
2 中文分词
2.1 中文的分词的作用
- 在中文自然语言处理中,词是最小的能够独立活动的有意义的语言成分。汉语是以字为基本书写单位,词语之间没有明显的区分标记,因此进行中文自然语言处理通常是先将汉语文本中的字符串切分成合理的词语序列,然后再在此基础上进行其它分析处理。
2.2 对文档分词
- 常用的分词工具包括:jieba、THULAC和pkuseg
- 一篇文档是由若干词汇组成的,也就是文档的主要信息是词汇。
- 可以使用一些关键词来描述文档,提取文档中的关键词,就需要对文档进行分词
2.3 jieba分词
- jieba是一款非常流行中文开源分词包,具有高性能、准确率、可扩展性等特点。
- jieba支持四种分词模式:精确模式、搜索引擎模式、全模式和paddle模式。
3 结巴分词的实现
在这里插入代码片
import jieba
# jieba分词
def method():
seg_list = jieba.cut("我们正在学习自然语言处理", cut_all=False)
print("【精确模式】:\t" + "/ ".join(seg_list)) # 精确模式,默认
seg_list = jieba.cut_for_search("我们正在学习自然语言处理")
print("【搜索引擎模式】:\t" + "/ ".join(seg_list)) # 搜索引擎模式
seg_list = jieba.cut("我们正在学习自然语言处理", cut_all=True)
print("【全模式】:\t\t" + "/".join(seg_list)) # 全模式
seg_list = jieba.cut("我们正在学习自然语言处理", use_paddle=True) # 使用paddle模式
print("【paddle模式】:\t" + '/ '.join(list(seg_list)))
# main方法
def main():
method()
if __name__ == '__main__':
main()
4 停用词
4.1 停用词的作用
- 停用词是一些非常普遍使用的词语,对文档分析作用不大,在文档分析之前需要将这些词去掉 。
- 中文停用词:“你,我,他,它,的,了” 等。
- 英文停用词:“is,a,the,this,that” 等。
- 停用词文件:停用词一般保存在文件中,需要自行读取。
5 新闻文档分类
5.1 中文分别分类:新闻文档分类
- 新闻文档报道,假设主题有三种类型:娱乐、政治、体育,假设现在有一篇新闻文档x,请预测x属于哪种新闻类型?
具体思路
- 计算x属于娱乐新闻,政治新闻,体育新闻的三个概率值,然后比较哪个概率值大,就把X分到这个类别中。
贝叶斯公式计算可得:
步骤一:
-
搜集10000篇关于娱乐,政治,体育三类新闻文档作为训练样本:
步骤二: -
计算类条件概率
步骤三:
- 根据概率,判断对应文档的类别