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() # 显示图像