Embedding / Chinese-Word-Vectors

100+ Chinese Word Vectors 上百种预训练中文词向量

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

不支持语义运算

SnowyYANG opened this issue · comments

commented

用的维基百科sgns.wiki.word,试了一下
国王-男人+女人 != 王后 向量值相差很远
梨树-树+花 != 梨花

比较了梨花、茶花、水花和花的曼哈顿距离
梨花离花比较远,是85+
茶花和水花距离花的距离差不多,是77.58和79.27

是用的cosine距离来计算的词类比吗?具体可以参考项目中的词类比评测代码。

commented

计算了余弦相似性,结果如下,水花与花的相似性和梨花、茶花与花的相似性没有什么区别。
Similar(梨花,花)=0.29208240106642025
Similar(茶花,花)=0.3482703247116077
Similar(茶花,梨花)=0.469544978245012
Similar(水花,花)=0.3118033594185841
Similar(水花,茶花)=0.6777076692573767

代码:
public static double Similar(double[] v1, double[] v2)
{
var ab = 0d;
var aa = 0d;
var bb = 0d;
for (int i = 0; i < v1.Length; i++)
{
ab += v1[i] * v2[i];
aa += v1[i] * v1[i];
bb += v2[i] * v2[i];
}
return ab / (Math.Sqrt(aa) * Math.Sqrt(bb));
}

还有语义加减运算那个,也是“国王-男人”和“王后-女人”的结果完全不同。

所谓的语义运算是要针对数据集的,你数据集如果没有关于国王,男人,女人的相关语义联合的语料,就不能这么算

commented

计算了余弦相似性,结果如下,水花与花的相似性和梨花、茶花与花的相似性没有什么区别。 Similar(梨花,花)=0.29208240106642025 Similar(茶花,花)=0.3482703247116077 Similar(茶花,梨花)=0.469544978245012 Similar(水花,花)=0.3118033594185841 Similar(水花,茶花)=0.6777076692573767

代码: public static double Similar(double[] v1, double[] v2) { var ab = 0d; var aa = 0d; var bb = 0d; for (int i = 0; i < v1.Length; i++) { ab += v1[i] * v2[i]; aa += v1[i] * v1[i]; bb += v2[i] * v2[i]; } return ab / (Math.Sqrt(aa) * Math.Sqrt(bb)); }

还有语义加减运算那个,也是“国王-男人”和“王后-女人”的结果完全不同。

请问这个问题解决了吗,我也是计算余弦相似度有问题

请问这个问题解决了吗,我也是计算余弦相似度有问题

commented