nlp 中文文本纠错 您所在的位置:网站首页 文本纠错EMNLP nlp 中文文本纠错

nlp 中文文本纠错

2023-09-12 14:21| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有