存根 文本分类如何工作? - 联合人工智能
关注我们.

AI 101

文本分类如何工作?

mm
更新 on

文本分类是分析文本序列并为其分配标签、根据其内容将它们分组的过程。文本分类几乎是所有涉及自然语言处理 (NLP) 的人工智能或机器学习任务的基础。通过文本分类,计算机程序可以执行各种不同的任务,例如垃圾邮件识别、情绪分析和聊天机器人功能。文本分类到底是如何工作的?进行文本分类有哪些不同的方法?我们将在下面探讨这些问题的答案。

定义文本分类

花一些时间并确保我们理解这一点很重要 什么是文本分类一般来说,在深入研究进行文本分类的不同方法之前。 文本分类是应用于许多不同任务和算法的术语之一,因此在继续探索文本分类的不同执行方式之前,确保我们了解文本分类的基本概念非常有用。

任何涉及为文本创建不同类别,然后将不同文本样本标记为这些类别的操作都可以被视为文本分类。 只要系统执行这些基本步骤,它就可以被视为文本分类器,无论用于分类文本的确切方法是什么,也无论文本分类器最终如何应用。 检测垃圾电子邮件、按主题或标题组织文档以及识别产品评论的情绪都是文本分类的示例,因为它们是通过将文本作为输入并输出该文本片段的类标签来完成的。

文本分类如何工作?

照片:Quinn Dombrowski,来自 Flickr,CC BY SA 2.0,(https://www.flickr.com/photos/quinnanya/4714794045)

大多数文本分类方法可以分为三个不同类别之一:基于规则的方法或机器学习方法。

基于规则的分类方法

基于规则的文本分类方法通过使用显式设计的语言规则进行操作。 该系统使用工程师创建的规则来确定给定的文本片段应属于哪个类,并以语义相关的文本元素的形式寻找线索。 每个规则都有一个模式,文本必须匹配该模式才能放入相应的类别。

更具体地说,假设您想要设计一个文本分类器,能够区分常见的对话主题,例如天气、电影或食物。 为了使您的文本分类器能够识别有关天气的讨论,您可能会告诉它在所输入的文本样本正文中查找与天气相关的单词。 您将拥有一个关键字、短语和其他可用于区分主题的相关模式的列表。 例如,您可以指示分类器查找“风”、“雨”、“太阳”、“雪”或“云”等单词。 然后,您可以让分类器查看输入文本并计算这些单词在文本正文中出现的次数,如果它们比与电影相关的单词出现得更频繁,您可以将该文本分类为属于天气类。

基于规则的系统的优点是它们的输入和输出是人类可预测和解释的,并且可以通过工程师的手动干预来改进。 然而,基于规则的分类方法也有些脆弱,而且它们通常很难推广,因为它们只能遵循已编程的预定义模式。例如,“云”一词可能指的是环境中的水分。天空,或者它可能指的是存储数据的数字云。 如果工程师不花费大量时间尝试手动预测和调整这些细微差别,基于规则的系统就很难处理这些细微差别。

机器学习系统

如上所述,基于规则的系统有局限性,因为它们的功能和规则必须预先编程。 相比之下,基于机器学习的分类系统通过应用算法来分析数据集以查找与特定类别相关的模式。

机器学习算法被输入预先标记/预先分类的实例,并分析这些实例的相关特征。 这些预先标记的实例是训练数据。

机器学习分类器分析训练数据并学习与不同类别相关的模式。 此后,未见过的实例将被剥离标签并输入分类算法,分类算法为实例分配标签。 然后将分配的标签与原始标签进行比较,以了解机器学习分类器的准确度,衡量模型学习哪些模式预测哪些类别的程度。

机器学习算法通过分析数值数据来运行。 这意味着为了对文本数据使用机器学习算法,需要将文本转换为数字格式。 有多种方法可以将文本数据编码为数字数据,并围绕该数据创建机器学习方法。 我们将在下面介绍一些表示文本数据的不同方法。

词袋

一袋字 是编码和表示文本数据最常用的方法之一。 “词袋”一词来自这样一个事实:您本质上将文档中的所有单词放入一个“袋”中,而不注意词序或语法,只关注 词频 在包里。 这会产生一个长数组或向量,其中包含输入文档中所有单词的单一表示。 因此,如果输入文档中总共有 10000 个唯一单词,则特征向量的长度将为 10000 个单词。 这就是词袋/特征向量的大小的计算方式。

照片:gk_来自Machinelearning.co,(https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

确定特征向量大小后,总文档列表中的每个文档都会被分配自己的向量,其中填充数字,指示相关单词在当前文档中出现的次数。 这意味着如果“食物”一词在一个文本文档中出现八次,则相应的特征向量/特征数组将在相应的位置有一个八。

换句话说,输入文档中出现的所有唯一单词都被堆到一个包中,然后每个文档得到一个相同大小的词向量,然后用不同单词在文档中出现的次数填充该词向量。

文本数据集通常包含大量独特的单词,但其中大多数并不经常使用。 因此,用于创建词向量的词数通常上限为选定值 (N),然后特征向量维度将为 Nx1。

词频-逆文档频率 (TF-IDF)

另一种根据文档中的单词来表示文档的方法被称为 词频-逆文档频率 (TF-IDF)。 TF-IDF 方法还创建一个向量来表示基于文档中的单词的文档,但与词袋不同的是,这些单词是 不仅仅取决于它们的频率。 TF-IDF 考虑文档中单词的重要性,尝试量化该单词与文档主题的相关程度。 换句话说,TF-IDF 分析相关性而不是频率,并且特征向量中的字数由针对整个数据集计算的 TF-IDF 分数代替。

TF-IDF 方法首先计算术语频率,即特定术语在特定文档中出现的次数。 然而,TF-IDF 还注意限制“the”、“or”和“and”等极其常见的单词的影响,因为这些“停用词”非常常见,但传达的有关文档内容的信息很少。 这些词需要打折扣,这就是TF-IDF的“逆文档频率”部分所指的。 这样做是因为特定单词出现在的文档越多,该单词在将其与所有文档列表中的其他文档区分开来时用处就越小。 TF-IDF 用于计算单词重要性的公式旨在保留最频繁且语义最丰富的单词。

TF-IDF 方法创建的特征向量包含总和为 XNUMX 的归一化值,为每个单词分配一个由 TF-IDF 公式计算得出的加权值。

Word嵌入

词嵌入 是表示文本的方法,可确保具有相似含义的单词具有相似的数字表示。

词嵌入 通过“向量化”单词来操作,这意味着它们将单词表示为向量空间中的实值向量。 矢量存在于网格或矩阵中,并且它们具有方向和长度(或大小)。 当将单词表示为向量时,单词被转换为由实值组成的向量。 每个单词都映射到一个向量,并且含义相似的单词具有相似的方向和大小。 这种类型的编码使得机器学习算法能够学习单词之间的复杂关系。

代表不同单词的嵌入是根据相关单词的使用方式创建的。 由于以相似方式使用的单词将具有相似的向量,因此创建单词嵌入的过程会自动翻译单词所具有的一些含义。 相比之下,词袋方法会创建脆弱的表示,其中不同的单词即使在高度相似的上下文中使用,也会有不同的表示。

因此,词嵌入可以更好地捕获句子中单词的上下文。

有不同的算法和方法用于创建词嵌入。 一些最常见和可靠的词嵌入方法包括:嵌入层、word2vec 和 GloVe。

嵌入层

将词嵌入与机器学习/深度学习系统一起使用的一种潜在方法是 使用嵌入层。 嵌入层是深度学习层,它将单词转换为嵌入,然后将其输入深度学习系统的其余部分。 当网络针对特定的基于文本的任务进行训练时,会学习词嵌入。

在词嵌入方法中,相似的词将具有相似的表示,并且比不相似的词彼此更接近。

为了使用嵌入层,需要首先对文本进行预处理。 文档中的文本必须进行one-hot编码,并且需要提前指定向量大小。 然后,将独热文本转换为词向量,并将向量传递到机器学习模型中。

词向量

词向量 是另一种常见的嵌入单词的方法。 Word2Vec 使用统计方法将单词转换为嵌入,并针对基于神经网络的模型进行了优化。 Word2Vec 由 Google 研究人员开发,它是最常用的嵌入方法之一,因为它可靠地产生有用、丰富的嵌入。 Word2Vec 表示对于识别语言中的语义和句法共性非常有用。 这意味着 Word2Vec 表示捕获相似概念之间的关系,能够区分“国王”和“王后”之间的共同点是皇室,“国王”意味着“男性”,而“女王”意味着“女性”。

手套

GloVE,或用于词表示的全局向量,建立在 Word2Vec 使用的嵌入算法之上。 GloVe 嵌入方法结合了 Word2Vec 和矩阵分解技术(如潜在语义分析)的各个方面。 Word2Vec 的优点是它可以捕获上下文,但作为权衡,它很难捕获全局文本统计数据。 相反,传统的向量表示擅长确定全局文本统计数据,但对于确定单词和短语的上下文没有用处。 GloVE 借鉴了这两种方法的优点,根据全局文本统计数据创建单词上下文。

博主和程序员,擅长 机器学习 深度学习 主题。 丹尼尔希望帮助其他人利用人工智能的力量造福社会。