【NLP】毕设学习笔记(一):词袋模型、主题模型、词嵌入

NLP分类方法历史

  • 词袋模型(1954)
    • One-hot
    • TF-IDF
    • N-gram
  • 主题模型(1998)
    • LSA
    • pLSA
    • LDA
  • 词嵌入(word embedding)
    • word2vec(2013)
      • Skip-gram
      • Cbow
    • Glove

词袋模型(1954)

相关文章:词袋模型简要概述和发展史
使用向量表示文章/句子,向量中每一个维度表示一个单词。

One-hot

性别特征:[“男”,“女”],(这里只有两个特征,所以N=2):

男 => 10

女 => 01

祖国特征:[“中国”,"美国,“法国”](这里N=3):

中国 => 100

美国 => 010

法国 => 001

运动特征:[“足球”,“篮球”,“羽毛球”,“乒乓球”](这里N=4):

足球 => 1000

篮球 => 0100

羽毛球 => 0010

乒乓球 => 0001

所以,当一个样本为[“男”,“中国”,“乒乓球”]的时候,完整的特征数字化的结果为:

[1,0,1,0,0,0,0,0,1]

TF-IDF

term frequency-inverse document frequency(词频-逆向文件频率 )
TF:单词出现次数 / 总单词数
IDF:单词t在文档d上的特殊性 log(文章总数 / 包含单词t的文章总数 + 1)

N-gram

N-Gram,N 值一般取2或者3。
以 N = 2 为例对字符串Gorbachev和Gorbechyov进行分段,可得如下结果(我们用下画线标出了其中的公共子串)。
【NLP】毕设学习笔记(一):词袋模型、主题模型、词嵌入_第1张图片
两个字符串之间的距离是8 + 9 − 2 × 4 = 9
(8,9个分段 - 2 * 4个相同的分段)
显然,字符串之间的距离越小,它们就越接近。当两个字符串完全相等的时候,它们之间的距离就是0。

主题模型(1998)

词袋模型最大的不足是无法解决近义词和一词多义问题

主题模型:以非监督学习的方式对文集的隐含语义结构进行聚类的统计模型。

主题:具有相同意义单词的簇。
一个文本含有若干个主题,主题数远远小于单词个数且主题数为超参数。如果两个文本的主题相似,那么文本语义就应该相似。主题可以由若干个语义相似的单词表示,同义词(如“快乐”和“高兴”)可以表示同一个主题,而多义词如(“苹果”,苹果公司或者水果)可以表示不同的主题。

LSA

潜在语义分析LSA/LSI(Latent Semantic Analysis/Indexing)
假设一共有n个文本 ,n个文本中共出现m个单词,假设所有文本共含有k个主题。
【NLP】毕设学习笔记(一):词袋模型、主题模型、词嵌入_第2张图片
行向量表示有m个单词,列向量表示有k个主题。
构建单词 - 主题矩阵。
【NLP】毕设学习笔记(一):词袋模型、主题模型、词嵌入_第3张图片
行向量表示有k个主题,列向量表示有n个文章。
构建主题 - 文章矩阵。
利用上述两个矩阵T和Y的乘积可以构建单词 - 文章矩阵

pLSA

和LSA最大的不同是pLSA是基于概率的模型。
假设一共有m个单词,n个文本,k个主题。
P(d)表示生成文本d的概率,P(z|d)表示文本d生成主题z的概率,P(w|z)表示主题z生成单词w的概率。
根据上述三个概率,得出一个单词在一个文本里出现的次数。其中利用了极大似然估计。

LDA

LDA是pLSA的拓展,于2002年提出,为了解决pLSA的过拟合问题。
不再使用极大似然估计得到概率,采用了贝叶斯模型。

词嵌入(word embedding)

将每个单词用一个向量表示,向量之间的余弦值表示单词之间的相似度。此外,还可以根据向量做类比和推理,使得机器可以“理解”单词。

word2vec(2013)

其核心思想就是基于上下文,先用向量代表各个词,利用一个预测目标函数学习词向量的参数。Word2Vec 的网络主体是一种单隐层前馈神经网络,网络的输入和输出均为词向量。

Skip-gram

将词本身作为输入,将词所在上下文中的词作为输出。,也就是说,给出一个词,希望预测可能出现的上下文的词,2-gram比较常用。

Cbow

CBOW将一个词所在的上下文中的词作为输入,而那个词本身作为输出,也就是说,看到一个上下文,希望大概能猜出这个词和它的意思。

Glove

有效学习词向量的算法,结合了LSA的全局统计与word2vec中的基于局部语境学习。

你可能感兴趣的:(学习笔记,深度学习,自然语言处理)