1 TextBlob简介
TextBlob 是一个基于 Python 的文本处理库,能够让基础的自然语言处理任务变得异常简单。
它提供了一个简单直观的 API,让你能够轻松执行词性标注、名词短语提取、情感分析、文本分类和关键词提取等功能。
值得一提的是,TextBlob 实际上是对 NLTK(自然语言工具包)的一种扩展,这让新手和熟练的开发者能够以更高的层面轻松完成复杂的 NLP 任务。
特性
- 简洁的API:提供了一个用户友好的接口来执行常见的文本处理任务。
- 语言支持:支持多种语言的处理。
- 扩展性:可以轻松扩展和定制,与NLTK库紧密集成。
- 多功能性:支持文本翻译、拼写检查等高级文本处理功能。
地址如下:https://github.com/sloria/TextBlob
2 TextBlob安装
安装TextBlob库:
pip install textblob -i https://pypi.tuna.tsinghua.edu.cn/simple
下载TextBlob所依赖的自然语言处理(NLP)数据。
python -m textblob.download_corpora
TextBlob 支持多种语种的模型,你可以通过安装额外的资源文件来启用它们。
你甚至可以为你的特定需求,创建和添加新的模型。
3 基本功能
3.1 分割句子
TextBlob可以自动将文本分割成句子,这对于需要对文本进行逐句分析的场景非常有用。
from textblob import TextBlob
text = "TextBlob is very easy to use. It makes text processing simple and intuitive."
blob = TextBlob(text)
# 句子分割
for sentence in blob.sentences:
print(sentence)
结果如下:
注意:这只是一个基本的示例,实际上 TextBlob 的分句器可能不如专门的中文分句库如 "jieba" 或 "SnowNLP" 那样准确,但它可以作为一个起点。
3.2 词性标注
定义:标记文本中的每个词的词性(名词、动词、形容词)
用途:
- 分析句子的语法结构
- 进行更高级的文本分析,如句法分析
- 识别和提取特定词的信息
from textblob import TextBlob
text = "The quick brown fox jumps over the lazy dog."
blob = TextBlob(text)
print(blob.tags)
结果如下:
3.3 名词提取
text = "The quick brown fox jumps over the lazy dog."
blob = TextBlob(text)
print(blob.noun_phrases)
结果如下:
3.4 情感分析
极性分析定义:
极性分析可以被看做一个任务,对于给定的一段带有观点的评论性文本,标记出它是整体正面或整体负面评价。
通俗讲,就是判断一段文字是正面,还是负面;赞同,还是反对。
极性分析意义:
极性分析具有很大的商业价值与公共服务价值。
比如对互联网网站、论坛、微博、抖音、快手的舆情检测,产品评价检测等。
from textblob import TextBlob
# 自然语言处理很有趣
text = "Natural Language Processing is fascinating. "
blob = TextBlob(text)
# 情感分析
sentiment = blob.sentiment
print(f"情感:极性 {sentiment.polarity}, 主观性 {sentiment.subjectivity}")
结果如下:
3.5 拼写检查和更正
from textblob import TextBlob
text = "this is a gaod ideo"
blob = TextBlob(text)
# 拼写检查
corrected_blob = blob.correct()
print(f"原文:{text}")
print(f"更正:{corrected_blob}")
结果如下:
3.6 词和句子
from textblob import TextBlob
text = "this is a good idea"
blob = TextBlob(text)
# 词操作
words = blob.words
print("词:", words)
# 复数化和单数化
plural = words.pluralize()
print("复数:", plural)
结果如下:
3.7 词义和词根
定义:获取词的词义、同义词、词根等
用途:
- 理解词的语义和语法形式
- 在信息检索和知识图谱中使用
- 改进文本处理和分析任务
from textblob import Word
word = Word("dragon")
# 词义
synsets = word.synsets
print("词义:", synsets)
# 词根
lemma = word.lemmatize()
print(f"词根:{lemma}")
结果如下: