fastText是一个用于高效学习文本表示和分类的库。由Meta AI于2016年开源,fastText整合了过去几十年来在自然语言处理和机器学习中有影响力的关键思想:使用词袋和n-gram词袋表示句子,使用子词信息,利用隐藏表示在类之间共享信息。
为了加快计算速度,fastText使用了分层softmax,利用了类别分布不平衡的特点。所有这些技术为用户提供了可扩展的文本表示和分类解决方案。
Hugging Face现在托管了所有157种语言的词向量和最新的语言识别模型的官方镜像。这意味着使用Hugging Face,您可以轻松地下载并使用这些模型。
查找模型
157种语言的词向量和语言识别模型可以在Meta AI组织中找到。例如,您可以在这里找到英语词向量的模型页面,以及这里找到语言识别模型。
小部件
此集成包括对文本分类和特征提取小部件的支持。在这里尝试语言识别小部件和特征提取小部件!
如何使用
以下是如何加载和使用预训练的向量:
>>> import fasttext
>>> from huggingface_hub import hf_hub_download
>>> model_path = hf_hub_download(repo_id="facebook/fasttext-en-vectors", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.words
['the', 'of', 'and', 'to', 'in', 'a', 'that', 'is', ...]
>>> len(model.words)
145940
>>> model['bread']
array([ 4.89417791e-01, 1.60882145e-01, -2.25947708e-01, -2.94273376e-01,
-1.04577184e-01, 1.17962055e-01, 1.34821936e-01, -2.41778508e-01, ...])
以下是如何使用该模型查询英语词向量的最近邻:
>>> import fasttext
>>> from huggingface_hub import hf_hub_download
>>> model_path = hf_hub_download(repo_id="facebook/fasttext-en-nearest-neighbors", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.get_nearest_neighbors("bread", k=5)
[(0.5641006231307983, 'butter'),
(0.48875734210014343, 'loaf'),
(0.4491206705570221, 'eat'),
(0.42444291710853577, 'food'),
(0.4229326844215393, 'cheese')]
以下是如何使用该模型检测给定文本的语言:
>>> import fasttext
>>> from huggingface_hub import hf_hub_download
>>> model_path = hf_hub_download(repo_id="facebook/fasttext-language-identification", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.predict("Hello, world!")
(('__label__eng_Latn',), array([0.81148803]))
>>> model.predict("Hello, world!", k=5)
(('__label__eng_Latn', '__label__vie_Latn', '__label__nld_Latn', '__label__pol_Latn', '__label__deu_Latn'),
array([0.61224753, 0.21323682, 0.09696738, 0.01359863, 0.01319415]))
您是否想将您的库集成到Hub中?
这种集成是由于我们与Meta AI和huggingface_hub
库的合作而可能的,该库使我们所有的小部件和我们支持的所有库的API都能够实现。如果您想将您的库集成到Hub中,我们有一个指南供您参考!