我正在尝试从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。就我而言,我的 InfoType 列表中有FIRST_NAME、LAST_NAME和PERSON_NAME,所以我猜我得到一个匹配的名字,另一个匹配的姓氏,第三个匹配的"人名"。我正在寻找的基本上是有多少单词被编辑/去识别化。即我希望redactionCount
结果为 == 2。有没有更好/更简单的方法?
你是对的,从本质上讲,转换摘要是转换的数量,而不是转换的单词数,但你在这里指出的也是我向团队提交的错误。
对于错误中的一些透明度和细节,问题是它没有正确处理重叠结果的情况。我们可以解决这个问题...与此同时,如果您从请求中删除PERSON_NAME,您将获得您所寻求的行为。
(值得注意的是,即使修复了重叠的错误,如果您要求person_name而不是其他两个,您最终也会得到一个转换。当然,名字有可能跨越多个单词,因此目前不会总是为您提供字数。