欢迎关注微信同名微信官方账号:艾小白简介。跟着博主的脚步,每天进步一点点。
本文介绍了用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
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。