NLP之Fasttext

2024-02-18 09:32
文章标签 nlp fasttext

本文主要是介绍NLP之Fasttext,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NLP之Fasttext

一、简介

     Fasttext是2016年facebook开源的一个机器学习模型,可用于生成词向量和文本分类。文本分类方面据说有着和深度学习模型接近的效果,并且训练速度更快(其中一个原因是使用了层次化softmax加快了运算过程)。模型的输入是一个句子及其n-gram特征,输出类别。

二、语料(文本分类)

      输入的数据需要经过一些简单的处理,fasttext有着自己的数据格式:‘__label__[类别] 文本’另外fasttext用于监督学习的时候,训练及其预测过程类似于机器学习,它可调用fasttext.supervised(参数)训练,这里有一点需要注意,输入数据不是直接输入训练文本,而是输入训练文本所在的路径。但是在预测的时候,输入的是文本序列。

三、Fasttext.supervised常用参数:

		Input: 训练文本的路径output: 模型的保存路径下面是一些可选参数:-lr :learning rate [0.05]-lrUpdateRate :change the rate of updates for the learning rate [100]-dim  :size of word vectors [100]  (词向量的大小)-ws : size of the context window [5]-epoch :number of epochs [5]   (select with bucket)-minCount: minimal number of word occurences [1]-neg :number of negatives sampled [5]-wordNgrams :max length of word ngram [1]-loss: loss function {ns, hs, softmax} [ns]-bucket: number of buckets [2000000]-minn :min length of char ngram [3]-maxn: max length of char ngram [6]-thread: number of threads [12]-t :sampling threshold [0.0001]-labe:l labels prefix [__label__]

四、精度评估&预测:

	精度评估:result = model.test(‘test.txt’)print(‘precision:{}’.format(result.precison))Print(‘recall:{}’.format(result.recall))print(‘Number of examples’, result.nexample)模型预测:(1)model.predict(texts)	# 仅标签类别(2)model.predict_proba(texts)	# 带概率的标签类别,比如[[('0', 0.998047)]]

五、其它

	(1)词向量的特点:词向量的距离可以衡量单词间的语义相似度(2)Fasttext模型类似于word2vec的CBOW模型,但CBOW是用上下文预测目标词汇,而fasttext是预测类别。具体可参考下面的博文:FastText:快速的文本分类器  https://blog.csdn.net/john_bh/article/details/79268850

六、参考文献

	[1]博文:http://albertxiebnu.github.io/fasttext/[2]Fasttext源码:https://github.com/facebookresearch/fastText[3]word2vec详解 https://blog.csdn.net/itplus/article/details/37969519[4]使用fasttext文本分类实践:https://cloud.tencent.com/developer/article/1061909

这篇关于NLP之Fasttext的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720734

相关文章

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

【python 走进NLP】两两求相似度,得到一条文本和其他文本最大的相似度

应用场景: 一个数据框里面文本,两两求相似度,得到一条文本和其他文本最大的相似度。 content source_id0 丰华股份军阀割据发生的故事大概多少w 11 丰华股份军阀割据发生的故事大概多少 22 丰华股份军阀割据发生的故事大概多少 33 丰华股份军阀割据发生的故事大概多少

【Python 走进NLP】NLP词频统计和处理停用词,可视化

# coding=utf-8import requestsimport sysreload(sys)sys.setdefaultencoding('utf-8')from lxml import etreeimport timetime1=time.time()import bs4import nltkfrom bs4 import BeautifulSoupfrom

【java 走进NLP】simhash 算法计算两篇文章相似度

python 计算两篇文章的相似度算法simhash见: https://blog.csdn.net/u013421629/article/details/85052915 对长文本 是比较合适的(超过500字以上) 下面贴上java 版本实现: pom.xml 加入依赖 <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</a

【python 走进NLP】simhash 算法计算两篇文章相似度

互联网网页存在大量的重复内容网页,无论对于搜索引擎的网页去重和过滤、新闻小说等内容网站的内容反盗版和追踪,还是社交媒体等文本去重和聚类,都需要对网页或者文本进行去重和过滤。最简单的文本相似性计算方法可以利用空间向量模型,计算分词后的文本的特征向量的相似性,这种方法存在效率的严重弊端,无法针对海量的文本进行两两的相似性判断。模仿生物学指纹的特点,对每个文本构造一个指纹,来作为该文本的标识,从形式上来

【python 走进NLP】文本相似度各种距离计算

计算文本相似度有什么用? 1、反垃圾文本的捞取 “诚聘淘宝兼职”、“诚聘打字员”…这样的小广告满天飞,作为网站或者APP的运营者,不可能手动将所有的广告文本放入屏蔽名单里,挑几个典型广告文本,与它满足一定相似度就进行屏蔽。 2、推荐系统 在微博和各大BBS上,每一篇文章/帖子的下面都有一个推荐阅读,那就是根据一定算法计算出来的相似文章。 3、冗余过滤 我们每天接触过量的信息,信息之间存在大量

【python 走进NLP】句子相似度计算--余弦相似度

余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。 github 参考链接:https://github.com/ZhanPwBibiBibi/CHlikelihood # -*- coding: utf-8 -*-import jiebaimport numpy as npimpor

【python 走进NLP】从零开始搭建textCNN卷积神经网络模型

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程 1、众所周知,tensorflow 是一个开源的机器学习框架,它的出现大大降低了机器学习的门槛,即使你没有太多的数学知识,它也可以允许你用“搭积木”的方式快速实现一个神经网络,即使没有调节太多的参数,模型的表现一般还

NLP文本相似度之LCS

基础 LCS(Longest Common Subsequence)通常指的是最长公共子序列,区别最长公共字串(Longest Common Substring)。我们先从子序列的定义理解: 一个序列S任意删除若干个字符得到新的序列T,则T叫做S的子序列。 子序列和子串的一个很大的不同点是,子序列不要求连接,而子串要求连接。 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y

NLP 文本相似度(一)

一份文本,从结构上划分可以是:字、词、句、段、篇。文本比较的粒度是词,一篇文章,可以划分成N个不同的词,选取其中包含重要信息的M个词作为这片文章的特征。M个词构成了M维的向量,两个文本之间的比较就是两个M维向量之间的比较。 余弦相似度 向量之间如何比较?我们可以采用余弦相似度,其描述如下: 一个向量空间中两个向量夹角的余弦值可以作为衡量两个个体之间差异的大小;余弦值越接近1,夹角趋于0,表明