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)

我选择了其中几个模型拟合数据. 其中, 我大学期间听闻 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 处理这个分类问题.