python库(17):pkuseg库实现文本分词
创始人
2024-11-13 20:10:18
0

1 pkuseg简介

PKUSEG,全称“北京大学语言计算与机器学习研究组开发的分词工具”,它就像一把锋利的瑞士军刀,帮助我们轻松切割文本。

在Python的文本处理领域,有很多分词工具,比如jieba、SnowNLP等。但是,PKUSEG以其高精度和易用性脱颖而出。它不仅能够进行基本的分词,还能识别词性,甚至能够处理一些复杂的语言现象,比如新词识别和歧义消解。

2 pkuseg安装

命令如下:

pip install pkuseg -i https://pypi.tuna.tsinghua.edu.cn/simple

3 代码示例

3.1 基本分词

假设我们有一段文本,我们想要把它分成一个个独立的词。下面是如何使用PKUSEG进行基本分词的代码:

import pkuseg  #初始化分词器 seg = pkuseg.pkuseg()  # 待分词文本 text = "今天天气真好,适合出去走走"  # 进行分词 words = seg.cut(text)  print(words)

结果如下:

3.2 词性标注

PKUSEG不仅能分词,还能给每个词标注词性。这对于文本分析来说非常有用。下面是一个词性标注的示例:

import pkuseg  #初始化分词器 seg = pkuseg.pkuseg(postag=True)  # 待分词文本 text = "今天天气真好,适合出去走走"  # 进行分词 words = seg.cut(text)  print(words)

结果如下:

注意:每个字母的意义如下

符号含义符号含义
n名词t时间词
s处所词f方位词
m数词q量词
b区别词r代词
v动词a形容词
z状态词副词
p介词c连词
u    助词    y    语气词
e    叹词    o    拟声词
i    成语   l    习惯用语
j    简称    h    前接成分
k    后接成分    g    语素
x    非语素字    w    标点符号
nr    人名    ns    地名
nt   机构名称    nx    外文字符
nz    其它专名    vd    前接成分
vn    名动词    vx    形式动词
ad   副形词    an    名形词

3.3 细领域分词

import pkuseg   seg = pkuseg.pkuseg(model_name='medicine')  # 程序会自动下载所对应的细领域模型 text = seg.cut('我爱北京天安门')              # 进行分词 print(text)

3.3 文本情感分析

情感分析是判断文本表达的是正面情绪还是负面情绪。我们首先需要分词,然后根据词性过滤掉无用的词,最后统计正面和负面词汇的数量。

import pkuseg  #初始化分词器 seg = pkuseg.pkuseg(postag=True) # 定义正面和负面词汇列表 positive_words = ['好', '好用', '棒', '喜欢'] negative_words = ['差', '糟糕', '讨厌']  # 待分析文本 text = "这个产品真的很好用,但是价格有点高。"  # 分词并标注词性 words_with_pos = seg.cut(text) # 统计正面和负面词汇 positive_count = sum(1 for word, pos in words_with_pos if word in positive_words) negative_count = sum(1 for word, pos in words_with_pos if word in negative_words)  print(f"正面情绪词汇数量:{positive_count}") print(f"负面情绪词汇数量:{negative_count}")

结果如下:

4 总结

PKUSEG的功能远不止于此,它还可以用于命名实体识别、关键词提取等高级文本分析任务。

相关内容

热门资讯

UNIX 域协议 1. UNIX域协议利用socket 编程接口实现本地进程间通信 UNIX域协议套接字:...
ardupilot开发 ---... 安能以血补天哉0. 前言1. 实践1.1 用户手册1.2 开发文档1.3 网络RTK的注入20240...
SpringMVC源码解析(二... SpringMVC源码系列文章SpringMVC源码解析(一):web容器启动流程Sp...
ChatGPT:impleme... ChatGPT:implements Serializable 有什么实际作用...
从零开始学习网络安全渗透测试之... HTTP/HTTPS抓包技术是一种用于捕获和分析网络流量的方法,它可以帮助开发者、测试...
学习web前端三大件之HTML... HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这...
[Spring] Spring... 🌸个人主页:https://blog.csdn.net/2301_80050796?...
node.js卸载并重新安装(... 卸载node.js 重新安装nodejs一、卸载1、首先进入控制面板卸载程序2、卸载后 到文件夹中进...
两年经验前端带你重学前端框架必... 前端框架必会的(ajax+node.js+webpack+gi...
算法工程师第二十七天(56. ... 参考文献 代码随想录一、合并区间        以数组 intervals 表示若干个区间的集合&#...