1.词袋模型(BOW)
词袋模型(Bag of Words, BOW)是一种通过词频将句子转化为向量表示的方法,不考虑句子的顺序,只考虑词表中单词在这个句子中出现的次数。
例句:
Jack lives in Shanghai.
Bob wants to go to Shanghai.
对于这两个句子中出现的单词,使用词袋模型形成词表:
| ['bob', 'go', 'in', 'jack', 'lives', 'shanghai', 'to', 'wants'] |
因此,这两个句子的向量表示为
| s1=[0, 0, 1, 1, 1, 1, 0, 0] s2=[1, 1, 0, 0, 0, 1, 2, 1] |
可使用sklearn中的CountVectorizer()函数实现BOW模型
from sklearn.feature_extraction.text import CountVectorizer
corpus = [
"Jack lives in Shanghai.",
"Bob wants to go to Shanghai."
]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
print(X.toarray())
# 输出
['bob', 'go', 'in', 'jack', 'lives', 'shanghai', 'to', 'wants']
[[0 0 1 1 1 1 0 0]
[1 1 0 0 0 1 2 1]]
2.N-gram
假设我们有一个由n个词组成的句子 S = ( w 1 , w 2 , ⋯ , w n ) S=(w_1,w_2,⋯,w_n) S=(w1,w2,⋯,wn),如何衡量它的概率呢?让我们假设,每一个单词 w i w_i wi都要依赖于从第一个单词 w 1 w_1 w1到它之前一个单词 w i − 1 w_{i−1} wi

本文介绍了自然语言处理的基础知识,包括词袋模型(BOW)忽略了词序,仅关注词频;N-gram模型考虑相邻词的影响来计算概率;神经网络语言模型(NNLM)用词向量表示单词;Word2vec通过Skip-gram和CBOW模型学习词向量,捕捉词的语义关系。
最低0.47元/天 解锁文章
:初识自然语言处理和词向量&spm=1001.2101.3001.5002&articleId=106438512&d=1&t=3&u=171519322ffc40f7aa819bf7a4ce31b6)
493

被折叠的 条评论
为什么被折叠?



