你正在阅读的是正在进行中的关于 《根据测试集中的论文摘要自动提取关键词》 的研究报告本章节处于打磨阶段: 其内容基本完备, 但是仍在打磨中。
1 Task 1: 文本分类
1.1 Intro
《基于论文摘要的文本分类与关键词抽取挑战赛》的第一项任务是: 根据论文摘要, 判断论文是否为医学领域文论
1.2 Machine learning methods
1.2.1 Statistical models
很多机器学习 (Machine learning) 课程和教材 会提及机器学习在 “垃圾邮件过滤 (Spam filtering)” 上的应用.
’垃圾邮件过滤” 与我们当前的任务类似
- 邮件正文 与 论文的摘要 的长短相近
- 它们都是二分类问题 (Binary classification problem)
- 垃圾邮件 vs 普通邮件
- 医学领域 vs 非医学领域
在本次 AI 夏令营中, 针对 “文本分类” 任务, 我们专注于研究下列问题
- 如何将 “文本” 转换为常见的机器学习模型 可以处理的数据类型
- 将不同机器学习方法应用于我们的数据
- 非参数模型 (Non parametric model)
- K-临近 (KNN)
- 参数模型
- Linear regression (线性回归)
- Logistic regression (逻辑回归)
- Generative Models for Classification (用于分类的一些生成模型)
- Linear Discriminant Analysis (线性判别分析)
- Quadratic Discriminant Analysis
- Naive Bayes (朴素贝叶斯)
- Support vector machine (支持向量机)
- 决策树 (Decision tree)
- 随机森林 (Random forest)
- 非参数模型 (Non parametric model)
我选择了其中几个模型拟合数据. 其中, 我大学期间听闻 Naive Bayes
1.2.2 Model Selection and Regularization
面对过拟合问题 (Overfitting), 我们也要考虑模型的正则化 (Regularization). 正则化意味着在模型拟合的时候, 引入惩罚 (Penalty) 以便 限制模型的大小. 对于参数化模型, 这意味着限制参数的数量.
sklearn 中的正则化
sklearn 是 Python 的一个机器学习工具包. 其中的一些模型的默认选项就包含了正则化. 例如 LogisticRegression
函数中的 penalty='l2'
意味着, 默认使用 L2 正则化.
class sklearn.linear_model.LogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)[source]
1.3 Model evaluation
二分类问题常常使用
- 第一类统计错误和第二类统计错误
- 以及他们的变体: accuracy, F1_score
- 等等
《基于论文摘要的文本分类与关键词抽取挑战赛》使用 F1_score 进行评价
1.4 Deep learning methods
在 Datawhale 的学习安排中, 本任务 被当作 “机器学习 (Machine learning)” 的实践. 但是, 我们当然也可以使用 “深度学习 (Deep learning)” 的方法处理这个问题.
本节最后, 我也尝试用 BERT 处理这个分类问题.