PYNLPIR中文分词,生成词云图片

NLPIR介绍

官方网站:NLPIR-ICTCLAS汉语分词系统

NLPIR汉语分词系统

主要功能包括中文分词;英文分词;词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种操作系统、多种开发语言与平台。

功能

中英文混合分词功能

自动对中文英文信息进行分词与词性标注功能,涵盖了中文分词、英文分词、词性标注、未登录词识别与用户词典等功能。

关键词提取功能

采用交叉信息熵的算法自动计算关键词,包括新词与已知词,下面是对十八届三中全会报告部分内容的关键词提取结果。

新词识别与自适应分词功能

从较长的文本内容中,基于信息交叉熵自动发现新特征语言,并自适应测试语料的语言概率分布模型,实现自适应分词。

用户专业词典功能

可以单条导入用户词典,也可以批量导入用户词典。如可以定“举报信 敏感点”,其中举报信是用户词,敏感点是用户自定义的词性标记。

PYNLPIR

pynlpir是Python下的API,可使用pip直接安装

启动or关闭API

pynlpir.open()
pynlpir.close()

添加用户字典

pynlpir.nlpir.ImportUserDict(b'xxx.txt')

最重要滴,分词

text_segment = pynlpir.segment(contents)

完整代码

from collections import Counter
import matplotlib.pyplot as plt
import wordcloud
import pynlpir

with open('./paper.txt', encoding='utf-8') as text:
    contents = text.read()

# 分词
pynlpir.open()    # 启动API
pynlpir.nlpir.ImportUserDict(b'user_dict.txt')    # 读取用户字典,路径需要是二进制字符串
text_segment = pynlpir.segment(contents)    # 分词
words = []
disliked_tag = ['numeral', 'time word', 'punctuation mark',
                'preposition', 'conjunction', 'noun of locality']  # 不喜欢的标签
for w in text_segment:
    w0 = w[0].strip()
    if len(w0) > 1 and w[1] not in disliked_tag:    # 删除单个字和不喜欢的标签
        print(w)
        words.append(w0)
pynlpir.close()    # 关闭API
# 词频统计
word_cnt = Counter(words)
print(word_cnt)

# 生成词云
wc = wordcloud.WordCloud(
    scale=8,    # 设置图像清晰度,只在保存时起作用,显示时不起作用
    font_path='C:/Windows/Fonts/simhei.ttf',    # 设置字体格式
    max_words=50,    # 最多显示词数
    max_font_size=100,
    background_color='white'
)
wc.generate_from_frequencies(word_cnt)  # 从字典生成词云
wc.to_file('./1.png')    # 保存词云图像

# 显示词云
plt.imshow(wc)
plt.axis('off')    # 关闭坐标轴
plt.show()    # 显示图像

生成的图片

发布了9 篇原创文章 · 获赞 2 · 访问量 316

猜你喜欢

转载自blog.csdn.net/Z_Pythagoras/article/details/105036744
今日推荐