文本分词-结巴
安装jieba
pip install jieba
使用
常用词统计分析
import os, codecs
import jieba
from collections import Counter
def get_words(txt):
seg_list = jieba.cut(txt)
c = Counter()
for x in seg_list:
if len(x)>1 and x != '\r\n':
c[x] += 1
print('常用词频度统计结果')
for (k,v) in c.most_common(100):
print('%s%s %s %d' % (' '*(5-len(k)), k, '*'*int(v/3), v))
if __name__ == '__main__':
with codecs.open('jobwelfare.csv', 'r', 'utf8') as f: #读取csv文件
txt = f.read()
get_words(txt)
##也可以使用pandas将频率比较高的词写入文本
cat xx | sort | uniq
awk命令去重输出:awk '!x[$0]++' filename
应用扩展1:cat Afile Bfile|awk '!x[$0]++' >Cfile
依次输出A、B两个文件内容,去掉B中与A重复的行,输出到C;多应用于日志拼接。
灵活扩展2:cat Afile|awk '!x[$0]++'
也可以写作:awk '!x[$0]++' Afile
去掉重复的行,输出A文件
根据已创建好的字典分词
import jieba
import jieba.posseg as pseg
##使用字典,内容为一些自定义的有意义的词
#五险一金 年底双薪 绩效奖金 带薪年假 补充医疗保险 等
jieba.load_userdict("dict.txt")
with codecs.open('jobwelfare.csv', 'r', 'utf8') as f:
txt = f.read()
# words = jieba.cut(txt)
seg_list = jieba.cut(txt)
c = Counter()
for x in seg_list:
if len(x)>1 and x != '\r\n':
c[x] += 1
print('常用词频度统计结果')
for (k,v) in c.most_common(100):
print('%s%s %s %d' % (' '*(20-len(k)), k, '*'*int(v/3), v))