FastText 提供了预训练的文本分类模型,它是在大规模文本数据上进行训练得到的,并且通常具有良好的泛化能力。这些预训练的分类模型可用于快速搭建文本分类系统,无需从头开始训练模型,省去了大量数据收集和训练模型的时间。预训练的分类模型,有两种格式:
- .bin 格式:这是 FastText 默认的二进制模型格式,包含了词向量和模型参数。它提供了高效的加载和查询速度。
- .ftz 格式:这是 FastText 为移动和嵌入式设备优化的模型格式。它经过了量化和压缩,以减少模型的大小和内存占用,同时保持较高的分类和词向量查询性能。
1. 文本分类模型
https://fasttext.cc/docs/en/supervised-models.html
import fasttext def test(): model = fasttext.load_model('ag_news.ftz') print(model.labels) print(model.predict('Dollar Drops Broadly on Record Trade Gap (Reuters)')) if __name__ == '__main__': test()
程序输出结果:
['__label__4', '__label__2', '__label__3', '__label__1'] (('__label__3',), array([1.00001001]))
2. 语言识别模型
FastText 提供两种语言识别模型,可以识别 176 种语言。这些模型是基于 Wikipedia、Tatoeba 和 SETimes 的数据训练。
https://fasttext.cc/docs/en/language-identification.html
import fasttext def test(): model = fasttext.load_model('lid.176.ftz') print(model.predict('I am a teacher!')) print(model.predict('我是一个老师!')) print(model.predict('Я учитель!')) print(model.predict('私は先生です!')) if __name__ == '__main__': test()
程序输出结果:
(('__label__en',), array([0.96349567])) (('__label__zh',), array([0.91488588])) (('__label__ru',), array([0.99432421])) (('__label__ja',), array([0.99975049]))