HanziNLP
一个用户友好且易于使用的自然语言处理包,专为中文文本分析、建模和可视化而设计。HanziNLP中的所有功能都支持中文文本,并且非常适用于中文文本分析!如果需要详细信息,欢迎阅读软件包Github主页: https://github.com/samzshi0529/HanziNLP
目录
开发者备注:
对于任何使用HanziNLP的人,开发者向您表示衷心的感谢!🎉🎉🎉
关于我更多的信息和任何改进的建议,您可以通过以下方式找到我:
- 个人邮箱:samzshi@sina.com
- 个人网站:https://www.samzshi.com/
- 领英:www.linkedin.com/in/zhanshisamuel
1. 快速开始
欢迎来到 HanziNLP 🌟 - 一个即用的中文文本自然语言处理(NLP)工具包,同时也支持英文。它旨在成为即便是Python新手也能友好使用的简化工具。
此外,HanziNLP还提供了一个交互式仪表板,用于动态洞察NLP功能,为各种NLP功能提供动态概览和洞察。
1.1 相关链接
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',
'仍旧',
'这么点儿',
'冒',
'如果',
'比及',<