当前位置: 首页 > news >正文

Python 自然语言处理(NLP)和文本挖掘的常规操作过程

Python 自然语言处理(NLP)和文本挖掘

自然语言处理(NLP)和文本挖掘是数据科学中的重要领域,涉及对文本数据的分析和处理。Python 提供了丰富的库和工具,用于执行各种 NLP 和文本挖掘任务。以下是一些常见的任务和实现方法,结合代码示例和理论解释。

1. 常见的 NLP 和文本挖掘任务

1.1 文本预处理

文本预处理是 NLP 的第一步,包括去除噪声、分词、去除停用词等。

Python复制

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
import string# 下载 NLTK 数据
nltk.download('punkt')
nltk.download('stopwords')# 示例文本
text = "This is a sample text for natural language processing. It includes punctuation and stopwords."# 分词
tokens = word_tokenize(text)# 去除标点符号和停用词
stop_words = set(stopwords.words('english'))
filtered_tokens = [word for word in tokens if word.lower() not in stop_words and word not in string.punctuation]print(filtered_tokens)
1.2 词性标注

词性标注是将文本中的单词标注为名词、动词、形容词等。

Python复制

from nltk import pos_tag# 词性标注
tagged = pos_tag(filtered_tokens)
print(tagged)
1.3 命名实体识别(NER)

命名实体识别是识别文本中的实体,如人名、地名、组织名等。

Python复制

from nltk import ne_chunk# 命名实体识别
entities = ne_chunk(tagged)
print(entities)
1.4 情感分析

情感分析是判断文本的情感倾向,如正面、负面或中性。

Python复制

from textblob import TextBlob# 示例文本
text = "I love this product! It is amazing."
blob = TextBlob(text)# 情感分析
sentiment = blob.sentiment
print(sentiment)
1.5 主题建模

主题建模是发现文本数据中的主题。

Python复制

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation# 示例文本
documents = ["This is a sample document.", "Another document for NLP.", "Text mining is fun."]# 向量化
vectorizer = CountVectorizer(stop_words='english')
X = vectorizer.fit_transform(documents)# 主题建模
lda = LatentDirichletAllocation(n_components=2, random_state=42)
lda.fit(X)# 输出主题
for topic_idx, topic in enumerate(lda.components_):print(f"Topic {topic_idx}:")print(" ".join([vectorizer.get_feature_names_out()[i] for i in topic.argsort()[:-11:-1]]))
1.6 文本分类

文本分类是将文本分配到预定义的类别中。

Python复制

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline# 示例数据
texts = ["I love this product!", "This is a bad product.", "I am happy with the service."]
labels = [1, 0, 1]  # 1 表示正面,0 表示负面# 创建分类器
model = make_pipeline(TfidfVectorizer(), MultinomialNB())# 训练模型
model.fit(texts, labels)# 预测
predicted_labels = model.predict(["I am very satisfied with the product."])
print(predicted_labels)

2. 文本挖掘任务

2.1 文本聚类

文本聚类是将文本分组到不同的类别中。

Python复制

from sklearn.cluster import KMeans# 向量化
vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(documents)# 聚类
kmeans = KMeans(n_clusters=2, random_state=42)
kmeans.fit(X)# 输出聚类结果
print(kmeans.labels_)
2.2 关键词提取

关键词提取是从文本中提取重要的词汇。

Python复制

from rake_nltk import Rake# 示例文本
text = "Natural language processing is a field of study that focuses on the interactions between computers and human language."# 关键词提取
rake = Rake()
rake.extract_keywords_from_text(text)
keywords = rake.get_ranked_phrases()
print(keywords)
2.3 文本摘要

文本摘要是从长文本中提取关键信息。

Python复制

from gensim.summarization import summarize# 示例文本
text = "Natural language processing is a field of study that focuses on the interactions between computers and human language. It involves various tasks such as text classification, sentiment analysis, and machine translation."# 文本摘要
summary = summarize(text)
print(summary)

3. 总结

Python 提供了丰富的库和工具,用于执行各种自然语言处理和文本挖掘任务。通过使用 NLTK、TextBlob、Scikit-learn、Gensim 等库,你可以轻松地进行文本预处理、词性标注、情感分析、主题建模、文本分类、文本聚类、关键词提取和文本摘要等任务。希望这些代码示例和解释能帮助你更好地理解和应用自然语言处理和文本挖掘技术。

相关文章:

Python 自然语言处理(NLP)和文本挖掘的常规操作过程

Python 自然语言处理(NLP)和文本挖掘 自然语言处理(NLP)和文本挖掘是数据科学中的重要领域,涉及对文本数据的分析和处理。Python 提供了丰富的库和工具,用于执行各种 NLP 和文本挖掘任务。以下是一些常见的…...

传统数组 vs vector和list

传统的数组: int arr[10]; 传统的数组有以下的缺点: 1)长度不可修改 2)内存分配 局部数组:把数组定在函数内, 数组便是局部变量,故会被分配在栈上 但栈的大小是有限制的 ,故其在内存中不能超…...

CRMEB 多商户版v3.0.1源码全开源+PC端+Uniapp前端+搭建教程

一.介绍 crmeb多商户是一套B2B2C商家入驻模式的平台多商户商城系统,系统支持平台自营、联营、招商等多种运营模式,可满足企业新零售、批发、分销、预售、O2O、多店、商铺入驻等各种业务需求。 后端全开源、uniapp多端可编译! 二、搭建教程…...

【ESP32】ESP-IDF开发 | WiFi开发 | HTTPS服务器 + 搭建例程

1. 简介 1.1 HTTPS HTTPS(HyperText Transfer Protocol over Secure Socket Layer),全称安全套接字层超文本传输协议,一般理解为HTTPSSL/TLS,通过SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信…...

Vue2 中使用 UniApp 时,生命周期钩子函数总结

在 Vue2 中使用 UniApp 时,生命周期钩子函数是一个重要的概念。它允许开发者在特定的时间点运行代码,管理组件的生命周期。以下是 Vue2 中 UniApp 常用的生命周期钩子函数总结: 1. beforeCreate 说明: 组件实例刚被创建,此时数据…...

如何在 Vue 3 中使用 Vue Router 和 Vuex

在 Vue 3 中使用 Vue Router 1. 安装 Vue Router 在项目根目录下,通过 npm 或 yarn 安装 Vue Router 4(适用于 Vue 3): npm install vue-router4 # 或者使用 yarn yarn add vue-router42. 创建路由配置文件 在 src 目录下创建…...

Fiori APP配置中的Semantic object 小bug

在配置自开发程序的Fiori Tile时,需要填入Semantic Object。正常来说,是需要通过事务代码/N/UI2/SEMOBJ来提前新建的。 但是在S4 2022中,似乎存在一个bug,即无需新建也能输入自定义的Semantic Object。 如下,当我们任…...

【触想智能】工业显示器和普通显示器的区别以及工业显示器的主要应用领域分析

在现代工业中,工业显示器被广泛应用于各种场景,从监控系统到生产控制,它们在实时数据显示、操作界面和信息传递方面发挥着重要作用。与普通显示器相比,工业显示器在耐用性、可靠性和适应特殊环境的能力上有着显著的差异。 触想工业…...

BPMN.js 与 DeepSeek 集成:打造个性化 Web 培训项目的秘诀

在数字化时代,Web培训项目的需求日益增长,特别是对于程序员群体,他们寻求高效、灵活的方式来提升自己的技能。本文将深入探讨如何评估BPMN.js与DeepSeek集成方案,以满足开发Web培训项目的需求。 BPMN.js 的优势 BPMN.js是一个专…...

第二月:学习 NumPy、Pandas 和 Matplotlib 是数据分析和科学计算的基础

以下是一个为期 **1 个月(30 天)**的详细学习计划,精确到每天的学习内容和练习作业,帮助你系统地掌握 NumPy、Pandas 和 Matplotlib 的核心功能。 第 1 周:NumPy 基础 Day 1:NumPy 简介与数组创建 学习内…...

安全测试|SSRF请求伪造

前言 SSRF漏洞是一种在未能获取服务器权限时,利用服务器漏洞,由攻击者构造请求,服务器端发起请求的安全漏洞,攻击者可以利用该漏洞诱使服务器端应用程序向攻击者选择的任意域发出HTTP请求。 很多Web应用都提供了从其他的服务器上…...

Flink提交pyflink任务

1.官方文档: flink1.14:https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/cli/#submitting-pyflink-jobs flink1.18:https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/cli/#submitting-pyflink-jobs 2.提…...

对称算法模式之CTR

Note 计数器模式,通过加密递增计数器生成密钥流,后密钥流与明文分组异或得密文分组可并行性进行加密或者解密,性能较高明文可以是任意长度,不需要填充可以直接加密或解密指定块,块与块间不具有依赖关系 参数说明 任…...

Map 和 Set

目录 一、搜索 概念: 模型: 二、Map ​编辑 1.Map 实例化: 2. Map的常见方法: 3.Map的常见方法演示: 1. put(K key, V value):添加键值对 3. containsKey(Object key):检查键是否存在 4.…...

STOMP协议

引用:https://blog.csdn.net/print_helloword/article/details/142597122 什么是STOMP协议 STOMP (simple text oriented messaging protocol): 一种简单的,基于文本的消息传输协议,,,最初是为了解决在消息队列中&am…...

手动埋点的demo

上代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>埋点示例</title> </head><b…...

大模型开发实战篇5:多模态--文生图模型API

大模型文生图是一种基于人工智能大模型的技术&#xff0c;能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道&#xff0c;有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口&#xff0…...

【大模型】DeepSeek 高级提示词技巧使用详解

目录 一、前言 二、DeepSeek 通用提示词技巧 2.1 DeepSeek 通用提示词技巧总结 三、DeepSeek 进阶使用技巧 3.1 DeepSeek一个特定角色的人设 3.1.1 为DeepSeek设置角色操作案例一 3.1.2 为DeepSeek设置角色操作案例二 3.2 DeepSeek开放人设升级 3.2.1 特殊的人设&#…...

【第14章:神经符号集成与可解释AI—14.2 可解释AI技术:LIME、SHAP等的实现与应用案例】

在这里插入图片描述 凌晨三点的ICU病房,值班医生李主任盯着AI辅助诊断系统的红色警报——这套准确率高达95%的深度学习系统,突然建议对一位肾衰竭患者进行肝移植手术。正当医疗组陷入混乱时,李主任打开了系统的"解释模式",屏幕上立即跳出SHAP分析图:模型误将CT…...

Python中使用Minio实现图像或视频文件的存储

目录 一、Minio的基本介绍1.Minio是什么2.Minio的优势 二、使用步骤1.启动Minio2.创建桶3.在Python中使用Minio3.1安装并导入minio包3.2创建mino_utils工具类 三、操作演示1.引入minio_utils工具类2.上传视频文件3.获取视频文件 总结 一、Minio的基本介绍 1.Minio是什么 Mini…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...