学术前言趋势分析-添加编号
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
# 任务1:论文数据统计
|
||||
|
||||
## 任务说明
|
||||
## 1.1 任务说明
|
||||
|
||||
- 任务主题:论文数量统计,即统计2019年全年计算机各个方向论文数量;
|
||||
- 任务内容:赛题的理解、使用 **Pandas** 读取数据并进行统计;
|
||||
- 任务成果:学习 **Pandas** 的基础操作;
|
||||
- 可参考的学习资料:[开源组织Datawhale joyful-pandas项目](https://github.com/datawhalechina/joyful-pandas)
|
||||
|
||||
## 数据集介绍
|
||||
## 1.2 数据集介绍
|
||||
|
||||
- 数据集来源:[数据集链接](https://www.kaggle.com/Cornell-University/arxiv);
|
||||
- 数据集的格式如下:
|
||||
@@ -70,7 +70,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
## Arxiv论文类别介绍
|
||||
## 1.3 arxiv论文类别介绍
|
||||
|
||||
我们从arxiv官网,查询到论文的类别名称以及其解释如下。
|
||||
|
||||
@@ -97,9 +97,9 @@
|
||||
'cs.OS': 'Operating Systems',
|
||||
```
|
||||
|
||||
## 具体代码实现以及讲解
|
||||
## 1.4 具体代码实现以及讲解
|
||||
|
||||
### 导入package并读取原始数据
|
||||
### 1.4.1 导入package并读取原始数据
|
||||
|
||||
```python
|
||||
# 导入所需的package
|
||||
@@ -144,7 +144,7 @@ Output: (1778381, 14)
|
||||
data.head() #显示数据的前五行
|
||||
```
|
||||
|
||||
### 数据预处理
|
||||
### 1.4.2 数据预处理
|
||||
|
||||
首先我们先来粗略统计论文的种类信息:
|
||||
|
||||
@@ -360,7 +360,7 @@ re.sub(r"(.*)\((.*)\)",r"\2",raw)
|
||||
|
||||
这里推荐大家一个在线正则表达式测试的网站:[https://tool.oschina.net/regex/](https://tool.oschina.net/regex/)
|
||||
|
||||
### 数据分析及可视化
|
||||
### 1.4.3 数据分析及可视化
|
||||
|
||||
接下来我们首先看一下所有大类的paper数量分布:
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# 任务2:论文作者统计
|
||||
|
||||
## 任务说明
|
||||
## 2.1 任务说明
|
||||
|
||||
- 任务主题:论文作者统计,统计所有论文作者出现评率Top10的姓名;
|
||||
- 任务内容:论文作者的统计、使用 **Pandas** 读取数据并使用字符串操作;
|
||||
- 任务成果:学习 **Pandas** 的字符串操作;
|
||||
|
||||
## 数据处理步骤
|
||||
## 2.2 数据处理步骤
|
||||
|
||||
在原始arxiv数据集中论文作者`authors`字段是一个字符串格式,其中每个作者使用逗号进行分隔分,所以我们我们首先需要完成以下步骤:
|
||||
|
||||
@@ -28,7 +28,7 @@ C.-P. Yuan
|
||||
|
||||
当然在原始数据集中`authors_parsed`字段已经帮我们处理好了作者信息,可以直接使用该字段完成后续统计。
|
||||
|
||||
## 字符串处理
|
||||
## 2.3 字符串处理
|
||||
|
||||
在Python中字符串是最常用的数据类型,可以使用引号('或")来创建字符串。Python中所有的字符都使用字符串存储,可以使用方括号来截取字符串,如下实例:
|
||||
|
||||
@@ -67,9 +67,9 @@ Python中还内置了很多内置函数,非常方便使用:
|
||||
| string.title() | 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
|
||||
| string.upper() | 转换 string 中的小写字母为大写 |
|
||||
|
||||
## 具体代码实现以及讲解
|
||||
## 2.4 具体代码实现以及讲解
|
||||
|
||||
### 数据读取
|
||||
### 2.4.1 数据读取
|
||||
|
||||
```python
|
||||
data = []
|
||||
@@ -84,7 +84,7 @@ data = pd.DataFrame(data)
|
||||
|
||||
为了方便处理数据,我们只选择了三个字段进行读取。
|
||||
|
||||
### 数据统计
|
||||
### 2.4.2 数据统计
|
||||
|
||||
接下来我们将完成以下统计操作:
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# 任务3:论文代码统计
|
||||
|
||||
## 任务说明
|
||||
## 3.1 任务说明
|
||||
|
||||
- 任务主题:论文代码统计,统计所有论文出现代码的相关统计;
|
||||
- 任务内容:使用正则表达式统计代码连接、页数和图表数据;
|
||||
- 任务成果:学习正则表达式统计;
|
||||
|
||||
## 数据处理步骤
|
||||
## 3.2 数据处理步骤
|
||||
|
||||
在原始arxiv数据集中作者经常会在论文的`comments`或`abstract`字段中给出具体的代码链接,所以我们需要从这些字段里面找出代码的链接。
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
- 使用正则表达式完成匹配;
|
||||
- 完成相关的统计;
|
||||
|
||||
## 正则表达式
|
||||
## 3.3 正则表达式
|
||||
|
||||
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
|
||||
|
||||
#### 普通字符:大写和小写字母、所有数字、所有标点符号和一些其他符号
|
||||
#### 3.3.1 普通字符:大写和小写字母、所有数字、所有标点符号和一些其他符号
|
||||
|
||||
| 字符 | 描述 |
|
||||
| ---------- | ------------------------------------------------------------ |
|
||||
@@ -29,7 +29,7 @@
|
||||
| **[\s\S]** | 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。 |
|
||||
| **\w** | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_] |
|
||||
|
||||
#### 特殊字符:有特殊含义的字符
|
||||
#### 3.3.2 特殊字符:有特殊含义的字符
|
||||
|
||||
| 特别字符 | 描述 |
|
||||
| :------- | :----------------------------------------------------------- |
|
||||
@@ -44,7 +44,7 @@
|
||||
| { | 标记限定符表达式的开始。要匹配 {,请使用 \{。 |
|
||||
| \| | 指明两项之间的一个选择。要匹配 \|,请使用 \|。 |
|
||||
|
||||
#### 限定符
|
||||
#### 3.3.3 限定符
|
||||
|
||||
| 字符 | 描述 |
|
||||
| :---- | :----------------------------------------------------------- |
|
||||
@@ -55,7 +55,7 @@
|
||||
| {n,} | n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 |
|
||||
| {n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 |
|
||||
|
||||
## 具体代码实现以及讲解
|
||||
## 3.4 具体代码实现以及讲解
|
||||
|
||||
首先我们来统计论文页数,也就是在`comments`字段中抽取pages和figures和个数,首先完成字段读取。
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# 任务4:论文种类分类
|
||||
|
||||
## 任务说明
|
||||
## 4.1 任务说明
|
||||
|
||||
- 学习主题:论文分类(数据建模任务),利用已有数据建模,对新论文进行类别分类;
|
||||
- 学习内容:使用论文标题完成类别分类;
|
||||
- 学习成果:学会文本分类的基本方法、`TF-IDF`等;
|
||||
|
||||
## 数据处理步骤
|
||||
## 4.2 数据处理步骤
|
||||
|
||||
在原始arxiv论文中论文都有对应的类别,而论文类别是作者填写的。在本次任务中我们可以借助论文的标题和摘要完成:
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
- 对论文类别进行处理;
|
||||
- 构建文本分类模型;
|
||||
|
||||
## 文本分类思路
|
||||
## 4.3 文本分类思路
|
||||
|
||||
- 思路1:TF-IDF+机器学习分类器
|
||||
|
||||
@@ -32,7 +32,7 @@ WordVec是进阶款的词向量,并通过构建深度学习分类完成分类
|
||||
|
||||
Bert是高配款的词向量,具有强大的建模学习能力。
|
||||
|
||||
## 具体代码实现以及讲解
|
||||
## 4.4 具体代码实现以及讲解
|
||||
|
||||
为了方便大家入门文本分类,我们选择思路1和思路2给大家讲解。首先完成字段读取:
|
||||
|
||||
@@ -80,7 +80,7 @@ mlb = MultiLabelBinarizer()
|
||||
data_label = mlb.fit_transform(data['categories_big'].iloc[:])
|
||||
```
|
||||
|
||||
### 思路1
|
||||
### 4.4.1 思路1
|
||||
|
||||
思路1使用TFIDF提取特征,限制最多4000个单词:
|
||||
|
||||
@@ -111,7 +111,7 @@ from sklearn.metrics import classification_report
|
||||
print(classification_report(y_test, clf.predict(x_test)))
|
||||
```
|
||||
|
||||
### 思路2
|
||||
### 4.4.2 思路2
|
||||
|
||||
思路2使用深度学习模型,单词进行词嵌入然后训练。首先按照文本划分数据集:
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
# 任务5:作者信息关联
|
||||
|
||||
## 任务说明
|
||||
## 5.1 任务说明
|
||||
|
||||
- 学习主题:作者关联(数据建模任务),对论文作者关系进行建模,统计最常出现的作者关系;
|
||||
- 学习内容:构建作者关系图,挖掘作者关系
|
||||
- 学习成果:论文作者知识图谱、图关系挖掘
|
||||
|
||||
## 数据处理步骤
|
||||
## 5.2 数据处理步骤
|
||||
|
||||
将作者列表进行处理,并完成统计。具体步骤如下:
|
||||
|
||||
- 将论文第一作者与其他作者(论文非第一作者)构建图;
|
||||
- 使用图算法统计图中作者与其他作者的联系;
|
||||
|
||||
## 社交网络分析
|
||||
## 5.3 社交网络分析
|
||||
|
||||
图是复杂网络研究中的一个重要概念。Graph是用**点**和**线**来刻画离散事物集合中的每对事物间以某种方式相联系的数学模型。Graph在现实世界中随处可见,如交通运输图、旅游图、流程图等。利用图可以描述现实生活中的许多事物,如用点可以表示交叉口,点之间的连线表示路径,这样就可以轻而易举的描绘出一个交通运输网络。
|
||||
|
||||
### 图类型
|
||||
### 5.3.1 图类型
|
||||
|
||||
- 无向图,忽略了两节点间边的方向。
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
- 多重无向图,即两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联。
|
||||
|
||||
### 图统计指标
|
||||
### 5.3.2 图统计指标
|
||||
|
||||
- 度:是指和该节点相关联的边的条数,又称关联度。对于有向图,节点的入度 是指进入该节点的边的条数;节点的出度是指从该节点出发的边的条数;
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
对于其他图算法,可以在networkx和igraph两个库中找到。
|
||||
|
||||
## 具体代码以及讲解
|
||||
## 5.4 具体代码以及讲解
|
||||
|
||||
首先读取我们想要的数据:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user