NLP

NLP-词向量:词袋模型

2020-08-09  本文已影响0人  Huoyo

一、前言

词袋模型是早些年使用的词向量模型,该模型假设每个词都是独立的,仅仅使用词在文章中的频率来决定如何表达词,并将每个词的表达通过组合来表征文章。

二、原理以及实现

该模型的具体构建流程如下:
假设我们有如下三篇简短文章

1、今天 我们 去 唱歌 明天 我们 去 爬山
2、 我们 去 爬山
3、小名 喜欢 打球

1、构建词袋

将文章的所有词提取出来放在一个袋子中:

dict = ['今天', '唱歌', '喜欢', '小名', '我们', '打球', '明天', '爬山']

共得到包含有8个词的词袋,那么每篇文章的维度就固定为8

2、统计文章词频

使用词袋的每个词去文章中一一统计,并按照顺序记录词频,比如文章1中,“今天”出现1次,“唱歌”出现1次...“爬山”出现1次
得到三篇文章的词向量分别如下:

1、[1 1 0 0 2 0 1 1]
2、[0 0 0 0 1 0 0 1]
3、[0 0 1 1 0 1 0 0]

3、代码实战

使用sklearn进行实战

from sklearn.feature_extraction.text import CountVectorizer
corpus = ['今天 我们 去 唱歌,明天 我们 去 爬山',
            '我们 去 爬山',
            '小名 喜欢 打球']
vec=CountVectorizer()
X = vec.fit_transform(corpus)
print(X.toarray())

三、特点

1、优点

  • 简单快捷,易于理解

2、缺点

  • 向量稀疏度较高,当词袋较大时,容易出现维度灾难
  • 假设了文本中词与词之间相互独立,上下文没有关联性,有悖于人类语言
上一篇 下一篇

猜你喜欢

热点阅读