我试图从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。在我的情况下,我在InfoTypes列表中有 FIRST_NAME , LAST_NAME 和 PERSON_NAME ,所以我猜测我得到了一个匹配项名字的第一个名称,姓氏的另一个名称,以及&#34;姓名的第三个匹配&#34;完整的。我正在寻找的是基本上有多少单词被编辑/去识别。即我希望redactionCount
结果为== 2.有更好/更简单的方法吗?
答案 0 :(得分:1)
原则上你是对的,转换摘要是转换的数量,而不是转换的单词数量,但你在这里指出的也是我向团队提交的错误。
对于bug中的一些透明度和细节,问题在于它没有正确处理重叠发现的场景。我们可以解决这个问题......与此同时,如果您从请求中删除PERSON_NAME,您将获得所寻求的行为。
(值得注意的是,即使修复了重叠的错误,如果你要求的是person_name而不是其他两个,你最终会得到一个转换。)当然,第一个名字可能跨越多个单词因此,它目前不会给你一个字数。