返回列表

28th Place Solution

618. USPTO - Explainable AI for Patent Professionals | uspto-explainable-ai

开始: 2024-04-24 结束: 2024-07-24 法律检索 数据算法赛
第 28 名解决方案

第 28 名解决方案

作者: Dilpreet, DH, Tarun Ramesha
发布日期: 2024-07-26
竞赛排名: 28

感谢美国专利商标局 (USPTO) 组织并主持本次竞赛,并向所有获奖团队表示热烈祝贺。

解决方案概述

总体方法是构建如下形式的查询:rare_cpcs_docs OR ((sub-query) AND (sub-query) AND …)。我们使用了 CPC 的全局频率索引以及摘要和权利要求的 IDF 查找表,详见下文讨论。

  • 我们很早就发现,仅使用 CPC 代码进行检索非常强大。为了减少搜索空间,我们构建了一个 rare_cpcs_docs 查询,这是 CPC 的 OR 连接。这仅适用于那些在全局 CPC 命中次数非常少(< 50)的文档。本地测试显示,这通常around 5-10 个文档。
  • 每个“子查询”的目的是获取共同概念以覆盖剩余的约 40 个文档。我们通过结合使用 CPC 和使用 KeyBERT 从摘要和权利要求中提取的关键字来实现这一点。

我们专注于稀有 CPC 和稀有关键字,这些关键字主要在 50 个文档内共享(即具有高局部命中率和低全局计数的 CPC,具有高局部命中率和高全局 IDF 的关键字),然后我们贪心地选择表现最好的实体,直到覆盖所有文档(贪心集合覆盖)。

  • 重复此过程以构建尽可能多的“子查询”迭代,直到超过 50 个令牌限制(没有“魔法”令牌限制)。

生成“子查询”

我们在生成这些子查询方面进行了大量实验,但都没有带来巨大的增益:

  • 使用标题字段
  • 过滤掉子查询之间的重叠词,例如,如果“电极”用于子查询 1,则过滤掉“负电极”,以便它不在后续查询中使用
  • n-gram 内的 ADJ/NEAR(>=3gram)提供了更多稀有关键字的选择,这些关键字在 50 个文档内具有更高的命中率。然而,与其他运算符相比,它消耗更多的查询项。

构建全局索引

我们分析了整个 parquet 文件集(1000 多万项独立专利)以构建这些索引:

  • CPC 代码的频率计数
  • 摘要的 Unigram 和 bigram IDF 值
  • 权利要求的 Unigram 和 bigram IDF 值

目的是使用这些查找表来惩罚高频术语,从而减少我们检索到的无关文档数量。

其他想法

  • 我们的第一个条目完全由 CPC 代码组成,形式为 cpc:(a OR b OR c OR …)。代码的选择基于局部频率因素,即我们优先考虑覆盖最多 50 个文档的代码;一个简单的贪心集合覆盖算法。这个简单查询在排行榜上得分为 0.37。
  • 我们还尝试将“子查询”聚焦于专利的每个部分,例如 (ti:subquery) (clm:subquery)(cpc:subquery)。这将有助于检测 50 个文档中每个部分的共同专利格局。由于每个子查询的查询大小较小,该解决方案没有产生预期的改进。

技巧与窍门

  • 我们使用 Polars + 多线程非常快速地处理并将 125,000 个相关专利存储 in memory 以实现即时检索。
同比赛其他方案