Jintx
Jintx
是的,的确存在二进制补码的问题。但是这个问题应该是发生在低位转高位的时候。 下面将byte转为long的时候,考虑到补码的问题,所以需要&0xff。 ``` public long readUB4() { final byte[] b = this.data; long l = (long) (b[position++] & 0xff); l |= (long) (b[position++] & 0xff) 8)); buffer.put((byte) (i >>> 16));...
好的,谢谢你的解答
的确有第三点的那个Bug。 想请教一下,基于CB模型的实现效果理想吗,同样的语料在gensim上的结果比这份代码好很多
public int EXP_TABLE_SIZE = 1000; private int MAX_EXP = 6; 这个只是把sigmoid函数的值提前算好而已,计算的范围为-6到6,每一个整数划分1000等份。
同样的疑问,不过我使用下面的的公式,效果还是有的。 double g = (1 - word.codeArr[d] - f) * alpha;