返回列表

27th place solution

666. Make Data Count - Finding Data References | make-data-count-finding-data-references

开始: 2025-06-11 结束: 2025-09-09 文献与知识发现 数据算法赛
第 27 名解决方案 - 基于上下文的方法

第 27 名解决方案

基于上下文的方法 (Context-based approach)

作者: Mykyta Barkalov (nektonekks)

发布时间: 2025-09-10

竞赛排名: 27

1. PDF 阅读

a) 页面和块拼接

为了消除文章不同页面或块之间的大多数断裂上下文,所有文本都通过块读取(使用 fitz 库中的 page.get_text('dict')),并利用 PDF 中的一些文本设计特征重新收集。重新分组文本的主要特征是字体大小。然后将新的文本块按字体大小降序排序并连接成全文。

b) DOI 提取

所有 DOI 都通过两种方式提取:

  • 在链接可点击的文章中,DOI 引用是在 PDF 文件的结构中发现的。
  • 在其他文章中,链接是通过正则表达式方法提取并进行后过滤的。

c) ID 提取

许多登录 ID (Accession IDs) 是使用针对不同数据库的正则表达式以简单方式提取的。对于“危险”情况(如 GenBankPDBCATH 等),标识符是在对应数据库关键词的邻近区域中搜索的。

2. 引用过滤

a) 危险 ID 过滤

提取后,危险的标识符通过 LLM (Qwen2.5 14B-instruct-awq) 进行验证。

b) DOI 数据/文章预过滤

DOI 链接根据前缀类型进行过滤。DOI 前缀类型的数据集(如 DataCiteCrossRefMedra 等)是使用 DOI API 获取的。

3. 上下文创建

a) 主要上下文

主要上下文是从文本中提取的,使用动态窗口,其大小计算为 max(400 // 提及次数,75)

b) 表格上下文

首先,基于文本中的起始位置,通过简单的基于密度的算法对登录 ID 进行聚类。然后在这些聚类的邻近区域搜索表格编号(如果存在)。

由于 PDF 阅读技术的原因,文本块的顺序可能会改变。因此,在文本重新收集之前,通过在标识符邻近区域搜索表格提及来标记登录 ID。如果标识符在表格内被提及,则主要上下文将被替换为在文本中提及该表格。

c) 作者提取

使用来自 spacy 的 NER 模型从第一页提取作者姓名。

4. LLM 分类

a) 额外过滤

DOI 引用通过 Qwen2.5 32B-instruct-awq 进行数据/文章的额外过滤。

b) 主要/次要分类

DOI 链接使用 Qwen2.5 32B-instruct-awq 进行分类,登录 ID 使用 Qwen2.5 14B-instruct-awq 进行分类(对于 ID 来说,14B 的效果比 32B 好得多)。

未包含在最终提交中的方法

以下方法因为在公共排行榜 (Public LB) 上导致指标下降而未在最终提交中使用:

  1. 基于 LLM-logprobs 和其他引用特征(文本中的位置、提及次数等)的 LLM 后验证器。
  2. 在 DOI 上下文中添加参考文献中的引用提及(对于编号参考文献按编号,对于未编号参考文献按作者和出版年份)。
  3. 在 ID 上下文中添加 ID 范围的提及(例如 EPI_ISL_145872 to EPI_ISL_145888),适用于来自该范围的所有标识符上下文。
  4. 基于从 XML 文件提取的参考文献块中的文章名称添加 DOI 和 ID。
  5. 通过 optuna 优化上下文窗口大小。
  6. 各种类型的集成方法,包括混合专家框架 (mixture-of-experts)、聚类核心标签传播、堆叠泛化、bagging/boosting 混合,以及距离感知投票策略,以利用互补的模型优势并提高整体鲁棒性。
  7. 用于数据集提及的 SpaCy 自定义 NER。
同比赛其他方案