藏文词云生成器学习实践
🎯 功能目标:
输入一段藏文文本,生成一个美观的藏文字云图。词语出现频率越高,在图中显示得越大。
🔍 技术原理简介
-
词云(Word Cloud):
将文本中的词根据出现频率可视化,频率越高的词,字体越大,常用于文本分析、舆情可视化。 -
藏文处理难点:
- 藏文没有空格隔词,需分词。
- Python的
wordcloud
默认不支持藏文,要用适配的字体和适当预处理。
-
关键技术:
-
使用 Python 库:
wordcloud
:生成词云图。matplotlib
:展示词云图。pybo
:藏文分词库。
-
🛠️ 一、安装与环境准备
1️⃣ 安装 Python(略,见前一项目)
2️⃣ 安装所需库
打开命令行终端,运行以下命令:
pip install wordcloud matplotlib pybo
如网络慢,可使用国内源:
pip install wordcloud matplotlib pybo -i https://pypi.tuna.tsinghua.edu.cn/simple
📁 二、准备藏文文本和字体文件
1️⃣ 准备藏文文本
你可以复制一些藏文段落,保存为 tibetan_text.txt
。
2️⃣ 准备藏文字体(非常重要)
你需要一个支持藏文字体的TTF文件,例如:
- Jomolhari.ttf(免费开源藏文字体)
下载后将字体文件保存到项目文件夹内,如:Jomolhari.ttf
📄 三、编写Python程序生成词云
新建项目文件 tibetan_wordcloud.py
:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from pybo import WordTokenizerimport matplotlib.pyplot as plt
from matplotlib import rcParams# 步骤1:读取藏文文本
with open("tibetan_text.txt", "r", encoding="utf-8") as f:tibetan_text = f.read()# 步骤2:藏文分词
tokenizer = WordTokenizer()
tokens = tokenizer.tokenize(tibetan_text)# 过滤掉非词类,只保留名词、动词等
words = [token.text for token in tokens if token.pos not in ['punct', 'sym']]# 步骤3:拼接为分词后的字符串(空格分隔)
segmented_text = " ".join(words)# 步骤4:生成词云
wordcloud = WordCloud(font_path="Jomolhari-Regular.ttf", # 指定藏文字体路径width=800,height=400,background_color="white"
).generate(segmented_text)# 步骤5:显示词云
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")# 设置支持中文的字体,比如 SimHei(黑体)或 Microsoft YaHei(微软雅黑)
rcParams['font.sans-serif'] = ['SimHei'] # 或 ['Microsoft YaHei']
rcParams['axes.unicode_minus'] = False # 正常显示负号plt.title("藏文词云图", fontsize=20)
plt.show()
▶️ 四、运行程序并生成词云图
在命令行中进入项目文件夹后运行:
python tibetan_wordcloud.py
结果将会弹出一个窗口,展示美观的藏文词云图:
- 高频词字体较大
- 随机排布位置和颜色
- 所有藏文词均清晰可见
输出示例:
🧠 原理讲解小课堂
🔹 1. 藏文分词技术
藏文不像英文、中文那样有清晰的空格或标点来分割单词,因此:
-
使用藏文分词器
pybo
:- 它基于藏文语言学规则和语料库,能智能切分藏文句子。
- 示例:
མི་དམངས་གཙོ་བོ
→['མི་དམངས', 'གཙོ་བོ']
🔹 2. 词云生成技术
WordCloud.generate()
会统计每个词的频率。- 根据频率调整每个词在画布上的字体大小。
- 使用字体文件是关键,确保能正确显示藏文。
🔁 常见问题与解决
问题 | 原因 | 解决方法 |
---|---|---|
显示乱码 | 未设置藏文字体 | 指定支持藏文的 .ttf 字体 |
空白图像 | 分词失败或文本为空 | 检查 pybo 分词和原始文本内容 |
pybo 安装失败 | 网络或依赖问题 | 使用国内源 -i 安装或提前装 pybo-data |
📌 拓展练习
- 替换不同藏文文章试试效果。
- 改变词云背景颜色、字体、形状(如使用
mask=
参数做成心形、圆形)。 - 保存词云图片为文件:
wordcloud.to_file("tibetan_wordcloud.png")
🎉 恭喜你!你已经完成了一个藏文词云生成器学习项目。