Python文本分析
格式化数据:表格、json
非格式化数据:字符串、文本
内容:
1、中文分词
2、自定义词典、去停用词
3、词频统计、关键词抽取
4、案例:招聘需求关键词抽取
一、 中文分词
分词:就是将0维的非格式化文本转化为格式化、向量化数据
中文分词:将一个汉字序列切分成一个个单独的词
英文文档中,单词之间是以空格作为自然分界符的,而中文词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在分词这一问题上,中文分词相比英文要复杂困难的多:
例如:
[0维的非格式化文本转为格式化]
分词后:
[’0维’ ‘的’ ‘非格式化’ ‘文本’ ‘转为’ ‘格式化’]
中文分词基本步骤
- 载入数据
- 分词
- 分词后的数据转回文本
- 保存分词后的文本为文本文件
import numpy as np
import pandas as pd
import jieba
import jieba.analyse
# 1. 载入数据
with open('E:/text_analysis/data/test.txt', 'r', encoding='UTF-8') as f:
a = f.read()
# 2. 分词
print(a) # 我来到了网易杭研大厦,我是网易人!
b = jieba.cut(a)
print(list(b))
c = jieba.lcut(a) # 直接输出列表
print(c)
# ['我', '来到', '了', '网易', '杭研', '大厦', ',', '我', '是', '网易', '人', '!']
# 3. 分词后的数据转回文本
d = ' '.join(c)
print(d)
# 4.保存分词后的文本为文本文件
with open('E:/text_analysis/data/test_cut.txt', 'w', encoding='UTF-8') as f:
f.write(d)
增加分词的准确率
添加自定义词典
一个词错误分为两个词,解决此问题
1、当句子中的某个词没有被识别分出时,可以指定自己自定义的词典,以便包含jieba词库里没有的词
2、词典文件的内容可以根据项目不断增加。查看初步分词,将分词不正确的词加入自定义词典然后重新再分,直到正确率达标。
3、虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率
jieba.load_userdict(file_name) #file name 为文件类对象或自定义词典的路径
词典格式:
- 词中间不能有标点符号