# xmnlp
小明NLP —— 轻量级中文自然语言处理工具
A Lightweight Chinese Natural Language Processing Toolkit.
# 功能
* 中文分词 & 词性标注
* 支持繁體
* 支持自定义词典
* 文本纠错
* 文本摘要 & 关键词提取
* 情感分析
* 文本转拼音
# 安装使用
## 支持环境
```
Linux / Mac os (window 未测试)
python2 / python3(推荐)
```
## 安装
```
git clone https://github.com/SeanLee97/xmnlp.git
cd /path/to/xmnlp
pip install -r requirements.txt
python setup.py install
```
## 依赖库
```
numpy
cPickle #(python2.7)
```
# 算法
* 中文分词:
* 构建DAG图
* 动态规划查找,综合正反向(正向加权反向输出)求得DAG最大概率路径
* 使用了SBME语料训练了一套 HMM + Viterbi 模型,解决未登录词问题
* 文本纠错: bi-gram + levenshtein
* 文本摘要: textrank
* 情感分析: naive bayes
# 使用文档
支持两种方式调用
* 通过XmNLP实例对象的方式, 特点:方便使用系统停用词,只需XmNLP(stopword=True) 即可开启
* 通过方法直接调用,特点: 快捷方便
## 分词
### example 1
```python
from xmnlp import XmNLP
doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。"""
xm = XmNLP(doc)
xm.set_userdict('/path/to/userdict.txt')
print(xm.seg(hmm=True))
'''
xm = XmNLP()
xm.set_userdict('/path/to/userdict.txt')
print(xm.seg(doc, hmm=True))
'''
```
### example 2
```python
import xmnlp as xm
doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。"""
xm.set_userdict('/path/to/userdict.txt')
print(xm.seg(doc, hmm=True))
```
result: ['自然语言', '处理', ':', '是', '人工智能', '和', '语言学', '领域', '的', '分支', '学科', '。', '在', '这此', '领域', '中', '探讨', '如何', '处理', '及', '运用', '自然语言', ';', '自然语言', '认知', '则', '是', '指让', '电脑', '“', '懂', '”', '人类', '的', '语言', '。', '自然语言', '生成', '系统', '把', '计算机', '数据', '转化', '为', '自然语言', '。', '自然语言', '理解', '系统', '把', '自然语言', '转化', '为', '计算机程序', '更', '易于', '处理', '的', '形式', '。']
## 词性标注
### example 1
```python
from xmnlp import XmNLP
doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。"""
xm = XmNLP(doc)
xm.set_userdict('/path/to/userdict.txt')
print(list(xm.tag()))
'''
xm = XmNLP()
xm.set_userdict('/path/to/userdict.txt')
print(xm.tag(doc, hmm=True))
'''
```
### example 2
```python
import xmnlp as xm
xm.set_userdict('/path/to/userdict.txt')
doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。"""
print(list(xm.tag(doc)))
```
result: [('自然语言', 'l'), ('处理', 'v'), (':', 'un'), ('是', 'v'), ('人工智能', 'n'), ('和', 'c'), ('语言学', 'n'), ('领域', 'n'), ('的', 'uj'), ('分支', 'n'), ('学科', 'n'), ('。', 'un'), ('在', 'p'), ('这此', 'un'), ('领域', 'n'), ('中', 'f'), ('探讨', 'v'), ('如何', 'r'), ('处理', 'v'), ('及', 'c'), ('运用', 'vn'), ('自然语言', 'l'), (';', 'un'), ('自然语言', 'l'), ('认知', 'v'), ('则', 'd'), ('是', 'v'), ('指让', 'un'), ('电脑', 'n'), ('“', 'un'), ('懂', 'v'), ('”', 'un'), ('人类', 'n'), ('的', 'uj'), ('语言', 'n'), ('。', 'un'), ('自然语言', 'l'), ('生成', 'v'), ('系统', 'n'), ('把', 'p'), ('计算机', 'n'), ('数据', 'n'), ('转化', 'v'), ('为', 'p'), ('自然语言', 'l'), ('。', 'un'), ('自然语言', 'l'), ('理解', 'v'), ('系统', 'n'), ('把', 'p'), ('自然语言', 'l'), ('转化', 'v'), ('为', 'p'), ('计算机程序', 'n'), ('更', 'd'), ('易于', 'v'), ('处理', 'v'), ('的', 'uj'), ('形式', 'n'), ('。', 'un')]
## 文本纠错
### example 1
```python
from xmnlp import XmNLP
doc = """这理风景绣丽,而且天汽不错,我的心情各外舒畅!"""
xm = XmNLP(doc)
print(xm.checker())
'''
xm = XmNLP()
print(xm.checker(doc))
'''
```
### example 2
```python
import xmnlp as xm
doc = """这理风景绣丽,而且天汽不错,我的心情各外舒畅!"""
print(xm.checker())
```
result: 这里风景秀丽,而且天气不错,我的心情格外舒畅!
## 文本摘要
### example 1
```python
from xmnlp import XmNLP
doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。"""
xm = XmNLP(doc, stopword=True) # stopword=True 使用系统停用词
xm.set_stopword('/path/to/user_stopword.txt') # 使用用户自定义停用词
# keyword
print(xm.keyword())
# keyphrase
pirnt(xm.keyphrase())
'''
xm = XmNLP()
# keyword
print(xm.keyword(doc))
# keyphrase
pirnt(xm.keyphrase(doc))
'''
```
### example 2
```python
import xmnlp as xm
xm.set_stopword('/path/to/user_stopword.txt') # 使用用户自定义停用词
doc = """自然语言处理: 是人工智能和语言学领域的分支学科。
在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。"""
# keyword
print(xm.keyword(doc))
# keyphrase
pirnt(xm.keyphrase(doc))
```
result:
keyphrase:
自然语言理解系统自然语言转化计算机程序易于形式
自然语言生成系统计算机数据转化自然语言
自然语言认知指让电脑懂人类语言
这此领域中探讨自然语言
自然语言人工智能语言学领域分支学科
keyword:
[('自然语言', 2.5960552414414391), ('系统', 1.3424759005594451), ('转化', 1.2404934273839832), ('领域', 1.13500044179745), ('语言', 1.0865431295952139)]
## 情感分析
### example 1
```python
from xmnlp import XmNLP
doc = """这件衣服的质量也太差了吧!一穿就烂!"""
xm = XmNLP(doc)
print(xm.sentiment())
'''
xm = XmNLP()
print(xm.sentiment(doc))
'''
```
### example 2
```python
import xmnlp as xm
doc = """这件衣服的质量也太差了吧!一穿就烂!"""
print(xm.sentiment())
```
## 自定义模型
支持用户使用自己的语料训练模型,训练例子在[examples](https://github.com/SeanLee97/xmnlp/tree/master/examples) 的trainer_\*中
## 训练语料
[语料百度网盘](https://pan.baidu.com/s/1UtkaKfNn-R47569VAIeL-A)
## 更多
更多例子请查看[examples](https://github.com/SeanLee97/xmnlp/tree/master/examples)
# Reference:
本项目采用的数据主要有:
* 人民日报语料
* 结巴分词分词数据
* snownlp情感分�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【基于Python+Django的毕业设计】深度学习的web端多格式纠错系统(源码+录像演示+说明).zip 【项目技术】 python+Django+mysql 【实现功能】 本系统的开发主要用到了python和深度学习技术进行开发,实现文本纠错、文本管理、图片纠错、图片管理等功能。本系统的开发从很大程度上解决了写错字的情况,提高了写作的效率和文本的正确率。
资源推荐
资源详情
资源评论
收起资源包目录
【基于Python+Django的毕业设计】深度学习的web端多格式纠错系统(源码+录像演示+说明).zip (455个子文件)
postag.pickle.3 7.22MB
checker.pickle.3 3.71MB
tag.hmm.pickle.3 1.49MB
pinyin.pickle.3 1.15MB
sentiment.pickle.3 464KB
seg.hmm.pickle.3 213KB
bootstrap.min.css 107KB
layui.css 77KB
layui.css 68KB
font-awesome.css 37KB
font-awesome.min.css 30KB
layer.css 15KB
layer.css 15KB
layer.css 14KB
layui.mobile.css 11KB
login.css 10KB
layui.mobile.css 10KB
laydate.css 9KB
laydate.css 8KB
laydate.css 7KB
zhuce.css 4KB
style2.css 4KB
home.css 4KB
mobile.css 2KB
code.css 1KB
code.css 1KB
body.css 946B
font.css 512B
style.css 156B
Thumbs.db 2.31MB
fontawesome-webfont.eot 162KB
iconfont.eot 40KB
iconfont.eot 40KB
tesseract-ocr-w64-setup-v5.3.0.20221214.exe 50.92MB
59.gif 10KB
59.gif 10KB
22.gif 10KB
22.gif 10KB
24.gif 8KB
24.gif 8KB
13.gif 7KB
13.gif 7KB
16.gif 7KB
16.gif 7KB
39.gif 6KB
39.gif 6KB
64.gif 6KB
64.gif 6KB
63.gif 6KB
63.gif 6KB
50.gif 6KB
50.gif 6KB
loading-0.gif 6KB
loading-0.gif 6KB
4.gif 6KB
4.gif 6KB
1.gif 5KB
1.gif 5KB
42.gif 5KB
42.gif 5KB
71.gif 5KB
71.gif 5KB
21.gif 5KB
21.gif 5KB
20.gif 5KB
20.gif 5KB
29.gif 5KB
29.gif 5KB
70.gif 4KB
70.gif 4KB
5.gif 4KB
5.gif 4KB
17.gif 4KB
17.gif 4KB
27.gif 4KB
27.gif 4KB
9.gif 4KB
9.gif 4KB
44.gif 4KB
44.gif 4KB
11.gif 4KB
11.gif 4KB
8.gif 4KB
8.gif 4KB
3.gif 4KB
3.gif 4KB
23.gif 4KB
23.gif 4KB
34.gif 4KB
34.gif 4KB
41.gif 4KB
41.gif 4KB
38.gif 4KB
38.gif 4KB
65.gif 3KB
65.gif 3KB
32.gif 3KB
32.gif 3KB
45.gif 3KB
45.gif 3KB
共 455 条
- 1
- 2
- 3
- 4
- 5
资源评论
职场程序猿
- 粉丝: 5807
- 资源: 3683
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功