vlambda博客
学习文章列表

【代码实现】part1 中文分词

part1 中文分词


主要步骤:

1. 列出统计词、读取小说文本

2. 将统计词加入自定义词典,实现精准分词。原因:

    1. 避免其他字干扰,例如道、向,使“张三”分成张三道、三道、三向……

    2. 由于默认分成两字,两字以上的"张三四"可能分成张三、三四

3. 分词

4. 去除停用词。耗时

5. 保存结果


import jieba

# 列出统计词
name_ls = ['张三''李四']

# 读取小说文本
with open('./小说.txt''r', encoding='utf-8'as f:
    text = f.read()

# 将统计词加入自定义词典,实现精准分词
[jieba.add_word(i, tag='d'for i in name_ls]

# 分词
words_after_jieba = jieba.lcut(text)

# 读取停用词表。可在网上下载并补充
with open('./stopwords.txt''r', encoding='utf-8'as f:
    stopwords = f.read().strip().split('\n')
# 去除停用词,以及单字的分词
word_list = []
for i in words_after_jieba:
    if len(i) > 1 and i not in stopwords:
        word_list.append(i)
    elif i in '朕':  # 保留的单字分词
        word_list.append(i)

# 保存分词结果
with open('./小说_jieba.txt''w', encoding='utf-8'as f:
    f.write('\n'.join(word_list))


编程语言: python

源码太长难看,不直接发。上块是码选有实际运行过,而且排版过程中不确定有没丢失字符串,使用时注意下