中文自然语言处理库(SnowNLP)的简单使用

snownlp 是一个简单易用的 Python 库,专为处理中文文本而设计。它基于自然语言处理技术,提供了多种功能,包括分词、词性标注、情感分析、文本转换(简繁转换)等。这个库的核心优势在于对中文文本的处理能力,尤其是情感分析功能。

主要功能

  1. 分词(Tokenization):将长文本划分为单独的词汇。

  2. 词性标注(Part-of-Speech Tagging):标注文本中每个词汇的词性,如名词、动词等。

  3. 情感分析(Sentiment Analysis):判断文本的情感倾向是正面还是负面。

  4. 文本转换(Text Conversion):实现简体和繁体中文之间的转换。

  5. 关键词提取(Keywords Extraction):提取文本中的关键词。

  6. 摘要生成(Summarization):从文本中提取关键句生成摘要。

  7. 短语提取(Phrase Extraction):从文本中提取短语。

安装

snownlp 可以通过 pip 安装:

python 复制代码
pip install snownlp

示例

以下是使用snownlp进行各种处理的一些基本示例:

分词
python 复制代码
from snownlp import SnowNLP

text = """
中新社北京2023年12月29日电(记者 刘育英)中国工信部12月29日发布的《工业和信息化部等八部门关于加快传统制造业转型升级的指导意见》提出,到2027年,中国传统制造业在全球产业分工中的地位和竞争力进一步巩固增强。传统制造业是中国制造业的主体,石化化工、钢铁、有色、建材、机械、汽车、轻工、纺织等传统制造业增加值占中国全部制造业的比重近80%。但中国传统制造业"大而不强""全而不精"问题仍然突出,低端供给过剩和高端供给不足并存,创新能力不强,产业基础不牢,资源约束趋紧,要素成本上升,巩固提升竞争优势面临较大挑战。指导意见提出,到2027年,传统制造业高端化、智能化、绿色化、融合化发展水平明显提升,有效支撑制造业比重保持基本稳定,在全球产业分工中的地位和竞争力进一步巩固增强。工业企业数字化研发设计工具普及率、关键工序数控化率分别超过90%、70%,工业能耗强度和二氧化碳排放强度持续下降,万元人民币工业增加值用水量较2023年下降13%左右,大宗工业固体废物综合利用率超过57%。
"""
#分词
s = SnowNLP(text)
print(s.words)
词性标注
python 复制代码
tags = [word.tag for word in SnowNLP(text).tags]
print(tags)
情感分析
python 复制代码
#情感分析
sentiment = SnowNLP(text).sentiments
print(sentiment)

s.sentimentsSnowNLP库中用于情感分析的功能。这个情感分数是一个介于0到1之间的浮点数,用于表示文本的情感倾向。分数越接近1,表示文本的情感倾向越正面;分数越接近0,表示文本的情感倾向越负面。

文本转换(简繁转换)
python 复制代码
#简繁转化
traditional = SnowNLP(text).han
print(traditional)

还是简体,这个功能不一定有效。。。

关键词提取
python 复制代码
#提取关键词
keywords = SnowNLP(text).keywords(limit=5)
print(keywords)
摘要生成
python 复制代码
#总结摘要
summary = SnowNLP(text).summary(3)# 提取3个句子作为摘要
print(summary)

提取关键词和生成摘要的效果还不错。

依存句法分析

分析文本中词语之间的依存关系。

python 复制代码
s = SnowNLP(text)
dependency = s.tags  # 获取依存关系
for item in dependency:
    print(item)

就是词性标注。没啥区别。

文本分类

对文本进行分类(需要自行训练模型)。

python 复制代码
#文本分类:对文本进行分类(需要自行训练模型)。

# 首先需要有一些标注好的数据进行训练
# 例如:snownlp.SnowNLP([[words, tags], ...])
# 然后使用save方法保存训练好的模型

# 首先需要有一些标注好的数据进行训练

转换成拼音

将中文文本转换成拼音。

python 复制代码
s = SnowNLP(text)
pinyin = s.pinyin
print(pinyin)

这个功能还挺实用的。

词频统计

对文本中的词频进行统计。

python 复制代码
s = SnowNLP(text)
words_count = s.tf
print(words_count)

这个...不是词频是字频吧


注意事项

  • snownlp 对于情感分析提供了预训练模型,但这个模型可能不适用于所有类型的文本。对于特定领域或特定文体的文本,可能需要额外的训练来优化结果。
  • 库的准确性在很大程度上依赖于数据质量和数据量,对于复杂或特殊的文本内容,可能需要进一步的自定义处理或训练。

snownlp 是处理中文文本的强大工具,但它的功能和准确性可能会受限于所使用的数据和特定应用场景。


虽然代码是gpt写的,但是我都运行了的,是可以跑的,这篇算是这个库的简单使用。其中的一些功能,词频统计,关键词提取,情感分析,生成摘要,转化拼音。还是很实用的功能。以后会有场景用得上的。


创作不易,看官觉得写得还不错的话点个关注和赞吧,本人会持续更新python数据分析领域的代码文章~(需要定制代码可私信)

相关推荐
lisw054 分钟前
原子级制造的现状与未来!
人工智能·机器学习·制造
东南门吹雪12 分钟前
AI芯片-LLM算子-CPU-Cache
人工智能·cache·昇腾·npu·一致性协议
maray16 分钟前
Chroma 的设计哲学
数据库·人工智能
IT_陈寒22 分钟前
Vite 3.0 重磅升级:5个你必须掌握的优化技巧和实战应用
前端·人工智能·后端
Lethehong36 分钟前
简历优化大师:基于React与AI技术的智能简历优化系统开发实践
前端·人工智能·react.js·kimi k2·蓝耘元生代·蓝耘maas
大千AI助手38 分钟前
Box-Cox变换:机器学习中的正态分布“整形师“
人工智能·机器学习·假设检验·正态分布·大千ai助手·box-cox变换·数据变换
涤生8431 小时前
图像处理中的投影变换(单应性变换)
图像处理·人工智能·计算机视觉
shayudiandian1 小时前
YOLOv8目标检测项目实战(从训练到部署)
人工智能·yolo·目标检测
陈天伟教授1 小时前
基于学习的人工智能(4)机器学习基本框架
人工智能·学习·机器学习
studytosky1 小时前
深度学习理论与实战:MNIST 手写数字分类实战
人工智能·pytorch·python·深度学习·机器学习·分类·matplotlib