Loading

文本分词-结巴

安装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))
posted @ 2020-03-05 16:09  Lust4Life  阅读(213)  评论(0编辑  收藏  举报