blob

欢迎关注微信同名微信官方账号:艾小白简介。跟着博主的脚步,每天进步一点点。

blob

本文介绍了用Python编写的开源文本处理库TextBlob的使用。它可以用来执行许多自然语言处理任务,如词性标注、名词成分提取、情感分析、文本翻译等。

简介

TextBlob是一个用Python编写的开源文本处理库。它可以用来执行许多自然语言处理任务,如词性标注、名词成分提取、情感分析、文本翻译等。

Github地址:https://github.com/sloria/TextBlob

官方文件:https://textblob.readthedocs.io/en/dev/

实战

安装

# installation: pip安装文本blob

#配置国内源代码安装:pip安装文本blob-I https://pypi.tuna.tsinghua.edu.cn/simple.

#参考:https://textblob.readthedocs.io/en/dev/quickstart.html

从文本Blob导入文本blob

text = ‘我喜欢自然语言处理!“我不像鱼!”

blob = TextBlob(文本)

2.词性标注

blob .标签

[(‘我’,’ PRP ‘),

(《爱》,《VBP》),

(“自然”,“JJ”),

(“语言”,“NN”),

(‘处理’,’ NN ‘),

(“我”,“PRP”),

(‘ am ‘,’ VBP ‘),

(‘ not ‘,’ RB ‘),

(‘喜欢’,’在’),

(‘鱼’,’ NN’)]

3.短语提取

np = blob .名词_短语

对于np中的w:

打印(w)

自然语言处理

4.计算句子的情感价值

对于blob中的句子,句子:

打印(句子+’-& gt;’+ str(句子.情感.极性))

我喜欢自然语言处理!-& gt;0.3125

我不像你!-& gt;0.0

5.标记化(将文本切割成句子或单词)

token = blob.words

对于令牌中的w:

打印(w)

自然的

语言

处理

喜欢

sentence = blob.sentences

对于句子中的s:

印刷品

我喜欢自然语言处理!

我不像鱼!

6.单词变形

token = blob.words

对于令牌中的w:

#可变复数

print(w .复数())

#改变单数

print(w.singularize())

我们

自然的事情

自然的

语言

语言

加工

处理

我们

航空材料的技术规格(Aerospace Material Specification的缩写)

nots

喜欢

喜欢

7.词干化

从textblob导入Word

w = Word(‘去了’)

print(w.lemmatize(‘v ‘))

w =单词(“章鱼”)

print(w.lemmatize())

章鱼

8.整合WordNet

从textblob.wordnet导入谓词

word = Word(‘章鱼’)

syn_word = word.synsets

对于syn_word中的syn:

打印(合成)

Synset(‘octopus.n.01 ‘)

Synset(‘octopus.n.02 ‘)

#指定返回的同义词集是动词。

syn_word1 = Word(“hack “)。get_synsets(pos=VERB)

对于syn_word1中的syn:

打印(合成)

Synset(‘chop.v.05 ‘)

Synset(‘hack.v.02 ‘)

Synset(‘hack.v.03 ‘)

Synset(‘hack.v.04 ‘)

Synset(‘hack.v.05 ‘)

Synset(‘hack.v.06 ‘)

Synset(‘hack.v.07 ‘)

Synset(‘hack.v.08 ‘)

#具体定义见synset。

字(“美”)。定义

[‘使感官愉悦或者令人兴奋的智力或者情感上的钦佩’,

(指天气)非常令人愉快’]

9.拼写纠正

我喜欢自然语言处理!

sen = TextBlob(sen)

打印(sen.correct())

我喜欢自然语言处理!

# Word.spellcheck()返回拼写建议和置信度。

w1 =单词(“好”)

w2 =单词(“上帝”)

w3 = Word(‘gd ‘)

print(w1.spellcheck())

print(w2.spellcheck())

print(w3.spellcheck())

[(‘好’,1.0)]

[(‘上帝’,1.0)]

[(‘go ‘,0.586139896373057),(‘ god ‘,0.23510362694300518),(‘ d ‘,0.11658031088082901),(‘ g ‘,0.03626943005181347),(‘ ed ‘,0.009067357512953367),(‘ rd ‘,0.

10.从语法上分析

text = TextBlob(‘I lvoe自然语言处理!’)

print(text.parse())

I/PRP/B-NP/O lvoe/NN/I-NP/O naturl/NN/I-NP/O语言/NN/I-NP/O处理/NN/I-NP/O!/./O/O

11.N-Grams

text = TextBlob(‘I lvoe自然语言处理!’)

print(text.ngrams(n=2))

[单词列表([‘I ‘,’ lvoe’]),单词列表([‘lvoe ‘,’ natur ‘]),单词列表([‘ natur ‘,’ language’]),单词列表([‘language ‘,’ processing’])]

12.实战中文本块的朴素贝叶斯文本分类

#使用TextBlob的朴素贝叶斯分类器

#参考:https://textblob.readthedocs.io/en/dev/classifiers.html #分类器

# 1.准备数据集:训练集和测试集。

火车= [

…(‘我喜欢这个三明治。’,‘位置’),

…(‘这是个神奇的地方!’,‘位置’),

…(“我对这些啤酒感觉很好。”,‘位置’),

…(‘这是我最好的作品。’,‘位置’),

…(“多棒的景色啊”,“pos”),

…(“我不喜欢这家餐馆”,“不喜欢”),

…(‘我厌倦了这种东西。’,‘否定’),

…(“我处理不了这个,”‘否定’),

…(‘他是我的死敌!’,‘否定’),

…(‘我的老板太可怕了。’,’负’)

…]

测试= [

…(“啤酒不错。”,‘位置’),

…(“我不喜欢我的工作”,“否定”),

…(“我今天感觉不舒服。”,‘否定’),

…(“我觉得很神奇!”,‘位置’),

…(‘加里是我的一个朋友。’,‘位置’),

…(“真不敢相信我会这样做。”,’负’)

…]

# 2.创建一个朴素贝叶斯分类器

从textblob.classifiers导入NaiveBayesClassifier

# 3.把训练投入到训练中

nb_model = NaiveBayesClassifier(火车)

# 4.预测新样本

dev_sen = “这是一个令人惊叹的图书馆!”

print(nb _ model . classify(dev _ sen))

刷卡机

#你也可以计算属于某个类别的概率。

dev _ sen _ prob = nb _ model . prob _ classify(dev _ sen)

print(dev_sen_prob.prob(“pos “))

0.980117820324005

# 5.在测试集上计算模型的准确性

print(nb_model.accuracy(测试))

0.8333333333333334

上传的代码:

1 . https://github . com/yuquanle/StudyForNLP/blob/master/NLP tools/textblobdemo . ipynb

2 . https://github . com/yuquanle/StudyForNLP/blob/master/NLP tools/text blob 2 text classifier . ipynb

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论