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,一经查实,立即删除!

相关文章

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

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

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语言的扩展…

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

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

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

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

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服务。 如果你是一名负责…

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

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

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

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

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

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

window.open打开新窗口被浏览器拦截的处理方法

一般我们在打开页面的时候&#xff0c; 最常用的就是用<a>标签&#xff0c;如果是新窗口打开就价格target"_blank"属性就可以了&#xff0c; 如果只是刷新当前页面就用window.location.reload()&#xff0c; 在某些特殊情况下也要用到另外一种新窗口打开的方法…

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

之前已经用RNN和CNN进行文本分类&#xff0c;随着NLP的热门&#xff0c;又出现了大热的Attention&#xff0c;Bert&#xff0c;GPT等模型&#xff0c;接下来&#xff0c;就从理论进行相关学习吧。接下来&#xff0c;我们会经常听到“下游任务”等名词&#xff0c;下游任务就是N…

Linux-C编程 / 多线程 / 如何终止某个线程?

示例 demo最简单的 demo&#xff1a;static void* thread1_func(void *arg) {int i 0;// able to be cancelpthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);for(i0; ; i) {printf("thread1 %d\n", i);…

PaddlePaddle入门——基本概念

最近报了百度的深度学习认证&#xff0c;需要使用Paddle进行编程实现&#xff0c;找了一些基础教程&#xff0c;特意记录下来&#xff0c;加深印象。思维导图如下&#xff1a; 一、Paddle的内部执行流程 二、内部详解 1.Variable&#xff08;变量&#xff09; &#xff08;1…

回答一个微信好友的创业问题

ps:很喜欢这种有烟火气息的照片— — 提问&#xff1a;我最近要创业&#xff0c;打算跟一个朋友合伙&#xff0c;但是我朋友不会技术&#xff0c;所以他只投入钱&#xff0c;也不会参与公司的管理。我们启动资金是10万&#xff0c;他打算投入7万&#xff0c;想占股65%。因为没有…

百度深度学习初级认证——已过

开头先放图&#xff0c;百度深度学习初级工程师认证已通过&#xff0c;记录一下备战和考试细节&#xff01;&#xff01;&#xff01; 1.报考 当时是通过百度的AI Studio看到深度学习的认证了&#xff0c;价格是800&#xff0c;然后阴差阳错从百度技术学院的链接看到深度学习…

哦,这是桶排序

漫画&#xff1a;什么是桶排序&#xff1f;要了解桶排序之前&#xff0c;可以先看看上面小灰的那篇文章&#xff0c;我觉得是比较不错的。桶排序也可以理解为分类排序&#xff0c;把不同的数据归类&#xff0c;归类之后再重新排序&#xff0c;每个桶里面的内容就是一类数据&…

如何防御光缆窃听

很多年前&#xff0c;人们就认识到采用铜缆传输信息很容易通过私搭电缆的方式被窃取。对于一个网络和安全管理人员来说&#xff0c;要么对铜缆采用更严格的安全防护措施&#xff0c;要么就使用光缆。因为很多人都认为光纤可以很好地防止***通过窃听手段截获网络数据。但是实际上…