分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。
中文分词指的是将一个汉字序列切分成一个一个单独的词。
在英文的行文中,单词之间是以空格作为自然分界的,而中文只是字、句、段可以以明显的分界符划分。虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂、困难的多。
基于字符串匹配的分词方法
方法很简单易懂,在大词库的基础上进行匹配
基于理解的分词方法
基于统计的分词方法
在给定大量已经分词的文本的前提下(已经标记的语料),利用统计机器学习模型学习词语切分的规律(称为训练),从而实现对未知文本的切分。例如最大概率分词方法和最大熵分词方法等。随着大规模语料库的建立,统计机器学习方法的研究和发展,基于统计的中文分词方法渐渐成为了主流方法。
常见模型:
- N元文法模型(N-gram)
- HMM
- 最大熵模型
- 条件随机场+LSTM(结合传统字符串匹配方法效果很好)
中文分词存在问题,1、歧义,如“南京市 长江大桥”也可以分为“南京 市长 江大桥”,2、网络新词,如“给力”,语料少,基于统计效果不好,词库中没有,基于字符串匹配效果也不好。
一般解决方法,人为添加大量规则
常见分词工具
- jieba
参考详细的Python第三方库jieba(中文分词)入门与进阶(官方文档) - 哈工大LTP
- NLPIR
- THULAC
- BosonNLP