如何利用pynlpir进行中文分词并保留段落信息

一、引言

nlpir是由张华平博士开发的中文自然处理工具,可以对中文文本进行分词、聚类分析等,它既有在线的中文数据大数据语义智能分析平台,也有相关的python包pynlpir,其github的地址是:

Pynlpir在Github上的地址

这个包的使用是免费的,但是授权文件需要每个月更新一次。

二、利用pynlpir进行分词

1.安装模块

首先要安装这个模块,安装方法是在cmd命令行下输入:

python 复制代码
pip install pynlpir

2. 更新授权

安装后还可能需要更新一下授权

python 复制代码
pynlpir update

3. 开始批量分词

1)基础分词

python 复制代码
import pynlpir
pynlpir.open()
s = '欢迎科研人员、技术工程师、企事业单位与个人参与NLPIR平台的建设工作。'
segs = pynlpir.segment(s)
for seg in segs:
    print(seg)

显示结果:

基本使用方法

2)批量分词

主要是采用os模块批量读取当前目录下的txt文件,然后分别按段落读取、分词、标注。词与标注信息之前中【】来连接,两个词之间用【|】,段落之间加入换行符号,然后写入到【seg】开头的txt文件里。这里,我们采用的是英文的标注信息,每个文件标注完成后会生成新的文件,最终代码如下:

python 复制代码
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 ()

4. 分词效果展示

经过分词和标注后的文件截图展示如下,可以看到很好地保留了段落的信息,这为后面进行词性统计也做好了准备。后期,可以根据nlpir的标注集,对于所有文本中的词性进行统计分析。

三、学后反思

  1. pynlpir这个包分词速度还是很快的,但是使用起来有一定的难度。更新license时可以去github上下载,或者本地使用代理下载。
  2. 导入自定义字典时,注意字典编码要转化为ANSI编码,否则可能会报错。
  3. 批量分词时,注意文件的路径最好不要有中文,否则也可能无法顺利分词。
  4. 如果是在Linux上更新Lincense的话,为了保险起见,可以先去github上下载,再进行上传,以确保万无一失。
相关推荐
陈天伟教授10 小时前
人工智能应用- 语言理解:04.大语言模型
人工智能·语言模型·自然语言处理
renhongxia111 小时前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
觉醒大王17 小时前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
陈天伟教授18 小时前
人工智能应用- 语言理解:05.大语言模型
人工智能·语言模型·自然语言处理
晚霞的不甘19 小时前
守护智能边界:CANN 的 AI 安全机制深度解析
人工智能·安全·语言模型·自然语言处理·前端框架
imbackneverdie20 小时前
2026国自然申请书模板大改版,科研人员如何应对?
人工智能·自然语言处理·aigc·科研·学术·国自然·国家自然科学基金
觉醒大王21 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
玄同7651 天前
Python 后端三剑客:FastAPI/Flask/Django 对比与 LLM 开发选型指南
人工智能·python·机器学习·自然语言处理·django·flask·fastapi
盼小辉丶1 天前
Transformer实战——Transformer跨语言文本分类
深度学习·语言模型·自然语言处理·transformer
渡我白衣1 天前
信而有征——模型评估、验证与可信部署的完整体系
人工智能·深度学习·神经网络·目标检测·机器学习·计算机视觉·自然语言处理