word2vec模型评估_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较
字幕组双语原文: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」三种模型比较相关推荐
- bert模型可以做文本主题识别吗_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较...
字幕组双语原文:NLP之文本分类:「Tf-Idf.Word2Vec和BERT」三种模型比较 英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec ...
- NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较
英语原文:Text Classification with NLP: Tf-Idf vs Word2Vec vs BERT 翻译:雷锋字幕组(关山.wiige) 概要 在本文中,我将使用NLP和Pyt ...
- 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化
Keras项目-英文语料的文本分类实战 一.机器学习模型 1.1 数据简介 1.2 数据读取与预处理 1.3 数据切分与逻辑回归模型构建 二.全连接神经网络模型 2.1 模型训练 2.2 模型结果展示 ...
- R使用LSTM模型构建深度学习文本分类模型(Quora Insincere Questions Classification)
R使用LSTM模型构建深度学习文本分类模型(Quora Insincere Questions Classification) Long Short Term 网络-- 一般就叫做 LSTM --是一 ...
- 何使用BERT模型实现中文的文本分类
原文网址:https://blog.csdn.net/Real_Brilliant/article/details/84880528 如何使用BERT模型实现中文的文本分类 前言 Pytorch re ...
- 机器学习番外篇—朴素贝叶斯三种模型(多项式,高斯,伯努利)
朴素贝叶斯三种模型(多项式,高斯,伯努利) 高斯 有些特征可能是连续型变量,比如说人的身高,物体的长度,这些特征可以转换成离散型的值,比如如果身高在160cm以下,特征值为1:在160cm和170cm ...
- 运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据)
大家好,我是带我去滑雪,每天教你一个小技巧!全球变暖是近十年来,人们关注度最高的话题.2022年夏天,蔓延全球40℃以上的极端天气不断刷新人们对于高温的认知,人们再也不会像从前那样认为全球变暖离我们遥 ...
- 产品路线图的三种模型(RICE/MoSCoW/Kano),教你如何对需求进行优先级排序
前言 RICE/MoSCoW/Kano三种模型,教你如何对需求进行优先级排序. 也许你会让业务提供一份ROI,记得前不久参加过一场立项会评审,一位很有意思的小产品在会上讲不清楚ROI,评审们要求会后重 ...
- 第三天2017/03/30(上午:二级指针的(输入)内存模型:(共三种模型))
二级指针 char a[10][10]; char (*a)[10]; char *a[10]; char **a; char **a; char **a; 字符数组的操作易犯错误: 1.字符数组在使 ...
最新文章
- Axel与Wget下载工具
- 七种Vue3传值方式
- 【car】几款电动代步车参数
- PostgreSQL windows下安装出现问题的解决办法
- Bootstrap系列 -- 8. 代码显示
- 计算机硬件外围设备介绍,天津2012年自考“计算机外围设备使用与维护”课程考试大纲...
- PyCharm Active Code Generator
- java线程池 core_Java 线程池 ThreadPoolExecutor 的使用
- 数据挖掘导论思维导图
- 长安链ChainMaker在线合约编辑器-SmartEditor
- 单片机控制10BitDA正弦信号发生器 PROTEUS 和51单片机教程(附仿真文件+源代码)
- 计算机网络原理第五版课后--习题答案
- yield在python中是什么意思_python中的yield代表什么
- 设置Node.js脚本开机自启动
- JavaWeb-Day01
- 【Algorithm】种子填充算法
- 程序员埋逻辑炸弹,被判 6 个月
- 【C++】面试题目,整理自牛客网
- 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战
- 头脑风暴--原生JS实现汉诺塔游戏
热门文章
- P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
- 排列生成算法--C++
- Android视频: YUV转RGB
- 约瑟芬公主把乔治放在了第三位,对吧
- Linux内核多线程(三)
- Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘
- 十堰市人民小学一年级在计算机学校,我上一年级啦!
- 机器学习模型_如何口述机器学习模型原理
- html5泵站,基于 HTML5 WebGL 的污水处理厂泵站自控系统
- 五分钟学会python_关于五分钟学Python系列视频