nlp 中文文本纠错 | 您所在的位置:网站首页 › 文本纠错EMNLP › nlp 中文文本纠错 |
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 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 import xmnlp as xm doc = """自然语言处理: 是人工智能和语言学领域的分支学科。 在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。 自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。""" xm.set_userdict('/path/to/userdict.txt') print(xm.seg(doc, hmm=True)) result: ['自然语言', '处理', ':', '是', '人工智能', '和', '语言学', '领域', '的', '分支', '学科', '。', '在', '这此', '领域', '中', '探讨', '如何', '处理', '及', '运用', '自然语言', ';', '自然语言', '认知', '则', '是', '指让', '电脑', '“', '懂', '”', '人类', '的', '语言', '。', '自然语言', '生成', '系统', '把', '计算机', '数据', '转化', '为', '自然语言', '。', '自然语言', '理解', '系统', '把', '自然语言', '转化', '为', '计算机程序', '更', '易于', '处理', '的', '形式', '。'] 词性标注 example 1 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 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 from xmnlp import XmNLP doc = """这理风景绣丽,而且天汽不错,我的心情各外舒畅!""" xm = XmNLP(doc) print(xm.checker()) ''' xm = XmNLP() print(xm.checker(doc)) ''' example 2 import xmnlp as xm doc = """这理风景绣丽,而且天汽不错,我的心情各外舒畅!""" print(xm.checker()) result: 这里风景秀丽,而且天气不错,我的心情格外舒畅! 文本摘要 example 1 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 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 from xmnlp import XmNLP doc = """这件衣服的质量也太差了吧!一穿就烂!""" xm = XmNLP(doc) print(xm.sentiment()) ''' xm = XmNLP() print(xm.sentiment(doc)) ''' example 2 import xmnlp as xm doc = """这件衣服的质量也太差了吧!一穿就烂!""" print(xm.sentiment()) 自定义模型 支持用户使用自己的语料训练模型,训练例子在examples 的trainer_*中 训练语料 更多 Reference: 本项目采用的数据主要有: 人民日报语料 结巴分词分词数据 snownlp情感分析语料 本项目受到以下项目的启发 License |
CopyRight 2018-2019 实验室设备网 版权所有 |