【代码实现】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
源码太长难看,不直接发。上面代码块是从源码选取修改的,没有实际运行过,而且排版过程中不确定有没丢失字符串,使用时注意下。