text = open('./Desktop/实验二.txt', 'r', encoding='utf-8').read()
text_psg = psg.lcut(text)
print('人物名词性标注为:\n', ''.join(['{0}/{1}'.format(w, t) for w, t in text_psg]))
截图:
说明:运行代码前,先在桌面上新建文本,我将其命名为"实验二",文本内容如下:
林黛玉
薛宝钗
贾宝玉
贾元春
贾迎春
贾探春
贾惜春
李纨
妙玉
史湘云
王熙凤
巧姐
秦可卿
林黛玉
薛宝钗
贾探春
李纨
妙玉
史湘云
王熙凤
林黛玉
薛宝钗
秦可卿
2.2 统计存储单词
统计词性为nr且长度>1的单词,存储在字典中
代码:
python复制代码
name_counts = {}
for word_pair in text_psg:
if len(word_pair.word) == 1:
continue
else:
if word_pair.flag == 'nr':
name_counts[word_pair.word] = name_counts.get(word_pair.word, 0) + 1
print('人物名词统计结果:', name_counts)
截图:
2.3 生成文本输出
将字典中统计数据进行排序并输出
代码:
python复制代码
item = name_counts.items()
items = list(item)
items.sort(key=lambda x: x[1], reverse=True)
name_list = open('人名及出现次数.txt', 'w', encoding='utf-8')
for i in range(len(items)):
name = items[i][0]
count = items[i][1]
name_count = name + str(count)
name_list.write(name_count + '\n')
name_list.close()