NLP基础概念

1. 文本表示的发展历程

1.1 向量空间模型 (VSM) —— "查字典打钩"

核心逻辑:准备一个巨大的词汇表,每篇文档就是在这个表里"打钩"。

  • 例子:词汇表有1万个词,你的句子里出现了第5、10、100个词。那你的向量就是在第5、10、100个位置写"1",其他9997个位置全是"0"。
  • 大白话:就像在填一张超级长的表格,有这个词就打个勾。
  • 缺点
    • 表格太长:绝大多数地方是空的(稀疏性)。
    • 没脑子:它只看词有没有出现,不看顺序。比如"我不爱他"和"他不爱我",生成的向量是一模一样的。

1.2 N-gram 语言模型 —— "接龙猜词"

核心逻辑:预测下一个词出现的概率。它认为一个词的出现只跟前面几个词有关。

  • 例子
    • 2-gram (Bigram):看到"吃",猜后面大概率接"饭",小概率接"药"。
    • 3-gram (Trigram):看到"我 喜欢",猜后面大概率接"你"。
  • 大白话:根据前几个词推测下一个词。
  • 缺点:它是"近视眼",只能看到前面1-2个词。如果你写个长句子,它就记不住开头在说什么了。

1.3 Word2Vec —— "物以类聚,人以群分"

核心逻辑:不再用几万维的稀疏向量,而是用几百维的"稠密数字"来代表词,且意思相近的词,数字也接近

  • 两种练功方式
    • CBOW:根据周围的词(上下文)猜中间那个词。
    • Skip-Gram:根据中间那个词猜周围有哪些词。
  • 神奇之处:它能学到语义。在数学上,国王 - 男人 + 女人 = 女王
  • 缺点"死脑子"。一个词一旦训练好,向量就固定了。比如"苹果"这个词,在"苹果手机"和"吃个苹果"里,它的向量是完全一样的。

1.4 ELMo —— "看心情(语境)变脸"

核心逻辑:解决"一词多义"的问题。它会根据一句话的上下文,动态地计算词向量。

  • 大白话:它像个翻译官,会根据语境给同一个词分配不同的含义。
  • 例子
    • 句子A:"我今天买了一个苹果(电子产品)"。
    • 句子B:"这个苹果(水果)真甜"。
    • 在 ELMo 里,这两个"苹果"的向量是不一样的。
  • 缺点:慢。因为它用的是一种叫 LSTM 的老架构,处理长句子非常费劲。

2. 总结:进化路线图

  1. VSM:最原始的统计,单纯看词出没出现。
  2. N-gram:开始考虑词与词的接龙关系。
  3. Word2Vec:开始理解词的内在含义,但不会变通。
  4. ELMo:学会了根据语境实时调整词的含义(一词多义)。
目录