字幕组双语原文:NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较

英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec vs BERT

翻译:雷锋字幕组(关山、wiige)

概要

在本文中,我将使用NLP和Python来解释3种不同的文本多分类策略:老式的词袋法(tf-ldf),著名的词嵌入法(Word2Vec)和最先进的语言模型(BERT)。

NLP(自然语言处理)是人工智能的一个领域,它研究计算机和人类语言之间的交互作用,特别是如何通过计算机编程来处理和分析大量的自然语言数据。NLP常用于文本数据的分类。文本分类是指根据文本数据内容对其进行分类的问题。

我们有多种技术从原始文本数据中提取信息,并用它来训练分类模型。本教程比较了传统的词袋法(与简单的机器学习算法一起使用)、流行的词嵌入模型(与深度学习神经网络一起使用)和最先进的语言模型(和基于attention的transformers模型中的迁移学习一起使用),语言模型彻底改变了NLP的格局。

我将介绍一些有用的Python代码,这些代码可以轻松地应用在其他类似的案例中(仅需复制、粘贴、运行),并对代码逐行添加注释,以便你能复现这个例子(下面是全部代码的链接)。

mdipietro09/DataScience_ArtificialIntelligence_Utils

我将使用“新闻类别数据集”(News category dataset),这个数据集提供了从HuffPost获取的2012-2018年间所有的新闻标题,我们的任务是把这些新闻标题正确分类,这是一个多类别分类问题(数据集链接如下)。

News Category Dataset

特别地,我要讲的是:

  • 设置:导入包,读取数据,预处理,分区。

  • 词袋法:用scikit-learn进行特征工程、特征选择以及机器学习,测试和评估,用lime解释。

  • 词嵌入法:用gensim拟合Word2Vec,用tensorflow/keras进行特征工程和深度学习,测试和评估,用Attention机制解释。

  • 语言模型:用transformers进行特征工程,用transformers和tensorflow/keras进行预训练BERT的迁移学习,测试和评估。

设置

首先,我们需要导入下面的库:

## for data

import json

import pandas as pd

import numpy as np## for plotting

import matplotlib.pyplot as plt

import seaborn as sns## for bag-of-words

from sklearn import feature_extraction, model_selection, naive_bayes, pipeline, manifold, preprocessing## for explainer

from lime import lime_text## for word embedding

import gensim

import gensim.downloader as gensim_api## for deep learning

from tensorflow.keras import models, layers, preprocessing as kprocessing

from tensorflow.keras import backend as K## for bert language model

import transformers

该数据集包含在一个jason文件中,所以我们首先将其读取到一个带有json的字典列表中,然后将其转换为pandas的DataFrame。

lst_dics =

with open('data.json', mode='r', errors='ignore') as json_file:

for dic in json_file:

lst_dics.append( json.loads(dic) )## print the first one

lst_dics[0]

原始数据集包含30多个类别,但出于本教程中的目的,我将使用其中的3个类别:娱乐(Entertainment)、政治(Politics)和科技(Tech)。

## create dtf

dtf = pd.DataFrame(lst_dics)## filter categories

dtf = dtf[ dtf["category"].isin(['ENTERTAINMENT','POLITICS','TECH']) ][["category

word2vec模型评估_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较相关推荐

  1. bert模型可以做文本主题识别吗_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较...

    字幕组双语原文:NLP之文本分类:「Tf-Idf.Word2Vec和BERT」三种模型比较 英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec ...

  2. NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较

    英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec vs BERT 翻译:雷锋字幕组(关山.wiige) 概要 在本文中,我将使用NLP和Pyt ...

  3. 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化

    Keras项目-英文语料的文本分类实战 一.机器学习模型 1.1 数据简介 1.2 数据读取与预处理 1.3 数据切分与逻辑回归模型构建 二.全连接神经网络模型 2.1 模型训练 2.2 模型结果展示 ...

  4. R使用LSTM模型构建深度学习文本分类模型(Quora Insincere Questions Classification)

    R使用LSTM模型构建深度学习文本分类模型(Quora Insincere Questions Classification) Long Short Term 网络-- 一般就叫做 LSTM --是一 ...

  5. 何使用BERT模型实现中文的文本分类

    原文网址:https://blog.csdn.net/Real_Brilliant/article/details/84880528 如何使用BERT模型实现中文的文本分类 前言 Pytorch re ...

  6. 机器学习番外篇—朴素贝叶斯三种模型(多项式,高斯,伯努利)

    朴素贝叶斯三种模型(多项式,高斯,伯努利) 高斯 有些特征可能是连续型变量,比如说人的身高,物体的长度,这些特征可以转换成离散型的值,比如如果身高在160cm以下,特征值为1:在160cm和170cm ...

  7. 运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据)

    大家好,我是带我去滑雪,每天教你一个小技巧!全球变暖是近十年来,人们关注度最高的话题.2022年夏天,蔓延全球40℃以上的极端天气不断刷新人们对于高温的认知,人们再也不会像从前那样认为全球变暖离我们遥 ...

  8. 产品路线图的三种模型(RICE/MoSCoW/Kano),教你如何对需求进行优先级排序

    前言 RICE/MoSCoW/Kano三种模型,教你如何对需求进行优先级排序. 也许你会让业务提供一份ROI,记得前不久参加过一场立项会评审,一位很有意思的小产品在会上讲不清楚ROI,评审们要求会后重 ...

  9. 第三天2017/03/30(上午:二级指针的(输入)内存模型:(共三种模型))

    二级指针 char a[10][10]; char (*a)[10]; char *a[10]; char **a; char **a; char **a; 字符数组的操作易犯错误: 1.字符数组在使 ...

最新文章

  1. Axel与Wget下载工具
  2. 七种Vue3传值方式
  3. 【car】几款电动代步车参数
  4. PostgreSQL windows下安装出现问题的解决办法
  5. Bootstrap系列 -- 8. 代码显示
  6. 计算机硬件外围设备介绍,天津2012年自考“计算机外围设备使用与维护”课程考试大纲...
  7. PyCharm Active Code Generator
  8. java线程池 core_Java 线程池 ThreadPoolExecutor 的使用
  9. 数据挖掘导论思维导图
  10. 长安链ChainMaker在线合约编辑器-SmartEditor
  11. 单片机控制10BitDA正弦信号发生器 PROTEUS 和51单片机教程(附仿真文件+源代码)
  12. 计算机网络原理第五版课后--习题答案
  13. yield在python中是什么意思_python中的yield代表什么
  14. 设置Node.js脚本开机自启动
  15. JavaWeb-Day01
  16. 【Algorithm】种子填充算法
  17. 程序员埋逻辑炸弹,被判 6 个月
  18. 【C++】面试题目,整理自牛客网
  19. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战
  20. 头脑风暴--原生JS实现汉诺塔游戏

热门文章

  1. P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
  2. 排列生成算法--C++
  3. Android视频: YUV转RGB
  4. 约瑟芬公主把乔治放在了第三位,对吧
  5. Linux内核多线程(三)
  6. Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘
  7. 十堰市人民小学一年级在计算机学校,我上一年级啦!
  8. 机器学习模型_如何口述机器学习模型原理
  9. html5泵站,基于 HTML5 WebGL 的污水处理厂泵站自控系统
  10. 五分钟学会python_关于五分钟学Python系列视频