1

我正在尝试从 Google DLP Java 库的去识别结果中报告去识别字/字符串的确切数量。我在响应中使用它:

DeidentifyContentResponse response = dlpClient.deidentifyContent(request);
// Sum up the redactions
List<TransformationSummary> summaries =
        response.getOverview().getTransformationSummariesList();
int redactionCount = 0;

if (!isEmpty(summaries)) {
    redactionCount = summaries.stream()
            .mapToInt(TransformationSummary::getResultsCount)
            .sum();
}

我将输入作为表格发送,其中每个输入字符串都是一行,无论其中有多少单词/列。编辑计数似乎与我的预期大致相符,但在某些情况下,计数似乎已关闭。例如,Steve Jobs当我使用上面显示的代码时,输​​入产生的 redactionCount 为 3。我猜原因是它匹配多个InfoType。在我的情况下,我的信息类型列表中有FIRST_NAMELAST_NAMEPERSON_NAME,所以我猜我得到一个匹配名字,另一个匹配姓氏,第三个匹配“人名” . 我正在寻找的基本上是有多少单词被编辑/取消识别。即我希望redactionCount结果是== 2。有没有更好/更简单的方法来做到这一点?

4

1 回答 1

1

你是对的,原生转换摘要是转换的数量,而不是转换的单词数,但你在这里指出的也是我向团队提交的一个错误。

对于错误中的一些透明度和细节,问题在于它没有正确处理重叠发现的情况。我们可以解决这个问题......与此同时,如果您从请求中删除 PERSON_NAME,您将获得您所寻求的行为。

(值得注意的是,即使修复了重叠错误,如果您要求 person_name 而不是其他两个,您最终将得到一个转换。)当然,名字可能跨越多个单词,因此目前并不总是给你一个字数。

于 2018-05-23T04:46:24.807 回答