HanziNLP 软件包介绍-中文自然语言处理,建模和可视化

HanziNLP 是一个专为中文文本分析、建模和可视化设计的NLP包,提供了字符和词汇计数、字体管理、文本分段、词嵌入、主题建模和情感分析等功能。它支持交互式仪表板,方便用户探索和理解模型效果。用户可以使用预训练的模型如Word2Vec和BERT进行文本表示和情感分析。
摘要由CSDN通过智能技术生成

HanziNLP

一个用户友好易于使用的自然语言处理包,专为中文文本分析、建模和可视化而设计。HanziNLP中的所有功能都支持中文文本,并且非常适用于中文文本分析!如果需要详细信息,欢迎阅读软件包Github主页: https://github.com/samzshi0529/HanziNLP

目录

开发者备注:

对于任何使用HanziNLP的人,开发者向您表示衷心的感谢!🎉🎉🎉

关于我更多的信息和任何改进的建议,您可以通过以下方式找到我:

1. 快速开始

欢迎来到 HanziNLP 🌟 - 一个即用的中文文本自然语言处理(NLP)工具包,同时也支持英文。它旨在成为即便是Python新手也能友好使用的简化工具。

此外,HanziNLP还提供了一个交互式仪表板,用于动态洞察NLP功能,为各种NLP功能提供动态概览和洞察。

1.1 相关链接

  • GitHub仓库:在GitHub上探索我的代码并做出贡献。
  • PyPI页面:在PyPI上找到我,并探索更多关于如何将HanziNLP集成到您的项目中的信息。

1.2 安装与使用

使用HanziNLP只需执行一个简单的命令即可开始!

pip install HanziNLP

1.3 交互式仪表板

dashboard_video

通过一行简单的代码使用 dashboard()!
from HanziNLP import dashboard
dashboard()
  • 函数dashboard()
  • 目的:展示一个用户友好的仪表板,便于进行交互式文本分析和情感分类,使用户能够观察各种预训练模型和分词参数对处理文本的影响,从而选择最适合他们用例的模型和参数。
  • 参数:不需要参数。
  • 返回:无返回值;该函数输出一个仪表板界面。
概述

dashboard 函数引入了一个用户交互式的仪表板,旨在执行文本分析和情感分类,为用户提供亲身体验,以探索和理解不同预训练模型和分词参数对文本处理的影响。

  • 交互式文本分析:用户可以输入文本,观察各种文本统计信息,例如单词计数、字符计数和句子计数,并可视化词频和情感分类结果。
  • 模型探索:用户可以选择从 Hugging Face 指定一个分类模型。如果留空,则使用默认模型 ‘uer/roberta-base-finetuned-chinanews-chinese’。有关此模型的更多信息,请访问 Hugging Face
  • 分词参数调整:用户可以调整分词设置,例如 ‘Jieba Mode’ 参数和停用词选择,并观察生成的词语及其各自的频率。
  • 可视化:仪表板提供了文本统计、词频和情感分类的视觉洞察,帮助用户理解文本分析结果。
  • 情感分类:仪表板使用指定的(或默认的)模型执行情感分类,并显示情感标签的概率分布。
亮点

dashboard 函数强调用户参与探索。它允许用户与各种预训练模型和分词参数进行交互式交流,观察它们对文本分析和情感分类的影响。这种交互式探索使用户能够做出明智的决策,选择最符合他们特定用例的模型和参数,从而增强他们的文本分析和自然语言处理(NLP)任务。

2. 字符和词汇计数

🚀 这个基本功能计算文本中的字符和单词数量,省去了您自己识别和分割中文单词的手动努力。

char_freq 和 word_freq 函数

  • char_freq(text, text_only=True): 函数用于计算给定文本中每个字符的频率;如果 text_only == True,只会计算中文和英文字符。如果 text_only == False,将计算所有字符。默认为 True。
  • word_freq(text): 函数用于计算给定文本中每个单词的频率。

示例

from HanziNLP import char_freq, word_freq

text = "你好, 世界!"
char_count = char_freq(text)
word_count = word_freq(text)

print(f"字符计数: {
     char_count}")
print(f"单词计数: {
     word_count}")

输出

字符计数: 4
单词计数: 2

3. 字体管理

在Python环境中可视化中文文本时,字体是一个经常需要手动导入的重要资源。HanziNLP内置了字体列表,可立即使用。您可以使用list_fonts()查看和过滤所有可用的字体,并使用get_font()检索用于可视化目的的特定字体路径。所有内置的字体都来自Google字体,它们根据开放字体许可证获得许可,这意味着您可以在产品和项目中使用它们——无论是印刷品还是数字品,无论是商业的还是其他的。

list_fonts 和 get_font 函数

  • list_fonts(): 列出所有可用的字体。
  • get_font(font_name, show=True): 检索用于可视化目的的特定字体。如果 show == True,将显示字体的样本可视化。如果 show == False,将不显示任何内容。默认设置为True。
list_fonts() 示例
from HanziNLP import list_fonts

# 列出所有可用的字体
list_fonts()
输出

在这里插入图片描述

get_font() 示例
from HanziNLP import get_font

font_path = get_font('ZCOOLXiaoWei-Regular') #在 list_fonts() 中输入您喜欢的 font_name
输出

在这里插入图片描述

词云示例

您可以使用定义的中文 font_path 制作各种图表。下面提供了一个词云示例:

from PIL import Image
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt

# 由GPT-4生成的样本文本
text = '在明媚的春天里,小花猫咪悠闲地躺在窗台上,享受着温暖的阳光。她的眼睛闪烁着好奇的光芒,时不时地观察着窗外忙碌的小鸟和蝴蝶。小猫的尾巴轻轻摇动,表达着她内心的舒适和满足。在她的身边,一盆盛开的紫罗兰散发着淡淡的香气,给这个宁静的午后增添了几分诗意。小花猫咪偶尔会闭上她的眼睛,沉浸在这美好的时光中,仿佛整个世界都变得温馨和谐。窗外的樱花树在微风中轻轻摇曳,洒下一片片粉色的花瓣,如梦如幻。在这样的一个悠托的春日里,一切都显得如此美好和平静。'

text = " ".join(text)

# 生成词云
wordcloud = WordCloud(font_path= font_path, width=800, height=800,
                      background_color='white',
                      min_font_size=10).generate(text)

# 显示词云
plt.figure(figsize=(5, 5), facecolor=None)
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.title("样本词云")

plt.show()
输出

在这里插入图片描述

4. 文本分段

文本分段是任何NLP任务中的一个关键步骤。一般的步骤是分段句子,去除停用词,并分别对每个句子进行分词。下面介绍了详细的说明。

4.1 停用词管理

为了在中文文本中去除停用词,该包内置了常见的停用词列表,包括以下几个:(部分停用词来自stopwords

停用词列表 文件名
中文停用词表 cn_stopwords.txt
哈工大停用词表 hit_stopwords.txt
百度停用词表 baidu_stopwords.txt
四川大学机器智能实验室停用词表 scu_stopwords.txt
常用停用词表 common_stopwords.txt
list_stopwords 和 load_stopwords 函数
  • list_stopwords(): 列出所有可用的停用词。
  • load_stopwords(file_name): 从指定的文件加载停用词到一个词列表。然后,您可以查看并在后续使用中使用这些停用词。
list_stopwords 示例
from HanziNLP import list_stopwords

list_stopwords()
输出

在这里插入图片描述

load_stopwords 示例
from HanziNLP import load_stopwords

stopwords = load_stopwords('common_stopwords.txt') # 在这里输入txt文件名
输出
{
   '然而',
 'whoever',
 '只限',
 '的确',
 '要不然',
 'each',
 '仍旧',
 '这么点儿',
 '冒',
 '如果',
 '比及',<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值