Closed siegfang closed 10 years ago
谢谢你的提示。。貌似真的有问题:-)
for (int i = 0; i < words; i++) { double len = 0; key = dis.readUTF(); value = new float[size]; for (int j = 0; j < size; j++) { vector = dis.readFloat(); len += vector * vector; value[j] = vector; }
len = Math.sqrt(len);
for (int j = 0; j < size; j++) {
value[j] /= len;
}
wordMap.put(key, value);
}
应该是这样的。。不过每次log 导致值不会太大。所以没有造成很大的出入。结果也还靠谱。要不是你提醒恐怕我永远发现不了这个bug谢谢
我先用小数据(2001条文本,共47673个词)进行了测试,观察到如果让len不断累加,每次输出的结果变化较小;如果len在每次循环之前置0,则每次输出的结果会有较大的不同。
小弟我刚刚接触DeepLearning,但是下载完工程后,运行出错,发现数据导入出错,能不能告诉我如何把数据导入到程序中,在程序的md文档中,只有测试程序,而没有完整的如何调试通过代码的步骤,您能百忙之中抽空把md文件补充一下吗?谢谢您。
但是两个java版本的word2vec ..有点不合适..如果你愿意是否假如nlpchina来维护java版本的word2vec呢>??
你好!最近一直参看你的Java实现代码,帮助很大。但我在看从文件中加载模型的方法时发现了两个方法loadGoogleModel和loadJavaModel,在loadJavaModel中需要对每个词的向量求模,并将其化为单位向量,但循环在每次开始计算模len之前没有重新置0,这样模len就会不断累加,变得越来越大line116:
这与loadGoogleModel中的相应方法不一样,故来问下这里是不是忘了在循环开始时对len置0?