当前位置: 首页 > news >正文

藏文词云生成器学习实践

🎯 功能目标:

输入一段藏文文本,生成一个美观的藏文字云图。词语出现频率越高,在图中显示得越大。


🔍 技术原理简介

  1. 词云(Word Cloud)
    将文本中的词根据出现频率可视化,频率越高的词,字体越大,常用于文本分析、舆情可视化。

  2. 藏文处理难点

    • 藏文没有空格隔词,需分词
    • Python的 wordcloud 默认不支持藏文,要用适配的字体和适当预处理。
  3. 关键技术

    • 使用 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")

🎉 恭喜你!你已经完成了一个藏文词云生成器学习项目。

相关文章:

  • 2000-2020年全国各地级市资本存量测算数据(以2000年为基期)(含原始数据+计算过程+结果)
  • 数字智慧方案5875丨智慧交通枢纽综合解决方案(43页PPT)(文末有下载方式)
  • ValueError: expected sequence of length 8 at dim 2 (got 0)
  • 历史数据分析——运输服务
  • B站Michale_ee——ESP32_IDF SDK——FreeRTOS_6 任务通知同步、任务通知值
  • Qt QGraphicsScene 的用法
  • 分享国产AI工作流集成数据库完成业务处理
  • 常见工业汽车行业通讯接口一览表
  • 珠江桥牌闪耀第137届广交会,展现中国味道与创新活力
  • 【Redis】Hash哈希
  • YOLO旋转目标检测之ONNX模型推理
  • 基于SpringBoot+Vue实现的电影推荐平台功能一
  • 通过组策略使能长路径
  • re题(52)BUUCTF-[FlareOn5]Minesweeper Championship Registration
  • 数据结构学习笔记
  • 【Linux】PetaLinux开发
  • Python虚假新闻检测识别
  • 用定时器做微妙延时注意事项
  • 第N8周:使用Word2vec实现文本分类
  • cPanel 的 Let’s Encrypt™ 插件
  • 中国海警局新闻发言人就日民用飞机侵闯我钓鱼岛领空发表谈话
  • 韩国代总统、国务总理韩德洙宣布辞职,将择期宣布参选总统
  • 大学2025丨对话深大人工智能学院负责人李坚强:产学研生态比“造天才”更重要
  • 美乌签署协议建立美乌重建投资基金
  • 万达电影去年净利润亏损约9.4亿元,计划未来三年内新增25块IMAX银幕
  • 结婚这件事,年轻人到底怎么想的?