当前位置:首页>python>Python库巡礼--TextBlob

Python库巡礼--TextBlob

  • 2026-09-08 01:49:31
Python库巡礼--TextBlob
Python的第三方库生态非常强大,涉及数据分析,机器学习,Web开发,可视化,自然语言,图像处理,自动化办公等。通过pip等包管理工具快速安装和升级,大幅提升了开发效率,并推动了跨学科应用的普及!

今天我们来看下TextBlob,这是Python 中一个非常流行且易于使用的自然语言处理(NLP)库。它建立在 NLTK 和 pattern 库之上,为常见的 NLP 任务,比如词性标注、名词短语提取、情感分析、分类、翻译和拼写检查等,提供了简单、直观的 API。

如果你需要快速对文本进行基础处理,而不想深入研究复杂的深度学习模型,TextBlob 实在是一个非常好的选择。其发展历程大致如下

时间节点

核心事件 / 新增特性

2013 年 6 月

项目诞生:首次公开发布。确立了基于 NLTK 和 pattern.en 构建简单 NLP API 的基调

2013 年 10 月

包名正式更改:从 text 重命名为 textblob。避免了与 Python 生态中其他名为 text 的库发生命名空间冲突,沿用至今。

2014 年 9 月

架构解耦:移除内置(vendorized)的 NLTK 副本,改为直接依赖外部安装的 NLTK 3。

2017 年 2 月

移除对 Python 2.6 和 3.3 的支持;新增词干提取 (stem) 方法。顺应 Python 社区向 Python 3 迁移的大趋势,精简了代码库。

2020 年 4 月

弃用翻译功能:标记 translate() 和 detect_language() 为弃用状态。

2024 年 2 月

彻底移除翻译功能及 textblob.compat 模块;全面支持 Python 3.8 - 3.12。

2025 - 至今

修复已知 Bug;适配最新的 Python 3.9 - 3.13 及 NLTK >= 3.9。



来几个简单的代码示例吧

示例 1:基础文本处理(分词与词性标注)

TextBlob 可以像字符串一样被实例化,并轻松提取单词、句子和词性。

from textblob import TextBlobtext = "I love natural language processing. It is absolutely fascinating!"blob = TextBlob(text)# 1. 获取句子列表print("句子:", blob.sentences)# 2. 获取单词列表print("单词:", blob.words)# 3. 词性标注 (POS Tagging)# 返回一个元组列表,每个元组包含 (单词, 词性标签)print("词性标注:", blob.tags)

示例 2:名词短语提取

在信息提取时,我们通常需要找出文本中的核心名词短语。

from textblob import TextBlobtext = "The quick brown fox jumps over the lazy dog in the beautiful park."blob = TextBlob(text)# 提取名词短语print("名词短语:", blob.noun_phrases)# 输出: ['quick brown fox', 'lazy dog', 'beautiful park']

示例 3:情感分析 (Sentiment Analysis)

TextBlob 可以分析文本的情感极性(Polarity)和主观性(Subjectivity)。

  • Polarity(极性):范围在 [-1.0, 1.0],-1 表示非常负面,1 表示非常正面。
  • Subjectivity(主观性):范围在 [0.0, 1.0],0.0 表示非常客观(事实),1.0 表示非常主观(观点/情感)。
from textblob import TextBlobpositive_text = "I absolutely love this product, it is amazing!"negative_text = "This is the worst experience I have ever had."neutral_text = "The sky is blue and the grass is green."for text in [positive_text, negative_text, neutral_text]:    blob = TextBlob(text)    print(f"文本: {text}")    print(f"情感分析结果: {blob.sentiment}")    print("-" * 40)

示例 4:拼写检查与纠正

TextBlob 内置了拼写纠错功能,基于概率模型来猜测正确的单词。

from textblob import TextBlob, Word# 纠正整段文本的拼写misspelled_text = "I havv goood speling and I luv Python!"blob = TextBlob(misspelled_text)print("纠正后:", blob.correct())# 检查单个单词的拼写建议word = Word("definately")# 返回一个列表,包含可能的正确拼写及其置信度print("拼写建议:", word.spellcheck()) 

示例 5:翻译与语言检测

TextBlob 集成了 Google Translate API,可以进行多语言翻译和语言检测。(使用翻译功能时需联网)

from textblob import TextBloben_blob = TextBlob("Hello, how are you doing today?")# 1. 检测语言print("当前语言:", en_blob.detect_language())  # 输出: en# 2. 翻译成中文zh_blob = en_blob.translate(to='zh-CN')print("中文翻译:", zh_blob)# 3. 从其他语言翻译成英文fr_blob = TextBlob("Bonjour le monde")en_blob2 = fr_blob.translate(from_lang='fr', to='en')print("法语转英语:", en_blob2)

过往文章
以一羽之轻,掀万重风浪
编程竞赛中的金刚境--前缀和
Python编程小技巧--用Python查询天气
其实,在手机上也是可以写Python的!
改变世界的17个方程,来看看你曾学过哪些
Python可视化 | 无需游戏引擎,用 tkinter 手写一个物理模拟器
Python编程基础算法--斐波那契数列的矩阵算法
优质科普书推荐 | 普林斯顿数学分析读本:当直觉遇见严谨,数学终于不再高冷
Python 库巡礼 | Tornado:异步高并发的“轻量引擎”
最速降线:比直线更快的曲线
Python与办公自动化--批量生成报告/通知
计算机科学人物志 | 匈牙利算法:二分图匹配的百年寻踪
VS Code插件观察 | GitLens :给代码加上“时间轴”,让提交记录不再沉默

最新文章

随机文章