赞
踩
由于在NLP这块完全是个新手,刚开始什么都不懂,现在有时间记录下来,以后也好回顾。
1:词向量(词表示)
用某个固定维度的向量去表示单词,把单词映射到某个维度(eg:100维)的空间中去。
为什么要变成固定维度的向量呢?
因为大多数机器学习模型需要固定维度的向量作为输入。
语言学中的规律:相似的单词有相似的上下文。所以目前主流的词向量模型都通过单词在语料中的上下文来表示单词。对单词与上下文的关系进行建模,从而得到高质量的单词表示。
词向量可以做什么?
*相似的单词映射到相似的空间中去,用词向量可以找到和某个单词相近的单词。
*词类比(analogy) word2vec
2: one-hot
one-hot就是只有一个1,其余都是0
比如,词典里有“我 你 他”3个单词,
“我”用one-hot可以表示为[1, 0, 0]
“你”用one-hot可以表示为[0, 1, 0]
“他”用one-hot可以表示为[0, 0, 1]
3:BOW(Bag of word)词袋模型
词袋,顾名思义,就是把所有词都放进一个大袋子里。
词向量与原来文本中单词出现的顺序没有关系,而是词典中每个单词在文本中出现的频数。不考虑词间的顺序。
比如:“我爱你” 和 “你爱我”
词典里就是【我 爱 你】
“我爱你”的词袋模型【1,1,1】
“你爱我”的词袋模型【1,1,1】
可以看出这两个的词袋模型相同,没有区分,因此fasttext不用词袋模型,而是使用n-gram。
假设使用2-gram,“我爱你”→ “我爱 / 爱你”。“你爱我”→“你爱 / 爱我”。
词典里就是【我爱 爱你 你爱 爱我】
“我爱你”的n-gram模型【1,1,0,0】
“你爱我”的n-gram模型【0,0,1,1】
先到这里
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。