python下NLP工具有很多 jieba, nltk, ltp 等, 虽然他们很强大,但是提供的功能比较分散,而且通常模型比较大。为了方便平时的处理工作,我尝试找了一些集成工具包,发现snownlp还可以,它的分词是基于TnT的,总得来说分词效果逊色于基于词典的分词(比如jieba)。所以决定自己写一个包xmnlp,主打轻量快捷。
中文分词 & 词性标注: 基于词典构建DAG图,然后采用动态规划的思想求得最大概率路径(jieba分词采用了反向输出,我采用了正向加权反向输出的方式,使得正反向共同影响分词效果),对于未登录词采用HMM+Viterbi处理
文本纠错:采用了bi-gram + levenshtein实现
文本摘要 & 关键词提取:textrank
情感分析:naive bayes
文本转拼音:Trie 树检索
以下展示xmnlp的功能效果,不同模块的原理之后的文章会补上。
[ In ]
自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。
自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。
[ 分词 ]
自然语言处理 / : / 是 / 人工智能 / 和 / 语言学 / 领域 / 的 / 分支 / 学科 / 。 / 在 / 这此 / 领域 / 中 / 探讨 / 如何 / 处理 / 及 / 运用 / 自然 / 语言 / ; / 自然 / 语言 / 认知 / 则 / 是 / 指让 / 电脑 / “ / 懂 / ” / 人类 / 的 / 语言 / 。 / 自然 / 语言 / 生成 / 系统 / 把 / 计算机 / 数据 / 转化 / 为 / 自然 / 语言 / 。 / 自然 / 语言 / 理解 / 系统 / 把 / 自然 / 语言 / 转化 / 为 / 计算机程序 / 更 / 易于 / 处理 / 的 / 形式 / 。
[ 标注 ]
自然语言处理 un / : un / 是 v / 人工智能 nw / 和 c / 语言学 n / 领域 n / 的 uj / 分支 n / 学科 n / 。 un / 在 p / 这此 un / 领域 n / 中 f / 探讨 v / 如何 r / 处理 v / 及 c / 运用 vn / 自然 d / 语言 n / ; un / 自然 d / 语言 n / 认知 v / 则 d / 是 v / 指让 un / 电脑 n / “ un / 懂 v / ” un / 人类 n / 的 uj / 语言 n / 。 un / 自然 d / 语言 n / 生成 v / 系统 n / 把 p / 计算机 n / 数据 n / 转化 v / 为 p / 自然 d / 语言 n / 。 un / 自然 d / 语言 n / 理解 v / 系统 n / 把 p / 自然 d / 语言 n / 转化 v / 为 p / 计算机程序 n / 更 d / 易于 v / 处理 v / 的 uj / 形式 n / 。 un
[ In ]
这理风景绣丽,而且天汽不错,我的心情各外舒畅!
[ Out ]
这里风景秀丽,而且天气不错,我的心情格外舒畅!
[ In ]
自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。
自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。
[ 关键词 ]
('自然语言', 2.2069266136741321),
('处理', 1.5572478858429686),
('是', 1.4182222157079281),
('系统', 1.2431338210535401),
('转化', 1.1532093387566391)
[ 摘要 ]
自然语言理解系统把自然语言转化为计算机程序更易于处理的形式
[ In ]
这件衣服的质量也太差了吧!一穿就烂!
[ Out ]
0.009959694621645698
[ In ]
面朝大海,春暖花开
[ Out ]
['mian', 'zhao', 'da', 'hai', ',', 'chun', 'nuan', 'hua', 'kai']
前往 - > 项目github地址