python——Fasttext新手学习笔记。

发布时间:2026/11/7 14:43:23

python——Fasttext新手学习笔记。 Fasttext 如他的名字一样最大的特点fast。[https://github.com/facebookresearch/fastText/tree/master/python#requirements]FastText是一个高效学习单词表示和句子分类的库。在本文中我们将介绍如何在Python中使用FastText。目录需求/要求指的是环境要求安装使用概述1、词表示模型2、文本分类模型3、重要提示数据预处理和编码约定习惯4、更多示例API 应用程序接口1、无监督训练 参数2、有监督训练 参数要求FastText基于现代Mac OS和Linux发行版因为它使用C 11个特性它需要一个良好支持C11的编译器。你需要python版本为2.7或3.4NumpyScipy和pybind11调用C的python扩展模块的工具安装为了安装最新版你可以这么做pip install fasttext实测用这个虽然简单但是容易出问题可以下载三方或者使用gensim.models。使用概述1、词表示模型训练词向量模型为了学习出词向量如本文所述我们可以使用 fasttest.train_unsupervised() 这个函数如下importfasttext#Skipgram Modelmodelfasttext.train_unsupervised(data.txt,modelskipgram)#Cbow Modelmodelfasttext.train_unsupervised(data.txt,modelcbow)其实有个问题当你用很小的数据集训练时候记得调整一个参数 mincount默认是5不然会出不来词表。中文的分词之后用空格隔开也同样可以放入训练。其中data.txt是使用UTF-8编码的训练文件。返回的模型对象代表学习到的模型。你可以用它去检索信息。print(model.words)# 得到字典词表print(model[king])# 找到king对应的词向量这里想要说明一句 不知道是不是封装了的原因在我实现的过程中这种方式报错。取而代之的是以下这种方式print(model)# 存储位置print(model.get_words())# 词表print(model.get_word_vector(to))# 对应词向量你还可以保存和读取模型对象。保存save_modelmodel.save_model(model_filename.bin)读取取回load_modelmodelfasttext.load_model(model_filename.bin)2、文本分类模型其实无监督用来训练词向量有监督用来训练分类模型 评估标准 PRF1为了使用这里描述的方法训练文本分类器我们可以使用fasttext.train_supervised()函数如下所示importfasttext modelfasttext.train_supervised(data.train.txt)其中data.train.txt是一个文本文件每行包括一个训练句子和标签默认情况下我们假设标签是以__label__开头的字符串单词。一旦对模型进行训练我们就可以检索单词和标签列表。print(model.words)print(model.labels)#print(model.get_words())#print(model.get_labels()) 我的还是下面这个有显示为了通过计算精确率(Precision)和召回率(Recall)来评估模型我们使用test函数。defprint_result(N,p,r):print(N\tstr(N))print(P{}\t{:.3f}.format(1,p))print(R{}\t{:.3f}.format(1,r))print(*model.test(test.txt))# 迭代输出返回内容我们还可以预测特定文本的标签model.predict(which baking dish is best to bake a banana bread ?)默认情况下predict方法只返回一个标签可能性最大的那一个。你也可以通过指定参数k来实现对多个标签的预测。model.predict(which baking dish is best to bake a banana bread ?,k3)如果你想要的预测更多你可以通过字符串数组来实现。model.predict([which ...,I love yyh,...],k3)当然你也可以像单词表示用法那样将模型保存到文件中或从文件中加载模型。量化压缩模型文件当你想要保存一个有监督的模型文件时FastText可以通过牺牲一点点的性能来压缩他已获得一个更小的模型文件。#使用之前的训练模型调用model.quantize(inputdata.train.txt,retrainTrue)# 数据集太小会报错 #接下来展示结果和存储新模型print_result(*model.test(valid_data))model.save_model(model_filename.ftz)model_filename.ftz 比model_filename.bin 的大小 要小很多。3、重要提示数据预处理/编码规定通常正确预处理数据很重要。FastText采用UTF-8编码文本python2的所有文本必须为unicodepython3的所有文本必须为str。传递的文本江北pybind11编码为UTF-8在传递给Fasttext的C库之前。这意味着在构建模型时使用UTF-8编码文本很重要。在类unix系统上可以使用iconv转换文本。FastText将根据以下ASCII字符字节标记将文本拆分为多个部分特别的是他并不知道UTF-8的空白字符。我们建议用户将UTF-8空白/单词边界转换为以下适当的符号之一。1、空格 2、制表符tab 3、垂直制表符 4、回车 5、换页 6、null 字节4、更多示例为了更好地了解FastText模型请考虑主要的README文件特别是我们网站上的教程。你可以在doc文件夹中找到更多的python示例。与任何包一样你可以使用帮助函数。例如。importfasttexthelp(fasttext.FastTest)APItrain_unsupervised 参数 用来训练词向量模型input:训练文件路径model:无监督训练使用的模型 {cbow 和 skip-gram} 默认为skip-gramlr:学习率 默认为0.05dim: 词向量维度 默认为100ws:windows size 窗口大小 默认为5epoch: 默认训练五轮minCount: 最小词数 默认为5 当数据集略小要记得调整minCountLabel:0 因为是无监督。minn:最小char级别的3-gramsubwordmaxn:最大char级别的6-gram subwordneg:负例采样个数 默认为5wordNgrams:最大的词n-gram长度 默认为1loss:损失函数 {ns,hs,softmax,ova} 默认是ns 负采样 hs 是分层softmaxbucket: 桶数默认为2000000threadcpu线程数 默认为12lrUpdateRate学习率更新默认为100t负采样阈值 默认0.0001verbose2train_supervised 参数 用来训练分类模型没有model参数√input:训练文件路径lr:学习率 默认为0.1√dim: 词向量维度 默认为100ws:windows size 窗口大小 默认为5minCount: 最小词数 默认为1√minCountLabel:1√ 最小标签数minn:0√maxn:0√neg:负例采样个数 默认为5wordNgrams:最大的词n-gram长度 默认为1loss:损失函数 {ns,hs,softmax,ova} 默认是softmax√bucket: 桶数默认为2000000threadcpu线程数 默认为12lrUpdateRate学习率更新默认为100t负采样阈值 默认0.0001label:标签前缀 默认 _label_√verbose2 控制打印输出 2显示每个epoch 1显示最后一个epochpretrainedVectors:用于监督学习的预训练词向量.vec文件给出路径 默认为‘ ’模型压缩用于减小模型大小和内存占用后缀.ftzmodel.quantize(self,inputNone, 训练文件路径qoutNone, 修剪输出层cutoff0, 重新训练的词和ngram个数retrainFalse, 是否重新训练epochsNone, 多少轮lrNone, 学习率threadNone, 线程verboseNone,dsub2, 压缩成几块qnormFalse) 是否归一化模型的存取 save_model / load_modelmodel.save_model(self,path): 给出存储路径model ff.load_model(self,path)模型的单例预测model.predict(self,text, utf-8 字符串文本k1, 返回标签的个数可以理解为最大K项threshord0.0) 概率阈值大于才返回模型批量预测model.test(self,path, 文件路径k1) 最大k项返回[Npr] 样本个数精确率召回率Model对象train_unsupervised、train_supervised、load_model 都会返回一个_FastText类的对象我们一般命名为model。model对象下面的一些方法。这个就不翻译了因为命名的很直白。
延伸阅读

更多相关文章

2026/11/7 14:43:23

3天学完linux基础-----第二天

2.1.22 软件安装介绍 学软件开发,各种台的软件熟练安装是必须要熟练掌握。大家都知道,Windows下安装软件时,只需用鼠标双击软件的安装程序,或者用Zip等解压缩软件解压缩即可安装;在android或者apple中安装软件时&#…

2026/10/26 10:04:07

根据JDK深入详细学习理解JAVA线程池

笔者,之所以写这篇博客,是因为,很多博客或者书籍,在介绍线程池相关内容的时候,太理论化,直接上结论,并不能正确的表述出来所说的每一个结论,是为什么,怎么理解。所以在此…

2026/10/26 12:30:13

油轮导流罩供应商选择指南:核心指标与实船验证

油轮导流罩是一种安装在螺旋桨前方的水动力节能装置,学名桨前预旋导流罩(PFFP),其核心作用是改善螺旋桨入流流场,减少尾流能量损失,使推进效率提升5%至15%。对于油轮这类长期高油耗运营的船型,导流罩是应对IMO EEXI与CII新规的关键低成本方案,直接决定燃油成本与碳排放…

2026/11/7 14:39:47

湖南电工证多少钱报考条件与考试时间通过率揭秘

湖南电工证多少钱报考条件与考试时间通过率揭秘 之前考的证在外省能不能转过来?这个问题我听太多人问了,说实话,很多小伙伴因为不了解政策,结果白白浪费了时间和钱。今天就来聊聊【湖南电工证多少钱】这个大家最关心的问题,顺便揭秘一下考试通过率,让你…

2026/11/7 14:39:47

日本电工证报名网站怎么用?郑州报考避坑指南帮你搞定

日本电工证报名网站怎么用?郑州报考避坑指南帮你搞定 证书过期了不知道怎么复审延期?你不是一个人,信阳浉河区很多电工朋友都在为这个问题头疼。尤其是那些在日本电工证报名网站上报名,或者打算报名的人,面对流程繁琐、信息不透明、复审要求不明确,很容…

2026/11/7 14:39:47

漳州诏安县电工证有效期多久?真实经历告诉你别被中介坑

漳州诏安县电工证有效期多久?真实经历告诉你别被中介坑 不知道去哪报名怕被中介坑,是很多想考漳州诏安县电工证的朋友心头的疙瘩。特别是对于刚入行或者转行的人来说,连报名流程都不清楚,更别提怎么选靠谱的培训机构了。我认识不少同行,因为找错了机构,…

2026/11/7 14:39:47

_高压电工证难不难模拟考试题库

高压电工证难不难?全国通用吗?南阳电工亲测经验 之前考的证在外省能不能转过来?这是很多特种作业人员最头疼的问题,特别是像你这样在南阳做市政公用工程的电工,经常在不同项目间奔波,证书能不能全国通用直接影响你能不能顺利上岗。别急,今天我就从…

2026/11/7 14:39:47

底庄电工证有效期多久 一张全国通用的证书怎么考

底庄电工证有效期多久 一张全国通用的证书怎么考 怕考不过白交培训费?底庄电工证是特种作业操作证的一种,涉及低压和高压电工操作,是进入建筑、电力、市政等行业的“通行证”。特别是在许昌市,从事市政公用工程的电工,必须持证上岗,否则不仅会被限制作…

2026/11/7 14:34:47

林州做电工证真实经历:外省证怎么转?别踩这些坑

林州做电工证真实经历:外省证怎么转?别踩这些坑 之前考的证在外省能不能转过来?这是很多在林州打工的电工、或者打算在林州发展、但证书在别处的朋友最关心的问题。我认识一个郑州的劳务班组负责人老李,他就是在外地考的电工证,后来想在林州接项目,结果…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/6 10:49:01

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/7 0:03:08

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。特别是在郑州这样的城市,很多施工企业负责人和一线作业人员在报考电工证和钳工证时都面临着同样的困惑。到底该考哪个证?哪个更适合自己?哪个证书…

2026/11/7 0:03:08

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱?

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱? 之前考的证在外省能不能转过来?这个问题我遇到太多了,今天就拿广西电工证办理流程来具体说说,别再走弯路了。广西电工证的报考、复审、继续教育这些环节,如果你不了解,真的会吃大亏,尤其对于从…

2026/11/7 0:03:08

电气电工证都有哪些保姆级教程

电气电工证都有哪些保姆级教程 你是不是正愁不知道去哪报名,怕被中介坑?别急,这篇保姆级教程专为河南初次报考人员准备,帮你搞清楚 电气电工证都有哪些 ,以及如何避开那些坑。 电气电工证都有哪些?别被五花八门的证书搞懵了…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/6 10:49:01

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑