hanlp2.1分词器异常

使用hanlp2.1进行分词的时候,当文中中存在空格,经过分词后空格就被忽略掉了。
例如:我喜欢python 语言
经过hanlp2.1处理结果为:{“tok/fine”:[“我”,“喜欢”,“python”,“语言”]},
而经过hanlp2.0处理的结果为:[‘我’, ‘喜欢’, ‘python’, ’ ', ‘语言’]

好问题。

2.1采用了正确的subword tokenize方法,正确方法就是去掉了所有空格、制表符等等,因为BERT等transformers的词表根本不含空格。这也是句法分析、语义分析等高级NLP任务的规范,这些高级任务也是不含空格的。这同样也是多语种分词的规范,英文中的空格根本不是一个单词。

2.0反而采用了错误的tokenize方法,这导致2.0对中英混合的文本效果较差。

至于你似乎需要保留空格,你可以提前将空格替换为一个特殊符号[unused1],然后再替换回来。也可以将空格加入强制模式下的自定义词典dict_force

好的,感谢您的回复。