词向量:如何评价词向量的好坏
一、前言
词向量、词嵌入或者称为词的分布式表示,区别于以往的独热表示,已经成为自然语言任务中的一个重要工具,对于词向量并没有直接的方法可以评价其质量,下面介绍几种间接的方法。
二、评价方法
对于词向量的评价更多还是应该考虑对实际任务的收益,脱离的实际任务很难确定A模型就一定比B好,毕竟词向量方法更多是一种工具。
1、语义相关性任务
这个任务用来评价词向量模型在两个词之间的语义相关性,如:学生与作业,中国与北京等。
具体方法由监督模式实现,首先需要一份如下的标记文件,一般可以由人工标注:
学生 上课 0.78
教师 备课 0.8
...
上述文件代表了词语之间的语义相关性,我们利用标注文件与训练出来的词向量相似度进行比较,如:词向量之间的cos距离等,确定损失函数,便可以得到一个评价指标。
但这种方法首先需要人力标注,且标注的准确性对评价指标影响非常大。
2、语义类比任务
这个任务词向量来考察不同单词间的语义关系能力,一般给定三个词,如a、b、c,要求寻找a+b = c + ?任务中最相似的词,一般使用向量间距离来进行寻找,如:
queen-king+man=women
同样需要准备标记文件,根据寻找出来的词的正确率判断词向量的质量。
3、文本分类任务
这个任务利用词向量构成文本向量,一般采用求和平均的方式,之后利用构成的文本向量进行文本分类,根据分类的准备率等指标衡量词向量的质量。
三、模型优化
1、模型
对于自然语言处理任务,在模型效果相差不大的情况下,选用简单的模型。
同样,复杂的模型对于大规模的语料效果更为明显,小语料尽量用简单模型。
2、语料
选用与自然语言任务同领域的语料,提升效果会非常明显,在一定语料规模范围内,语料越大,效果越好;如果使用不同领域的语料,甚至会有反面效果。
在语料的选择上,同领域的语料比大规模的其他领域语料重要。
3、向量维度
向量维度太小难以表现出语义的复杂度,一般更大的维度的向量表现能力更强,综合之下,50维的向量可以胜任很多任务。
编写:求一个向量之和以及向量平均值的 函数文件。(M文件-函数文件)
%数组
A=1:9;
sumA=sum(A);
averageA=mean(A);
%矩阵
B=reshape(A,3,3);
sumB=sum(sum(B));
averageB=mean(B(:));
放到m文件里就行了
编写一个函数计算输入向量的平均值
自带函数 mean。。。。
还需要自己写函数么?如果是你就把mean 函数调出来看看,然后简化一下就可以了。
matlab编程求向量中每100个数据的平均值
假设你的数据都在A里面,然后把这每一百个数据的平均值储存在B里面。
B=[];
for i=1:10
B1=mean(A((100*i-99):100*i));
B=[B B1 ];
end
python一组数据的平均向量怎么求
看别人的代码 一般不如自己写个 >>> x=[[0, 1], [1, 0]] >>> y=[j for i in x for j in i] >>> print x,'平均数是:', sum(y)/float(len(y)) [[0, 1], [1, 0]] 平均数是: 0.5 >>>
MATLAB一向量[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15.......]每几个数进行求平均,程序应该如何?
举个例子,一个长度为10的行向量,每5个数进行平均:
a=[ 1 2 3 4 5 6 7 8 9 10]
用reshape改变矩阵的型
b=reshape(a,5,2)
得到结果如下:
b =
1 6
2 7
3 8
4 9
5 10
求取平均值
mean(b)
结果如下:
>> mean(b)
ans =
3 8更多
这个想法很好,受到一定启发~~~
但是我现在的向量数是不能整除,刚好平分的,如果想前面的按每五个数进行平均
后面的按6个数进行平均,这样要怎么弄的??麻烦,能实现的话追加分~~~~
那你把这个向量分成两段分别求啊
我是从tif文件里提取出来关于SAR海冰的信息,本来是个矩阵5400*5633,我先对列取了平均,数值存在tif格式里的,想要分成两段的话,前15段,每段有352个值,最后一段有353个值,程序如果编?呵呵~~~~好人做到底,帮帮忙啦~~本人编程这块比较弱~~~
a=1:5633 %举个例子
a1=a(1:15*352) %取前面一段
a11=reshape(a1,352,15) %改变矩阵的型
pjz1=mean(a11) %求前面一段的平均值
a2=a(15*353+1:end) %取后面一段
pjz2=mean(a2) %求后面一段的平均值
pjz=[pjz1 pjz2] %求最终结果:16个平均值
若还有疑问加本人QQ:749958231
请问哪位高手知道“平均向量”等的日语怎么说啊?
1.平均のベクトル
2.协分散マトリックスの特徴値
3.协分散マトリックスの特徴ベクトル
word2vec算出的词向量怎么衡量好坏
作者:Fiberleif
链接:http://www.zhihu.com/question/37489735/answer/73314819
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
目前常用的衡量word embedding质量好坏的task主要分为两类:
word analogy & document classification
1.word
analogy task
假设给了一对单词 (a , b) 和一个单独的单词c,
task会找到一个单词d,使得c与d之间的关系相似于a与b之间的关系,举个简单的例子:(中国,北京)和 日本,应该找到的单词应该是东京,因为北京是中国的首都,而东京也是日本的首都。 在给定word
embedding的前提下,task一般是通过在词向量空间寻找离(b-a+c)最近的词向量来找到d。
2.document
classification task
这是一种通过使用词向量来计算文本向量(可以被用来进行文本分类的工作)的方法,为了得到文本向量,task通常采用了一种很简单的方法:取文本中所有词的词向量的平均值来代表该文本的文本向量,进而通过文本分类的准确度来反向评价训练出的词向量的质量。
对于给定的word embedding,以上的方法确实可以大致地评价词向量的质量好坏,但我们不应该局限于它们,就像楼上所言,我们应该以word embedding对于实际任务的收益为评价标准,如果脱离了实际任务,很难讲不同的word embedding谁比谁更“好”,因为word embedding更像是一个解决问题所使用的工具而不是一个问题的终点。





