Datawhale-零基础入门NLP-新闻文本分类Task01

参考:

https://www.jianshu.com/p/56061b8f463a

统计自然语言处理 宗成庆(第二版)

文本自动分类简称文本分类(text categorization),是模式识别与自然语言处理密切结合的研究课题.传统的文本分类是基于文本内容的,研究如何将文本自动划分为各种类型.文本分类是在预定义的分类体系下,根据文本的特征(内容或属性),将给定文本与一个或多个类别相关联的过程.系统的输入时需要进行分类处理的文本,系统的输出则是与文本关联的类别.

一个文本分类系统表示为

NLP文本分类主要分为两大类:

  • 基于传统机器学习的文本分类:TF-IDF+分类算法,Count Vectors+分类算法

  • 基于深度学习的文本分类:FastText文本分类,TextRNN,TextCNN,基于Bert的文本分类

1 基于传统机器学习的文本分类(文本特征工程+分类器)

传统的特征工程分为文本预处理、特征提取、文本表示三个部分。

1.1 特征工程

1.1.1 文本预处理

文本预处理过程是提取文本中的关键词来表示文本的过程。英文语法有空格,因此可以直接以空格进行分割,中文文本处理则需要考虑中文分词和去停用词的问题。

常用的文本分词方法:基于字符串匹配的正向/逆向/双向最大匹配;基于理解的句法和语法分析,基于统计的互信息/CRF方法,基于深度学习的。

停用词是文本中一些高频的代词、介词、连词等对文本分类无意义的词,类似于我,你,的等。

此外,自然语言处理分析还包括命名实体识别、词性标注、句法分析、语义分析、篇章分析。

命名实体识别是从文本中识别这些实体指称及其类别, 即命名实体识别和分类,实体概念在文本中的引用(entity mention, 或称“指称项”) 有三种形式: 命名性指称、 名词性指称和代词性指称。例如”[[中国] 乒乓球男队主教练] [刘国梁] 出席了会议,[他] 指出了当前经济工作的重点。 ”中, 实体概念“刘国梁”的指称项有三个, 其中, “中国乒乓球男队主教练”是名词性指称, “刘国梁”是命名性指称, “他”是代词性指称。

词性(part-of-speech) 是词汇基本的语法属性, 通常也称为词类。词性标注就是在给定句子中判定每个词的语法范畴, 确定其词性并加以标注的过程。
        句法分析(syntactic parsing) 是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构(syntactic structure) 或句子中词汇之间的依存关系。

对于不同的语言单位, 语义分析的任务各不相同。 在词的层次上,语义分析的基本任务是进行词义消歧(word sense disambiguation,WSD) , 在句子层面上语义角色标注(semantic role labeling, SRL) 则是人们关注的问题, 而在篇章层面上, 指代消歧(coreference resolution)(也称“共指消解”) 、 篇章语义分析等则是目前研究的重点。 本章主要介绍词义消歧和语义角色标注的基本方法。

1.1.2 特征提取

特征提取包括特征选择和特征权重计算两部分.
        特征选择的基本思路是根据某个评价指标独立的对原始特征项(词项)进行评分排序,从中选择得分最高的一些特征项,过滤掉其余的特征项。常用的评价有:文档频率、互信息、信息增益、χ²统计量等。
        特征权重用于衡量某个特征项在文档表示中的重要程度或者区分能力的强弱.权重计算的一般是利用文本的统计信息,例如词频.主要是经典的TF-IDF方法及其扩展方法。TF-IDF的主要思想是一个词的重要度与在类别内的词频成正比,与所有类别出现的次数成反比.

1.1.3 文本表示

一个文本表现为一个由文字和标点符号组成的字符串,由字或字符组成词,由词组成短语,进而形成句,段,节,章,篇的结构.文本表示的目的是把文本预处理后的转换成计算机可理解的方式,是决定文本分类质量最重要的部分。传统做法常用词袋模型(BOW, Bag Of Words)或向量空间模型(Vector Space Model),最大的不足是忽略文本上下文关系,每个词之间彼此独立,并且无法表征语义信息。

1.2 分类算法

机器学习的分类算法有逻辑回归(LR)、支持向量机(SVM)、决策树(DT)、XGBoost,LightGBM、CatBoost等。

1.3 文本分类性能评测

参照机器学习的性能评测标准,主要方法有精准率、召回率、F1-score

2 基于深度学习的文本分类

2.1 FastText文本分类

FastText是一种典型的深度学习词向量的表示方法,它通过Embedding层将单词映射到稠密空间,然后将句子中所有单词在Embedding空间中进行平均,进而完成分类操作。

2.2 TextCNN文本分类

TextCNN是利用卷积网络进行文本分类,输入的数据是处理之后的词向量,卷积核不进行横向滑动,仅仅向下移动,在不同词窗上应用不同的卷积核,最终得到不同向量,再对向量进行最大池化并拼接各个池化值,将这个句子的向量送到分类器进行分类。

2.3 TextRNN文本分类问题

TextRNN指的是利用RNN循环神经网络解决文本分类问题,其中,可将RNN单元换成Bi-RNN,LSTM,GRU等。

2.4 基于Bert的文本分类

BERT是一个基于Transformer的多层Encoder,通过一系列的预训练,进而得到深层的上下文表示。基于预训练语言模型的词表示由于可以建模上下文信息,进而解决传统静态词向量不能建模“一词多义”语言现象的问题。最早用两个单向的LSTM,将双向的表示拼接学习上下文词嵌入。后用Transformer代替LSTM作为编码器,进行了语言模型预训练,然后在下游任务微调模型参数,现又提出Bert。

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

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

相关文章

fprintf/fscanf函数分析

fprintf/fscanf函数分析 宗旨:技术的学习是有限的,分享的精神是无限的。 fprintf/fscanf函数与printf/scanf区别:printf/scanf专门针对标准输入输出流,fprintf/fscanf函数可用于任意流,包括输入输出流。 1、fprintf …

华为海选开发者状元?还送14件豪礼?

华为云全年最大 最大 最大开发者庆典活动来啦!这次庆典没别的,就是:好玩!刺激!让你拿奖拿到怀疑人生!贺岁就要有贺岁的样子~赶紧来看看华为云为开发者们准备了怎样的新年惊喜好玩的在这里!上学的…

国际:如何识别真正的程序员

如何识别优秀的程序员?并不是像听起来那么容易。在这儿工作经验的作用是很有限的,因为伟大的程序员不一定要‘正式’的工作经历来证明他们的伟大。 1,激情。 我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业&…

Datawhale-零基础入门NLP-新闻文本分类Task02

Task01里边对赛题进行了分析,接下来进行数据读取与数据分析,通过使用Pandas库完成数据读取和分析操作。 1 数据读取 由赛题数据格式可知,可通过read_csv读取train_set.csv数据: import pandas as pd import numpy as np import matplotlib…

一步步分析-C语言如何面向对象编程

这是道哥的第009篇原创一、前言在嵌入式开发中,C/C语言是使用最普及的,在C11版本之前,它们的语法是比较相似的,只不过C提供了面向对象的编程方式。虽然C语言是从C语言发展而来的,但是今天的C已经不是当年的C语言的扩展…

Linux C高级编程——目录操作

Linux C目录操作 宗旨:技术的学习是有限的,分享的精神是无限的。 Linux思想“一切皆文件”,目录也是文件,只是存储的内容有别于普通文件。目录文件中存储的该目录下所有的文件及子目录文件的信息,inode节点。 一、打开…

利用open***建立桥接***[zt]

利用open***建立桥接***http://blog.chinaunix.net/u/7667/showart_30753.html本文介绍利用open***建立桥接***的一种简单方法,使用的服务器为debian GNU/Linux sarge,使用apt-get dist-upgrade更新到最新,内核2.4.27-1-686,未重新编译内核&a…

c复习过程随笔四

使用scanf函数输入数据:一般形式(格式控制,地址表列) 格式控制中可以包含普通字符 格式控制和printf函数所遵循的格式相似 使用scanf应注意的问题: (1)格式控制后面应该是变量地址,而…

Datawhale-零基础入门NLP-新闻文本分类Task03

文本是不定长度的,文本表示成计算的能够运算的数字或向量的方法称为词嵌入(Word Embedding)。词嵌入是将不定长的文本转换成定长的空间中。为了解决将原始文本转成固定长度的特征向量问题,scikit-learn提供了以下方法:…

Linus 在圣诞节想提前放假做了这些解释,哈哈哈

最近在 lkml.org 上看到Linus发布的一个信息,挺有意思的,我看了内容,然后根据自己的理解展示给大家看看,如果有不对的地方欢迎指正。好的,5.10内核发布了我真希望在圣诞节来的最后一个星期没有那么多破事,现…

文件流、目录流、文件描述符总结

文件流、目录流、文件描述符总结 宗旨:技术的学习是有限的,分享的精神是无限的。 内核为使当前进程与进程打开的文件建立联系,在进程PCB(一个结构体task_struct)中使用一个成员来指向关于打开文件列表的结构体struct …

eleemnt-ui修改主题颜色

饿了吗的element-ui使用的是淡蓝色的主题,有时候我们可以自定义主题,官方的文档给我们提供了如何修改主题,介绍的很详细,自己试验过后,觉得很不错,一方面怕忘记,一方面写一写。 方法一是在线生成…

Datawhale-零基础入门NLP-新闻文本分类Task04

1 FastText 学习路径 FastText 是 facebook 近期开源的一个词向量计算以及文本分类工具,FastText的学习路径为: 具体原理就不作解析了,详细教程见:https://fasttext.cc/docs/en/support.html 2 FastText 安装 2.1 基于框架的安装 需要从github下载源…

多重 for 循环,如何提高效率?

2258 字 14 图 : 文章字数6 分钟 : 预计阅读网络 : 内容来源BabyCoder : 编辑整理前言我在《华为 C 语言编程规范》中看到了这个:当使用多重循环时,应该将最忙的循环放在最内层。如下图:由上述很简单的伪代码可以看到,推荐使用的方…

【转】Web服务软件工厂

patterns & practices开发中心 摘要 Web服务软件工厂(英文为Web Service Software Factory,也称作服务工厂)是一个集成的工具、模式、源代码和规范性指导的集合。它的设计是为了帮助你迅速、一致地构建符合普遍的体系结构和设计模式的Web服务。 如果你是一名负责…

java gui 连接mysql数据库

package com.wt010.db;import java.sql.*;import javax.swing.JFrame; import javax.swing.JTextArea;public class MySQLUtil extends JFrame {// JDBC 驱动名及数据库 URLstatic final String JDBC_DRIVER "com.mysql.jdbc.Driver"; static final String DB_URL …

单片机外围模块漫谈之二,如何提高ADC转换精度

在此我们简要总结一下ADC的各种指标如何理解,以及从硬件到软件都有哪些可以采用的手段来提高ADC的转换精度。1.ADC指标除了分辨率,速度,输入范围这些基本指标外,衡量一个ADC好坏通常会用到以下这些指标:失调误差,增益误…

Datawhale-零基础入门NLP-新闻文本分类Task05

该任务是用Word2Vec进行预处理,然后用TextCNN和TextRNN进行分类。TextCNN是利用卷积神经网络进行文本文类,TextCNN是用循环神经网络进行文本分类。 1.Word2Vec 文本是一类非结构化数据,文本表示模型有词袋模型(Bag of Words&…

如何把握网络工程师的“钱”途,专访文字。

前两天接受了IT168的视频专访,这里把专访的内容发布出来,大家可以借鉴一下。主持人:大家上午好,欢迎收看IT168网络频道的网上直播节目。我们今天上午的此次直播的主题是网络工程师:如何掌握你的“钱”途?众所周知&…

想要学好C++有哪些技巧?

学C能干什么? 往细了说,后端、客户端、游戏引擎开发以及人工智能领域都需要它。往大了说,构成一个工程师核心能力的东西,都在C里。跟面向对象型的语言相比,C是一门非常考验技术想象力的编程语言,因此学习起…