如何从 Azure 认知搜索 EntityRecognition 技能输出中删除重复的命名实体?

How to remove duplicate named entities from Azure Cognitive Search EntityRecognition skill output?

我正在使用包含 EntityRecognition 技能的 Azure 认知搜索技能集来从 Azure 存储的 blob 中查找所有人、位置和组织。

当我 运行 具有不同 minimumPrecision 值的技能时,它总是 returns 具有重复值的列表。

有没有办法告诉技能去重?或者我是否需要创建自定义技能来处理 EntityRecognition 技能的结果以删除所述重复项?

目前,作为实体识别技能的一部分,本机无法删除重复项。团队开发了一项强大的技能,可以帮助您建立技能组合。 https://github.com/Azure-Samples/azure-search-power-skills/blob/master/Text/Distinct/README.md

@Ishan 关于 Distinct PowerSkill 的回答是我采用的方法,但有一些细节需要添加到答案中以确保全面 post。

由于索引文档非常大,主要目标是将所有文档内容分块到 50K 个字符的页面中。这允许每个页面都有重复的关键短语,并在页面之间进一步重复。

挑战在于如何获取每个页面的所有关键短语数组并将它们作为单词集合传递给 PowerSkill Distinct 自定义技能。

以下是我的解决方案中使用的技能集中自定义技能的定义。自定义技能已从 PowerSkills github 存储库部署到名为 Distinct20200629152300 的函数应用程序。

要检索函数 URL,您可以从函数的代码 + 测试部分获取它,并将 URL 粘贴到技能定义中,如下所示。

技能定义的关键部分是输入词注释/document/merged_content/pages/*/keyphrases/*,它将'flatten'所有页面关键字数组合并为一个数组。这允许自定义技能访问所有页面关键字,以便成功删除整个列表的重复项。