首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么有些ML模型不能利用文本排序信息?

为什么有些ML模型不能利用文本排序信息?
EN

Data Science用户
提问于 2019-01-13 20:16:37
回答 1查看 53关注 0票数 0

在这个谷歌教程(https://developers.google.com/machine-learning/guides/text-classification/step-4)上,有这样的说法:

构建n克模型备选案文A我们将独立处理令牌的模型(不考虑词序)称为n-gram模型。简单的多层感知器(包括logistic回归)、梯度增强机和支持向量机模型都属于这一类,它们不能利用文本排序的任何信息。>

然后

建立序列模型备选方案B我们指的是可以从标记的邻接中学习的模型,作为序列模型。这包括CNN和RNN类模型。数据被预处理为这些模型的序列向量>

为什么一些ML模型(简单的多层感知器、梯度增强机和支持向量机模型)不能利用文本排序的任何信息?

是因为他们不能接受输入的浮点数吗?(不确定那些ML模型是否在输入时接受浮动。我猜他们做不到。

EN

回答 1

Data Science用户

回答已采纳

发布于 2019-01-14 20:22:55

本教程假设文本将被表示为一个固定长度的特征向量。有几种方法可以做到这一点。好的老的是使用n-克,索引和几个技巧围绕它。

首先,N-克可以被看作是一种词(或者更确切地说,是短语).它的极端版本是1克,也就是1克,它只是一个单词.当然,双克、三克等都是对某些词序的编码,但文本中n克的排序通常被忽略。让我们假设您使用了unigram并定义了词汇表:

代码语言:javascript
复制
Index assigned for every token: 
{'the': 0, 'mouse': 1, 'ran': 2, 'up': 3, 'clock': 4 }

通过使用计数编码,我们得到了表示文本的以下向量:

代码语言:javascript
复制
'The mouse ran up the clock' = [2, 1, 1, 1, 1]

但是,如果你只是简单地洗刷单词,你就会得到同样的向量。

2克,3克等等,能更好地捕捉单词的顺序,对于不同的文本也更难得到相似的向量。因此,这并不是完全正确的,他们不能利用任何有关文本排序的信息。然而,只要在文本中交换句子,就可以得到非常接近的表示。特别是,如果一些罕见的3克从词汇(这是广泛使用,以保持合理的词汇量)。

递归神经网络和词嵌入是NLP中比较现代的方法。在RNN的情况下,单词(以嵌入的形式)被顺序地输入到模型中(而不是独立于n-gram),因此模型对单词排序更加敏感。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/43933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档