构建GitHub问题标签器:从数据处理到模型评估
1. 背景与问题提出
在许多使用Jira或GitHub等问题跟踪器的支持团队中,根据问题描述为问题添加元数据标签是一项常见任务。这些标签可定义问题类型、导致问题的产品或负责处理问题的团队。自动化此过程能显著提高生产力,使支持团队专注于帮助用户。本文以Hugging Face Transformers这个流行的开源项目的GitHub问题为例,详细介绍如何构建一个问题标签器。
若没有可用的未标记数据,意味着即使想标注更多数据也无法实现。此时,可以使用少样本学习,或者利用预训练语言模型的嵌入进行最近邻搜索查找。
2. 任务定义
当导航到Transformers仓库的“问题”标签页时,会看到包含标题、描述和一组标签的问题。这自然引出了一个监督学习任务:给定问题的标题和描述,预测一个或多个标签。由于每个问题可以分配可变数量的标签,这是一个多标签文本分类问题,通常比单标签分类更具挑战性。
3. 获取数据
为了获取仓库的所有问题,我们使用GitHub REST API的Issues端点。该端点返回一个JSON对象列表,每个对象包含问题的大量字段,如状态(打开或关闭)、提出问题的人、标题、正文和标签。可以运行以下 curl 命令下载第一页的第一个问题:
curl "https://api.github.com/repos/huggingface/transformers/issues?page=1&per_page=1"
由于获取所有问题需要一
超级会员免费看
订阅专栏 解锁全文

172万+

被折叠的 条评论
为什么被折叠?



