关于分词的一些思考

经过一段时间的尝试,用分词中遇到了不少坑,这里记录一下。。。

我发现分词问题并不存在适用于所有领域的通用解决方案,之前我一直以为给词库里加一些专业词汇能够解决一些特定专业的问题,现在一想自己还是太naive了。举两个例子:一个是对于社交网络的场景,需要解决各种层出不穷的网络用语,比如,六学,怼怂,C位这些词语除了人工添加词库甚至没有很好的解决方案,即便是加入了所谓的新词发现算法。而在机器翻译领域,则不太可能出现这种不规范的词语,多数情况下是比较规整的书面词语,分词的压力相对会小很多。

另一种是时间,单位这种场景:现在的中文分词用的多的还是结巴和HanLP,他们会将日期“2019年1月28日”切分成“2019/年/1/月/28日”,这明显不合理,在能想到的几乎所有应用场景中日期都应该是一个整体,单独切分成数字没有意义,尤其是使用神经网络的时候,需要将各种日期替换为 以减少数据噪音对模型的影响。为了克服这个问题,我不得不用正则表达式进行替换,但是各种日期的格式还真是多,比如“2019年1月28日”,“2019/1/28日”“2019-1-28”,“20190128”,“2019.1.28”,还有这种“二〇一九年一月二十八日”,这种比较规整的还比较好,其他用户千奇百怪的输入格式遇到还是cover不到,暂时只能这样了。

做自然语言处理一段时间的感受就是永远不要试图完美解决某个问题,总会有遗漏。

未来的期待,我个人感觉不能再用HMM那一套方法了,现在网络用语泛滥,你再采用90年代人民日报的标注集训练,显然不能适应现代网络环境。而网络用语标注集的构建本身也是耗时耗力的,退一步讲,即便建成了,网络新用语出现的速度肯定会快于标注集的速度。有两种方案,一种重新回到规则的查词典方案,然后不断用新词发现算法维护一个动态更新的词表。另一种深度学习的方法,但是这还是牵涉到标注集缺失的问题,人民日报的标注集真的不能用,除非你还是只切人民日报的文章,怎么解决这个问题也需要更多思考。

当然,也只是设想一下,真正做起来还是困难~

你可能感兴趣的:(关于分词的一些思考)