python下NLP工具有很多 jieba, nltk, ltp 等, 虽然他们很强大,但是提供的功能比较分散,而且通常模型比较大。为了方便平时的处理工作,我尝试找了一些集成工具包,发现snownlp还可以,它的分词是基于TnT的,总得来说分词效果逊色于基于词典的分词(比如jieba)。所以决定自己写一个包xmnlp,主打轻量快捷。
功能
中文分词 & 词性标注: 基于词典构建DAG图,然后采用动态规划的思想求得最大概率路径(jieba分词采用了反向输出,我采用了正向加权反向输出的方式,使得正反向共同影响分词效果),对于未登录词采用HMM+Viterbi处理
文本纠错:采用了bi-gram + levenshtein实现
文本摘要 & 关键词提取:textrank
情感分析:naive bayes
文本转拼音:Trie 树检索
以下展示xmnlp的功能效果,不同模块的原理之后的文章会补上。
分词&词性标注
[ In ]
自然语言处