nlpir是由张华平博士开发的中文自然处理工具,可以对中文文本进行分词、聚类分析等,它既有在线的中文数据大数据语义智能分析平台,也有相关的python包pynlpir,其github的地址是:
这个包的使用是免费的,但是授权文件需要每个月更新一次。
首先要安装这个模块,安装方法是在cmd命令行下输入:
pip install pynlpir
安装后还可能需要更新一下授权
pynlpir update
- import pynlpir
- pynlpir.open()
- s = '欢迎科研人员、技术工程师、企事业单位与个人参与NLPIR平台的建设工作。'
- segs = pynlpir.segment(s)
- for seg in segs:
- print(seg)
显示结果:
基本使用方法
主要是采用os模块批量读取当前目录下的txt文件,然后分别按段落读取、分词、标注。词与标注信息之前中【_】来连接,两个词之间用【|】,段落之间加入换行符号,然后写入到【seg_】开头的txt文件里。这里,我们采用的是英文的标注信息,每个文件标注完成后会生成新的文件,最终代码如下:
- import pynlpir
- import os
-
- # 初始化分词库
- pynlpir.open ()
-
- # 进行分词操作
- txts = [file for file in os.listdir(".") if file.endswith(".txt")]
-
- for txt in txts:
- with open(txt,"r",encoding="utf-8") as f:
- lines = [line.strip() for line in f.readlines()]
- for line in lines:
- segments = pynlpir.segment (line, pos_tagging=True,pos_english=True)
- with open("segged_"+os.path.basename(txt),"a+",encoding="utf-8") as fi:
- for segment in segments:
- try:
- fi.write(str(segment[0])+"_"+str(segment[1])+"|")
- except Exception as exc:
- print(exc,segment)
- fi.write("\n")
-
- # 关闭分词库
- pynlpir.close ()
经过分词和标注后的文件截图展示如下,可以看到很好地保留了段落的信息,这为后面进行词性统计也做好了准备。后期,可以根据nlpir的标注集,对于所有文本中的词性进行统计分析。