-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
about converts test to num #48
Comments
谢谢指正。这里确实是有问题,在pytorch版本已经改过来了。 |
那convert函数中 return [vocab.get(w, 0) for w in words] 这里的函数应该是将unk置为0吧。与pad和 我已经看到您的pytorch版本对这些问题修改过啦。但是我现在的任务都是在keras改的,所以还是打算在keras验证效果,再实现pytorch版本,希望您指导一下上述问题。 |
可以的,改成vocab.get(w,1)试试效果有没有提升。
|
我发现一个问题,当取10000 common words作为词汇表的适合,apiseq序列的词汇量特别大,当 |
这种情况可以考虑取前20000的API. 让覆盖率达到90%以上应该就可以了。 |
您的keras版本config中词汇表的大小设置的是10000,因为在您给的pkl文件中dict['<s>']=0,dict['</s>']=0,dict['UNK']=1
其实<s> </s>是相同的,所以len=10000+1
keras版本
convert函数中 return [vocab.get(w, 0) for w in words]在将本文转换为数字的时候,您将unk默认值设置为0,但是pkl中unk是1阿。
而且您的 return pad_sequences(data, maxlen=len, padding='post', truncating='post', value=0)中填充的是0,在pkl中是
和是为0的,与pad的意义是否相符阿?,这里是不是存在问题阿。我刚接触nlp不久,不知道我的理解是不是对的。在我的立即填充应该是pad标识符,就是您pytorch版本中的数据pad=0,<s>=1,</s>=2,<unk>=3,这里的pad就是0。与json数据相符。
关于keras版本的数据我在做将文本转换为数字的数据时(因为文本—>数字映射——>pkl)
dict['<s>']=0,dict['</s>']=0,dict['UNK']=1,我这么改下面的函数合理么?
(1)return [vocab.get(w, 1) for w in words],将默认从vocab.get(w, 0)改成vocab.get(w, 1)
(2)return pad_sequences(data, maxlen=len, padding='post', truncating='post', value=0),这里认为pad填充的就是<s>,</s>?
The text was updated successfully, but these errors were encountered: