python库(21):

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 TextBlobtext = "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 词性标注

定义:标记文本中的每个词的词性(名词、动词、形容词)

用途:

  1. 分析句子的语法结构
  2. 进行更高级的文本分析,如句法分析
  3. 识别和提取特定词的信息
from textblob import TextBlobtext = "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 TextBlobtext = "this is a gaod ideo"
blob = TextBlob(text)# 拼写检查
corrected_blob = blob.correct()
print(f"原文:{text}")
print(f"更正:{corrected_blob}")

结果如下:

3.6 词和句子

from textblob import TextBlobtext = "this is a good idea"
blob = TextBlob(text)# 词操作
words = blob.words
print("词:", words)# 复数化和单数化
plural = words.pluralize()
print("复数:", plural)

结果如下:

3.7 词义和词根

定义:获取词的词义、同义词、词根等

用途:

  • 理解词的语义和语法形式
  • 在信息检索和知识图谱中使用
  • 改进文本处理和分析任务
from textblob import Wordword = Word("dragon")# 词义
synsets = word.synsets
print("词义:", synsets)# 词根
lemma = word.lemmatize()
print(f"词根:{lemma}")

结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux]如何在虚拟机安装Ubuntu?(小白向)

一、我们为什么要在虚拟机中安装Ubuntu? 在虚拟机中安装系统主要是为了让一个系统与我们原本的系统隔离,不管是想运行一些不安全的软件,或者是想运行一些独特的操作系统,我们都可以选择使用虚拟机来安装和隔离这些操作系统。如果你是一位Lin…

编译报错declaration may not appear after executable statement in block

这个错误是因为在代码块中,声明语句不能出现在可执行语句之后。也就是说,如果你在一个代码块中先写了一些可执行语句,再写了一 些声明语句,就会出现这个错误。 解决方法:将声明语句放在可执行语句之前,或者…

跨越语言障碍:2024四款实用在线翻译工具评测!

随着技术的不断进步,各种在线翻译工具层出不穷,帮助我们轻松跨越语言的鸿沟。今天,让我们一起探索几款非常实用的在线翻译工具! 福昕在线翻译 直达链接: https://fanyi.pdf365.cn/ 福昕在线翻译是一款专注于文档翻…

【C++】函数模板特化:深度解析与应用场景

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

[LeetCode]46.全排列(python)

1.代码 from typing import List class Solution:def permute(self, nums: List[int]) -> List[List[int]]:result: List[List[int]] [] length len(nums)def fill(n: int, nums: List[int]):if n length:result.append(nums[:]) returnfor i in range(n, length):num…

JVM-Java的四种引用

引用分析 无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判定对象是否可被回收都与引用有关,Java 提供了四种强度不同的引用类型 强引用: 被强引用关联的对象不会被回收,只有所…

SQLite 插入数据并返回自增ID

要插入数据并返回自增ID,我们可以使用SQLite的last_insert_rowid()函数。这个函数返回了最后一次插入操作的自增ID。 下面我们通过一个示例来演示如何插入数据并返回自增ID。 首先,创建一个表来存储学生信息: CREATE TABLE students (id I…

【drools】8.44 例子ubuntu24.04 运行;IntelliJ 修复java: 错误: 不支持发行版本 5

首先是要有jdk 安装:这里是oracle的,不是openjdk ,【ubuntu24.04】安装oracle javasdk– 官方说可以直接跑 root@k8s-master-pfsrv:/home/zhangbin/perfwork/drools/drools-distribution-8.44.0.Final/examples# ./runExamples.sh Usage: ./runExamples.sh For example: .…

dubbo:dubbo+nacos整合springcloud gateway实现网关(三)

文章目录 0. 引言1. 集成gateway网关1.1 实操步骤1.2 dubbo提供者注册到nacos出现两个实例的问题 2. 源码3. 总结 0. 引言 上次我们讲到使用zookeeper作为注册中心搭建dubbo微服务框架,但是我们还缺少一个服务总入口,也就是我们的网关服务。所以今天我们…

速盾:cdn能防ip追踪吗?

CDN,即内容分发网络(Content Delivery Network),是一种通过网络分布在多个地理位置的服务器集群来提供高效内容传输服务的技术。CDN的主要目的是通过就近提供内容来加快网站的加载速度,并减少因服务器过载而导致的延迟…

DataWhale AI夏令营-《李宏毅深度学习教程》笔记

DataWhale AI夏令营-《李宏毅深度学习教程》笔记 第三章 深度学习基础补充一些基础临界点及其种类逃离临界点方法批量动量自适应学习率学习率调度 之前一直接触的LLM大模型做一些应用,或者传统的自然语言处理,都是直接拿别人的模型用,要不就是…

2024.8.23 刷题总结

2024.8.23 **每日一题** 198.打家劫舍,这道题是一道简单的入门动态规划问题,根据题目意思,我们不能取数组中相邻的元素然后还必须满足总结果最大,所以我们可以维护一个数组,用来保存在数组每个位置之前能取到的最大值&…

【openwrt-21.02】openwrt-21.02 T750 按键GPIO自动进入刷机模式功能实现

Openwrt版本 NAME="OpenWrt" VERSION="21.02-SNAPSHOT" ID="openwrt" ID_LIKE="lede openwrt" PRETTY_NAME="OpenWrt 21.02-SNAPSHOT" VERSION_ID="21.02-snapshot" HOME_URL="https://openwrt.org/" …

k8s 部署Ruoyi-Vue-Plus之vue打包镜像

在这里插入图片描述 在这篇文章中,解释如何通过容器化(Docker)来打包和部署前端项目,替代之前手动维护版本的方式 1.nginx配置 在 ruoyi-ui 项目的根目录下创建一个 nginx.conf 文件, 我没有使用monitor-admin和xxljob-admin模块…

maven 从特定module(项目)重新开始编译

前言 一般情况下,多module的项目数量过少,可能不需要使用到这个功能,但是当项目过多就很有必要,例如有20个module 编译到最后一个报错了,那重新构建的话 就会从第一个项目再来一遍,是不是很烦躁。 实践 …

语言基础/单向链表的构建和使用(含Linux中SLIST的解析和使用)

文章目录 概述简单的链表描述链表的术语简单实现一个单链表 Linux之SLIST机理分析结构定义单链表初始化单链表插入元素单链表遍历元素单链表删除元素 Linux之SLIST使用实践纯C中typedef重命名带来的问题预留 概述 本文讲述了数据结构中单链表的基本概念,头指针、头…

分发糖果

题目 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧…

前端面试——什么是原型和原型链

背景 最近看到了很有意思的东西,原型和原型链 我们首先看看MDN怎么讲:继承与原型链 - JavaScript | MDN 不过文档里面也没有给出原型的定义??? 不过里面提到原型链,是指对象层层向上寻找原型形成的路径…

CPP中lamada表达式作用一览[more cpp-6]

一般语法 CPP中的lambda 表达式的本质就是匿名函数,它可以在代码中定义一个临时的、局部的函数.为什么需要lamada表达式? 因为命名是个大问题 想名字以及避免命名冲突是很劳神费力的事,这就是lamada表达式的优点(lamada优点表现为简洁性)总…

如何在不格式化的情况下解锁 Android 智能手机密码

如果您忘记密码,您的 Android 移动设备将锁定您。发生这种情况时,通常可以通过恢复出厂设置来重新获得对设备的访问权限。可悲的是,这将导致所有数据丢失。下面列出的是解锁锁定的Android 手机而不会丢失任何个人数据的有效方法。 Android 手…