为什么词在嵌入之前由频率计数表示?

数据挖掘 机器学习 深度学习 nlp 文本挖掘 词嵌入
2022-03-05 11:23:14

在通过嵌入获得单词的向量表示之前,将单词映射到数字。这些数字被选为该词在数据集中出现的频率。为什么会有这个约定?它有什么影响,还是任意的?

2个回答

在语言学和 NLP 中有一个普遍的原则:一个词的意义是由词的上下文来表示的,即它周围的词。[编辑] 在 NLP 中,这一原则是分布式语义的基础,它用于每个涉及语义的 NLP 应用程序(几乎所有语义)。

这意味着从统计学上来说,一个词的含义可以通过其所有可能的上下文词的词汇表上的频率/概率分布来表示。这个原则被推广到全文:文本的含义表示为它包含的单词的频率分布。

因此使用词频是非常有意义的:它代表了词在文本中的“重要性”,将所有词的“重要性”加在一起就可以表示文本的含义。

这可能取决于您所指的嵌入算法,但您通常会提前确定词汇量,并且任何单词都会被赋予OOV(词汇外)或UNK(未知)标记。

按频率(在具有代表性的数据样本中)对词汇进行排序是决定哪些词被删减的最明智的方法。

它有什么影响,还是任意的?

如上所述,它是任意的,你应该通过随机打乱你的单词列表,然后使用它来获得相同的结果。

顺便说一句,嵌入现在经常使用 SentencePiece 的输出或类似 BPE 的算法。这些工作通过给定一个目标词汇量大小,并将单词分解为标记,以避免有任何 UNK 标记。看起来是一篇不错的文章,或者搜索 BPE 或 SentencePiece。但基本思想是最常见的字符串本身就成为标记。所以(对于英语)字母 'a' 到 'z' 是标记,但之后像 'it'、'and'、'the' 等将成为标记。但是如果语料库是关于美国城市的,你可能会得到多个单词字符串,比如“New York”也成为一个标记。

但是,同样,分配给每个令牌的实际数字是任意的。