FastText 文本分类器

fastText是一个由Facebook的AI Research(FAIR)实验室创建的用于学习单词嵌入和文本分类的库。该库支持使用无监督学习或有监督学习算法以获取单词的矢量表示并支持对文本的分类操作。这次我们主要学习有监督的fastText模型分类器的构建以及使用,由于主要目标是了解该模型算法的机理,所以并不会对fastText库做详细介绍。

一些基本概念

这里将简要介绍一些必要了解的基础概念以及相关内容,如果是对这些内容已经清楚的读者可以跳到后面的部分继续阅读。

分词处理

东方代表性的一些国家的语言文字的单词之间其实是没有明确的界限的,例如汉语,大多数时候这并不影响极具智慧的人类阅读这些语言文字,然而为了方便在计算机中进行处理我们通常要对这些文本进行分词处理,分割出一个一个的词语,例如:将语句“今天天气还不错”通过处理得到序列「 “今天”,“天气”,“还不错”」,这便是分词处理。另外某些工作可能会要求处理一些包含短语词组在内的元素所以偶尔也会有对英文等天然具备分词特性的语言进行再分词处理的必要。

n-gram 语法模型

n-gram 语法模型是一种概率语言模型,用于以(n-1)阶马尔可夫模型的形式预测这种序列中的下一项。 n-gram 模型现在广泛用于概率,交流理论,计算语言学(例如,统计自然语言处理),计算生物学(例如,生物序列分析)和数据压缩。 n-gram 语法模型(以及使用它们的算法)的两个好处是简单性和可伸缩性,当n较大时,模型可以存储更多上下文,并具有很好的时空权衡,使小型实验得以有效扩展。这段的内容基本来自维基百科,如果觉得比较晦涩也不用担心,我们在实际操作的时候会了解到它存在一个比较简单的算法表示。

词向量

我们知道在编程开发中使用到的字符串就是一种对人类自然语言的数位化表示,但是在用计算机进一步处理这些内容的时候,为了能赋予这些数位词汇更多的特性,如:支持特殊运算、能够表现近似程度,我们需要将其转换为更加有效的形式,其中字、词的向量化即词向量就是一种不错的选择,具备多个维度的词向量可以支持复杂的运算操作也能获取不同词向量之间的距离来表示近似度,将词汇向量化表示的技术通常为词嵌入Word embedding。

必要的数学知识

需要掌握的内容记载如下:1. 线性代数基本运算(矩阵乘法,矩阵转置);2. 向量、余弦相似性;3. 微分学基础(偏微分,链式法则);4. 概率学基础。

Python 编程语言

为了便于快速上手实践开发,我们选用 Python 编程语言,采用的版本是 Python 3.6 或者更高的版本。之后我们将会使用到一系列的数值运算工具以及人工神经网络相关的框架,具体到环境部署的时候会一一列举并说明。就目前来说读者掌握 Python3 的基础编程技术就足够了。

数据预处理

正文内容较多且包含实验操作因此还未处理完,《数据预处理》部分计划xx月xx之前完成!其它部分依序完成。

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.zfjsec.com/401.html
-- 展开阅读全文 --
C#软件界面使用ProgressBar增加进度条
« 上一篇 07-29
纸飞机SEC—JAVA系列第一章第七节
下一篇 » 08-04

发表评论