如何使用向量代表文档doc或者句子sentence

时间:2022-07-15 15:09:38

1.“句向量”简介
word2vec提供了高质量的词向量,并在一些任务中表现良好。
关于word2vec的原理可以参考这几篇论文:

https://arxiv.org/pdf/1310.4546.pdf
https://arxiv.org/pdf/1301.3781.pdf
关于如何使用第三方库gensim训练word2vec可以参考这篇博客:

http://blog.csdn.net/john_xyz/article/details/54706807
尽管word2vec提供了高质量的词汇向量,仍然没有有效的方法将它们结合成一个高质量的文档向量。对于一个句子、文档或者说一个段落,怎么把这些数据投影到向量空间中,并具有丰富的语义表达呢?过去人们常常使用以下几种方法:

bag of words
LDA
average word vectors
tfidf-weighting word vectors
就bag of words而言,有如下缺点:1.没有考虑到单词的顺序,2.忽略了单词的语义信息。因此这种方法对于短文本效果很差,对于长文本效果一般,通常在科研中用来做baseline。

average word vectors就是简单的对句子中的所有词向量取平均。是一种简单有效的方法,但缺点也是没有考虑到单词的顺序

tfidf-weighting word vectors是指对句子中的所有词向量根据tfidf权重加权求和,是常用的一种计算sentence embedding的方法,在某些问题上表现很好,相比于简单的对所有词向量求平均,考虑到了tfidf权重,因此句子中更重要的词占得比重就更大。但缺点也是没有考虑到单词的顺序

LDA模型当然就是计算出一片文档或者句子的主题分布。也常常用于文本分类任务,后面会专门写一篇文章介绍LDA模型和doc2vec的本质不同

如何给Pycharm加上头行 # *_*coding:utf-8 *_*?

 

File》Setting》Editor》Code Style》File and Code Templates》Python Script  后面加上 # *_*coding:utf-8 *_* 即可

python代码规范

map 和 lamda

github ignore和

Python enumerate() 函数

如何使用向量代表文档doc或者句子sentence Python 内置函数


描述

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

Python 2.3. 以上版本可用,2.6 添加 start 参数。

语法

以下是 enumerate() 方法的语法:

enumerate(sequence, [start=0])

参数

  • sequence -- 一个序列、迭代器或其他支持迭代对象。
  • start -- 下标起始位置。

返回值

返回 enumerate(枚举) 对象。


实例

以下展示了使用 enumerate() 方法的实例:

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) # 下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

普通的 for 循环

>>>i = 0 >>> seq = ['one', 'two', 'three'] >>> for element in seq: ... print i, seq[i] ... i +=1 ... 0 one 1 two 2 three

for 循环使用 enumerate

>>>seq = ['one', 'two', 'three'] >>> for i, element in enumerate(seq): ... print i, element ... 0 one 1 two

---------------------
作者:Johnson0722
来源:CSDN
原文:https://blog.csdn.net/John_xyz/article/details/79208564
版权声明:本文为博主原创文章,转载请附上博文链接!