Python轻量级中文NLP工具xmnlp如何使用
为了方便工作学习,于是乎借鉴了一些项目并结合自己想法写了个 nlp 工具包。
小明 nlp 目前支持:
- 中文分词,词性标注
- 文本纠错
- 情感分析
- 文本转拼音
中文分词主要基于词典,算法采用了与结巴分词类似的 DAG 图,采用了 HMM+Viterbi 新词识别, 支持自定义词典
文本纠错采用了 bigram + levenshtein 距离实现,文本纠错我主要用在 chatbot 和智能硬件中
项目地址:xmnlp
Python轻量级中文NLP工具xmnlp如何使用
4 回复
先生?
xmnlp是个挺方便的轻量级中文NLP库,虽然现在维护不太活跃了,但基础功能用起来还行。下面给你几个核心功能的代码示例,直接跑就能用。
1. 安装和基础分词
# 先安装
# pip install xmnlp
import xmnlp
text = "今天天气真好,我们一起去公园玩吧!"
# 分词
tokens = xmnlp.seg(text)
print("分词结果:", tokens)
# 输出: ['今天', '天气', '真好', ',', '我们', '一起', '去', '公园', '玩', '吧', '!']
2. 词性标注
# 词性标注
tags = xmnlp.tag(text)
print("词性标注:", list(tags))
# 输出: [('今天', 't'), ('天气', 'n'), ('真好', 'a'), (',', 'w'), ('我们', 'r'), ('一起', 'd'), ('去', 'v'), ('公园', 'n'), ('玩', 'v'), ('吧', 'y'), ('!', 'w')]
3. 情感分析
# 情感分析(返回正面概率)
sentiment = xmnlp.sentiment("这部电影太好看了!")
print("正面概率:", sentiment)
# 输出: 0.99 (值越接近1越正面)
sentiment2 = xmnlp.sentiment("这产品真难用")
print("负面概率:", 1 - sentiment2)
4. 关键词提取
# 关键词提取
doc = """自然语言处理是人工智能的重要方向。
中文NLP有很多实际应用场景。"""
keywords = xmnlp.keyword(doc, topk=3)
print("关键词:", keywords)
5. 自定义词典
# 添加自定义词典
xmnlp.set_userdict('/path/to/user_dict.txt')
# 词典格式:每行"词语 词频 词性",如"机器学习 100 n"
6. 拼音和纠错
# 拼音转换
pinyin = xmnlp.pinyin("中文")
print("拼音:", pinyin) # ['zhong', 'wen']
# 文本纠错(简单拼写检查)
corrected = xmnlp.checker("这了天气很好")
print("纠错建议:", corrected)
需要注意的几点:
- 默认模型会自动下载到
~/.xmnlp/目录 - 第一次运行某个功能时会下载对应模型,稍等一会儿
- 如果遇到下载问题,可以手动从GitHub下载模型放到对应目录
这个库适合快速原型开发和小项目,如果要做生产级应用,建议看看jieba、pkuseg或者transformers这些更成熟的工具。不过对于简单的中文文本处理,xmnlp还是挺省事的。
总结:基础功能够用,适合轻量级任务。
厉害了
一直用结巴的 STAR 一下。

