fasttext-zh-vectors 项目介绍
项目背景
fasttext-zh-vectors 是一个用于中文语料的文本表示与文本分类的开源项目。fastText 是一个轻量级的库,适用于在标准通用硬件上进行文本学习。其模型小巧,可以压缩到适合移动设备的大小。这一项目在 fastText 论文中首次提出,项目的官方主页可以在这里找到。
模型描述
fastText 旨在提高单词表示和句子分类的学习效率, 其设计目标是让开发者、领域专家,以及学生都能便捷使用。它专注于文本分类和单词表示,快速的模型迭代和优化无需依赖专业硬件。用户可以在多核CPU上,在几分钟内完成十亿词级别的模型训练。
项目提供了基于维基百科等语料,涵盖157种语言的预训练模型。fastText 可在命令行使用,也可以链接到C++应用程序中,或导入作为库文件使用,可以满足从实验原型到实际生产的广泛场景需求。
预期应用与局限
fasttext-zh-vectors 提供的预训练词向量可以用于文本分类或语言识别。相关教程与资源可以在其官方网站上找到 教程 和 资源。
使用方法
以下是如何加载和使用预训练模型的示例:
import fasttext
from huggingface_hub import hf_hub_download
model_path = hf_hub_download(repo_id="facebook/fasttext-zh-vectors", filename="model.bin")
model = fasttext.load_model(model_path)
print(model.words)
通过fasttext库的功能,可以方便地获取单词的最近邻,如下所示:
model.get_nearest_neighbors("bread", k=5)
fasttext 也能够检测文本的语言:
model.predict("Hello, world!")
局限性和偏见
虽然模型的训练数据相对中性,但模型预测可能存在偏差。fastText 使用余弦相似度测量词向量间相似性,余弦相似度值为1表示完全相同,0表示毫无相关,-1表示完全相反。
训练数据
项目的预训练词向量数据来源于 Common Crawl 和 Wikipedia。模型采用了尺寸为300,字符n-gram长度为5,窗口大小为5的CBOW(基于位置的加权),10个负采样训练方式。项目还分发了法语、印地语和波兰语的单词类比数据集。
训练过程
分词
项目使用了不同语言的分词工具。对于中文使用 Stanford 分词器,日语使用 Mecab,越南语使用 UETsegmenter。其他使用拉丁、希腊字母的语言则使用 Europarl 预处理工具的分词器。更多训练细节可以在文章 157种语言的单词向量学习 中找到。
许可协议
项目中的词向量分发受 创作共用协议-署名-相同方式共享 3.0 许可协议的约束。
评价数据集
项目提供了论文中描述的类比评价数据集,分别为 法语,印地语,和 波兰语。
引用信息
使用该模型进行单词表示学习或文本分类时,请引用相关的论文,如 Enriching Word Vectors with Subword Information 和 Bag of Tricks for Efficient Text Classification等。更多引文格式信息可从项目资源中获取。