HashTable has different value for same key. Key <s> has 1 and trying to add value 4

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32113189/article/details/80432079

今天在处理语料的时候,总是遇到上面的这个问题,我总以为是我的语料里面有重复的词语出现,但是用以前的编译过的程序进行去重的时候发现,文本的总行数是不变的,也就是说,语料里面并没有重复性的词语或字,可是,为什么总会出现这样的情况呢?
我回想以前处理语料出现的种种错误,翻看以前的日志,突然意识到可能是编码搞混了,在https://blog.csdn.net/qq_32113189/article/details/79772618这篇博客里面提到了有关语料处理的问题,里面提到了“utf-8格式”和“utf-8无BOM格式”两种格式,我才想到,原来我的语料都被我改成了“utf-8格式”,而程序所需要的是“utf-8无BOM格式”,这点,希望大家能够注意一下,不要被我们的惯性思维搞混,有的时候,可能是因为编码格式的问题,而怀疑我们本身的语料、甚至是以前能够编译好的代码的问题,接下来,我来普及一下这两种格式的区别:
utf-8+bom比utf-8多了三个字节前缀:0xEF0xBB0xBF,有这三个字节前缀的文本或字符串,程序可以自动判断它为utf-8格式,并按照utf-8格式来解析文本或字符串,否则,一个文本或者字符串在未知编码的情况下,需要按照字符编码规范去一个个验证。
以上我们可知,两种格式之间相差了三个字节,这会导致我们的程序直接编译失败,因此,在我们搞懂如何处理数据之前,一定要记得查看程序需要的编码格式,否则,一旦细节被忽略,我们的工作将会停滞,甚至导致最后的工作功亏一篑。
希望大家有什么处理语料更多的经验和拿出来和大家一起分享,小编也希望能够在大家以往的经验中汲取更好的能力。

猜你喜欢

转载自blog.csdn.net/qq_32113189/article/details/80432079
今日推荐