Python使用jieba分词并统计高频词

对文本分词并统计高频词,即关键词,是做网络爬虫的基本需求。

使用Python可以实现这一点,这里我们使用jieba进行分词,并使用collections进行词频统计。

直接上代码:

import re
import jieba
from collections import Counter
from funcs import *

def chinese_word_cut(mytext):
    # 添加jieba库识别不了的网络新词,避免将一些新词拆开
    jieba.load_userdict('data/新词.txt')
    # 初始化jieba
    jieba.initialize()
    # 文本预处理 :去除一些无用的字符只提取出中文出来
    new_data = re.findall('[\u4e00-\u9fa5]+', mytext, re.S)
    new_data = " ".join(new_data)
    # 文本分词
    seg_list_exact = jieba.lcut(new_data)
    result_list = []
    # 可根据需要打开停用词库,加上不想显示的词语
    with open('data/停用词.txt', encoding='utf-8') as f: 
        con = f.readlines()
        stop_words = set()
        for i in con:
            i = i.replace("\n", "")   # 去掉读取每一行数据的\n
            stop_words.add(i)
    # 去除停用词并且去除单字
    for word in seg_list_exact:
        if word not in stop_words and len(word) > 1:
            result_list.append(word)
    return result_list

content = file_get_contents('data/示例文章.txt')

content_cutted = chinese_word_cut(content)
print(content_cutted)

words_count = Counter(content_cutted)
print(words_count.most_common(6))

Leave a Comment

豫ICP备19001387号-1