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
大模型文生图是一种基于人工智能大模型的技术,能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道,有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口࿰…...
【大模型】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…...
用TWH8778和LM317手搓一个可调开关电源:从12V固定到0-30V可调的完整制作流程
从零打造智能可调电源:TWH8778与LM317的混合架构实战指南 在电子制作和原型开发中,一个可靠的直流电源就像厨师手中的刀具——不同任务需要不同的"刀刃"。传统线性稳压电源虽然输出干净但效率低下,而开关电源高效却可能带来恼人的…...
创业团队如何利用 Taotoken 低成本试错不同大模型
创业团队如何利用 Taotoken 低成本试错不同大模型 1. 初创团队面临的多模型选型挑战 对于资源有限的创业团队而言,快速验证产品原型是生存的关键。在构建基于大语言模型的应用时,团队往往面临模型选型难题:不同模型在理解能力、生成质量、响…...
M9A:解放双手的《重返未来:1999》智能自动化助手——如何每周节省8小时游戏时间?
M9A:解放双手的《重返未来:1999》智能自动化助手——如何每周节省8小时游戏时间? 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A 在《重返未…...
维普AIGC率过高怎么解?双效工具同步搞定查重与AI痕迹
毕业季双重检测压力陡增,不少同学熬夜反复改稿,维普查重标红迟迟消不掉,AIGC疑似率更是居高不下,越改越乱不说,还容易打乱论文核心逻辑。其实完全不用死磕手动改写,现在多款专业双效降重工具已经能实现“一…...
Linux下部署MySQL5.7.35
1.MySQL下载 (1)登录到以下网站 https://downloads.mysql.com/archives/community/ (2)选择需要的版本 ,以及操作系统 ,这里是Red Hat Enterprise Linux / Oracle Linux 5.7.35 版本。 (3&…...
Halcon三维点云匹配实战:从一堆散乱零件到机械臂精准抓取(附完整代码)
Halcon三维点云匹配实战:从散乱零件到机械臂精准抓取的工业级解决方案 在工业自动化产线上,散乱零件的精准识别与抓取一直是困扰工程师的难题。传统二维视觉系统难以应对零件堆叠、姿态多变的情况,而三维点云技术正成为破解这一困局的关键钥匙…...
AegisAI:为AI编程助手构建人机协同安全授权系统
1. 项目概述:为AI助手戴上“紧箍咒”如果你和我一样,深度依赖Cursor、Windsurf这类AI编程助手来提升开发效率,那你一定也经历过那种“心惊肉跳”的时刻:AI助手在理解了你的需求后,自信满满地敲下了一行rm -rf ./build或…...
Android无线技术深度解析:蓝牙、WiFi与NFC开发实践与面试指南
在移动互联网时代,蓝牙、WiFi和NFC作为核心无线技术,已成为Android系统开发的关键领域。本文基于Android开发工程师(无线技术方向)的职责要求,深入探讨这些技术的实现原理、开发挑战、优化方法,并附有面试常见问题与答案。文章旨在帮助开发者提升实战能力,内容涵盖源码级…...
NPS内网穿透实战:从Docker容器到公网访问,一条命令搞定服务端与客户端
NPS内网穿透实战:从Docker容器到公网访问,一条命令搞定服务端与客户端 在云原生技术席卷全球的今天,容器化部署已成为现代运维的标准范式。对于需要频繁进行内网服务调试的开发者而言,如何安全、高效地将本地开发环境暴露至公网&…...
开源翻译管理系统Transmart:构建高效本地化工作流
1. 项目概述:一个面向翻译与本地化工作流的开源利器如果你是一名经常需要处理多语言文档的开发者、内容创作者或本地化项目经理,那么对“翻译管理”这个词一定不陌生。它远不止是把A语言变成B语言那么简单,背后涉及到术语库维护、翻译记忆复用…...
