Open ghost opened 6 years ago
你debug 下map看看是不是全是乱码,或者试试 1 ,2 这种字符是否有结果。。从头到尾必须utf-8编码。。
用作者给的语料终于跑出结果了,比如输入魔术队,结果为奥兰多 0.8990011, 新泽西 0.83124423, 奇才队 0.82303494, 网队 0.6876496等。 做的处理包括如下: 1.确保语料文本文件是UTF-8编码,不是转换即可。 2.作者提供的语料是用制表符切割的词组,一个句子一行,但是代码是根据空格切割,需要将制表符全部替换成空格。或者修改代码:Learn.java 271行,修改成String[] split = temp.split("[\s ]+");支持同时出现多个半角或全角空格,或制表符分隔。 3.发现一个bug Word2Vec中2个distance方法中,min = result.last().score; 应该放在resultSize < result.size()块里吧。 只有当结果数已经大于resultSize,才能将最后一个得分数赋予min,作为以为最小允许得分。结果数不大于resultSize不需要赋予min。
运行结果: Vocab size: 26 Words in train file: 31 sucess train over! 模型加载成功 [] [] [] [] []