NLP-使用CNN进行文本分类

CNN文本分类原理讲解与实战 前言 卷积神经网络主要用来做图片分类、目标检测等图像相关的任务,这篇文章介绍了它在NLP中的应用:文本分类。本文先介绍了CNN,然后分析了CNN为什么能用在NLP中,最后讲解了Yoon Kim (2014)提出的CNN文本分类模型,代码见github。 什么是卷积 简单介绍一下卷积运算,卷积运算作用就是用滤波器来学习或者检测图片的特征。 看上图,左边是一张5×5的黑白图片,现在是矩阵的形式,每... 阅读详情
  • CNN最初用于处理图像问题,但是在自然语言处理中,使用CNN进行文本分类也可以取得不错的效果。
  • 在文本中,每个词都可以用一个行向量表示,一句话就可以用一个矩阵来表示,那么处理文本就与处理图像是类似的了。

目录


一、卷积神经网络CNN

这里写图片描述
图片来源:Convolutional Neural Networks for Sentence Classification

1.模型说明

  • 在图像处理中使用不同的滤镜可以使图像凸显出不同的特征,我们把新的图像称为卷积后的特征图(第二层)。
  • 将特征图通过pooling层(第三层),这与人眼在看东西的时候会首先看到耀眼的内容一样,通常选取最大值或使用平均值来得到更小的特征图,这有助于计算。
  • 加上任意分类器,如SVM,LSTM等。

2.卷积核

  • 上述所说的滤镜(filter)就是我们的CNN模型中的卷积核,通过使用卷积核可以将我们的原始矩阵(CNN的第一层)变成CNN的第二层。
  • 卷积核是通过学习得到的,不能人工设置,这是很重要的一点,而刚开始的时候卷积核的设置是随机的。

3.CNN4Text

上述模型中是将每个单词作为一个特征向量,使用了二维和三维的卷积核进行Filter,我们也可以使用一整个句子作为特征向量,用一维的Filter进行扫描(1xN),如下图所示:
这里写图片描述
图片来源:七月在线视频课件(包括下图,原始来源我母鸡的了)

4.两种参数调整问题

  • 边界处理:Narrow 和Wide

这里写图片描述

  • Stride size:步伐大小
    这里写图片描述

二、使用实例:word2vec+CNN进行文本分类

1.题目

用每日新闻预测金融市场变化

题目来源:Kaggle竞赛
代码作者:加号


2.数据说明

  • Combined_News_DJIA.csv: 作者将数据combine成27列,第一列是日期,第二列是标签,其他25列是每日的前25条新闻,通过热门程度进行排序得来。
  • 这是一个二分类问题,‘1’表示这一天的股票值上升或保持不变;‘0’表示下降。
  • 训练集和测试集的比例是8:2

3.数据预处理

①导入所需要的库

import pandas as pd
import numpy as np
from sklearn.metrics import roc_auc_score
from datetime import date

②读入数据

data = pd.read_csv('./Combined_News_DJIA.csv')

可以通过data.head()查看数据的长相
③分割数据集

train = data[data['Date'] < '2015-01-01']
test = data[data['Date'] > '2014-12-31']

④处理数据集

X_train = train[train.columns[2:]]
#去掉日期和标签,把每条新闻做成单独的句子,集合在一起
corpus = X_train.val
数据挖掘实战-基于CNN深度学习算法构建英文文本分类模型 随着互联网和社交媒体的快速发展,大量的英文文本数据不断产生,如博客、新闻、论坛帖子等。对这些文本数据进行分类和组织成为一项重要的任务,有助于提高信息检索的效率,更好地理解用户需求,以及为各种应用提供有价值的信息。传统的文本分类方法通常基于手工特征工程,然而这种方法不仅耗时,而且对于大规模和高维度的数据集效果有限。近年来,深度学习技术的崛起为文本分类带来了新的解决方案。卷积神经网络(CNN)作为一种在图像识别中取得巨大成功的深度学习算法,也被广泛应用于自然语言处理领域,特别是文本分类任务。 阅读详情

相关推荐

自然语言处理(NLP) 使用卷积神经网络(CNN)处理中的文本分类问题完整代码+数据可直接运行

自然语言处理(NLP) 使用卷积神经网络(CNN)处理中的文本分类问题完整代码+数据可直接运行

1084

【NLP】第 6 章:用于文本分类的卷积神经网络

在上一章中,我们展示了如何使用 RNN 为文本提供情感分类。然而,RNN 并不是唯一可用于 NLP 分类任务的神经网络架构。卷积神经网络( CNN ) 是另一种这样的架构。RNN 依赖于顺序建模,保持一个隐藏状态,然后逐字逐句逐句遍历文本,在每次迭代时更新状态。CNN 不依赖于语言的顺序元素,而是尝试通过单独感知句子中的每个单词并学习其与句子中围绕它的单词的关系来从文本中学习。虽然出于此处提到的原因,CNN 更常用于对图像进行分类,但它们已被证明在文本分类方面也很有效。虽然我们确实将文本视为一个序列,但我们

sikh_0529的博客 7998

自然语言处理之文本分类:使用卷积神经网络(CNN)进行新闻分类实战

卷积神经网络(CNN)最初是为图像处理设计的,但近年来也被广泛应用于自然语言处理任务,如文本分类。CNN通过卷积层来捕捉局部特征,池化层来减少维度,全连接层来进行分类。在文本分类中,CNN可以捕捉到词的局部组合特征,如短语或句子结构。新闻数据集是文本分类任务中常用的资源,通常包含多个类别的新闻文章。例如,一个数据集可能包括体育、科技、娱乐、政治等不同类别的新闻。这些数据集对于训练和评估自然语言处理模型至关重要,尤其是基于CNN的文本分类模型。模型评估与结果分析是NLP项目中不可或缺的环节。

zhubeibei168的博客 855

基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景)

基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景) 利用word2vec先获取中文测试数据集中各个字的向量表达,再输入卷积网络进行分类。 运行方法 训练 run python train.py to train the cnn with the spam and ham files (only support chinese!) (change the config filepath in FLAGS to your own) 在tensorboard上查看summaries run tensorboard --logdir /{PATH_TO_CODE}/runs/{TIME_DIR}/summaries/ to view summaries in web view 测试、分类 run python eval.py --checkpoint_dir /{PATH_TO_CODE/runs/{TIME_DIR}/checkpoints} 如果需要分类自己提供的文件,请更改相关输入参数 如果需要测试准确率,需要指定对应的标签文件(input_label_file): python eval.py --input_label_file /PATH_TO_INPUT_LABEL_FILE 说明:input_label_file中的每一行是0或1,需要与input_text_file中的每一行对应。 在eval.py中,如果有这个对照标签文件input_label_file,则会输出预测的准确率 推荐运行环境 python 2.7.13 :: Anaconda 4.3.1 (64-bit) tensorflow 1.0.0 gensim 1.0.1 Ubuntu16.04 64bit

Android GNSS 可视卫星星空图/卫星天顶图 原理及画法介绍

目录1 概念介绍2 绘制步骤2.1 获取卫星信息2.2 绘制底图 效果图: 1 概念介绍 首先介绍一下方位角和高度角的概念: 方位角:是从某点的指北(地理北极)方向线起,依顺时针方向到目标方向线之间的水平夹角。 高度角:从一点至观测目标的方向线与水平面间的夹角。 卫星天顶图 即是根据每一颗卫星的方位角和高度角将其画在以观测位置为中心的天顶图上。 天顶图其底图为由外向内的三个圆和四条直线。三个圆由外向内依次代表高度角0°、30°、60°,中心点代表90°;四条直线分别表示正北-正南、东北-西南、正东

x1471898145的博客 1万+

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

【LVGL】从HTML到LVGL:嵌入式UI的设计迁移与落地实践

嵌入式UI迁移实践:从HTML到LVGL 本文介绍了将HTML/CSS设计的UI原型迁移到嵌入式系统(LVGL)的完整流程,重点涉及"HTML→Figma→LVGL"的三步转换方法。具体内容包括: 设计迁移流程:通过Figma作为中间桥梁,将HTML原型转化为标准设计资产,再适配到LVGL库; 工具与参数准备:详细列出了设计迁移所需的工具链和需要提取的核心设计参数; Figma还原步骤:分组件讲解如何在Figma中1:1还原HTML设计,包括标题栏、压力显示区、图表区等核心组件; LVG

ymlmail的博客 1971

避坑指南:vmdk转qcow2镜像时你可能会遇到的5个问题及解决方法

本文详细解析了将VMDK虚拟机镜像转换为QCOW2格式时可能遇到的五大核心问题,特别是启动失败的常见原因及解决方案。内容涵盖格式差异、预处理优化、转换命令详解,并针对根文件系统挂载失败、GRUB引导失败、网卡识别、性能异常等典型故障提供了具体排查与修复步骤,旨在帮助运维人员高效、可靠地完成镜像迁移。

websocket5live的博客 275

从菜鸟到大神:VSCode助力HTML开发全攻略

本文全面介绍 VSCode 在 HTML 开发中的高效应用。先引导读者完成 VSCode 的安装与个性化设置,助其快速适应开发环境;接着推荐 Live Server、Prettier 等实用插件,实现实时预览、代码格式化等功能,提升开发效率。通过详细的开发实战步骤,从新建文件到添加样式,带领读者掌握 HTML 基础结构与常用标签使用。还分享代码片段管理、多人协作等进阶技巧,解决常见开发问题。旨在帮助开发者利用 VSCode,轻松高效完成 HTML 开发,打造优质网页。

邓邓子的博客 3365

PCL 法线定向【2025最新版】

几种法线定向方法的PCL代码实现。

点云侠的博客 2804

26. Fabric2.2 司法存证的智能合约分析

有很多同学反馈 Fabric 智能合约读起来比较费劲,对于新手不友好看不懂,这里选择一个司法存证的智能合约,阅读、分析智能合约基础框架与核心流程代码,培养大家智能合约编写的方法论。

菜鸟的博客 1339

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: NLP-初学条件随机场(CRF)
下一篇: 如何建立个人网站?先分享一下
spring_willow
博客等级 码龄10年 163粉丝 95原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值