文章目录
一、预备工作
前言:安装tensorflow框架耗时较长未能正确安装,故没有使用深度学习
任务说明
1.学习主题:论⽂分类(数据建模任务),利⽤已有数据建模,对新论⽂进⾏类别分类;
2.学习内容:使⽤论⽂标题完成类别分类;
3.学习成果:学会⽂本分类的基本⽅法、 TF-IDF 等;
具体细节
在原始arxiv论⽂中论⽂都有对应的类别,⽽论⽂类别是作者填写的。在本次任务中我们可以借助论⽂标题和摘要完成:
1.对论⽂标题和摘要进⾏处理;
2.对论⽂类别进⾏处理;
3.构建⽂本分类模型;
二、数据处理
1.引入库
# 导⼊所需的package
import seaborn as sns #⽤于画图
from bs4 import BeautifulSoup #⽤于爬取arxiv的数据
import re #⽤于正则表达式,匹配字符串的模式
import requests #⽤于⽹络连接,发送⽹络请求,使⽤域名获取对应信息
import json #读取数据,我们的数据为json格式的
import pandas as pd #数据处理,数据分析
import matplotlib.pyplot as plt #画图⼯具
2.读入数据
提取原始数据中的title,categories,abstract三列数据
#读取数据
data = [] #初始化
file_path = r"C:\Users\monster\Desktop\Data King\archive\arxiv-metadata-oai-snapshot.json"
with open(file_path,'r') as f:
for idx,line in enumerate(f):
d = json.loads(line) ##json.load(file,s,...)需指定文件 json.loads(s,...)
d = {
'title': d['title'], 'categories': d['categories'], 'abstract':
d['abstract']}
data.append(d)
#选部分数据
if idx > 20000:
break
data = pd.DataFrame(data)
data.head()
输出:
3.拼接标题和摘要
data['text'] = data['title'] + data['abstract']
#替换换行符并转换为小写
data['text'] = data['text'].apply(lambda x: x.replace('\n',''))
data['text'] = data['text'].apply(lambda x: x.lower())
#删除title和abstract列
data = data.drop(['title','abstract'],axis=1)
data.head()
输出:
4.提取类别并编码
由于原始论⽂有可能有多个类别,所以也需要处理
#多个类别,包含子分类 如:math.CA math.FA
data['categories'] = data['categories'