获取去标识化的项目数量?

Obtaining the number of items de-identified?

我正在尝试根据 Google DLP Java 库的去标识化结果报告去标识化 words/strings 的确切数量。我在回复中使用了这个:

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();
}

我将输入作为 Table 发送,其中每个输入字符串都是一行,无论其中有多少 words/columns。 编辑计数似乎与我的预期基本一致,但在某些情况下计数似乎不对。例如,当我使用上面显示的代码时,输​​入 Steve Jobs 产生的修订计数为 3。我猜原因是它匹配了不止一种 InfoType。就我而言,我有 FIRST_NAMELAST_NAMEPERSON_NAME 在我的 InfoType 列表中,所以我猜我得到了一个匹配名字,另一个匹配姓氏,第三个匹配整个 "person name"。我正在寻找的基本上是 redacted/de-identified 有多少个单词。 IE。我希望 redactionCount 结果为 == 2。是否有 better/easier 方法可以做到这一点?

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

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

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