我试图从Google库的去标识结果中报告未识别的单词/字符串的确切数量。我用这个来回应:
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
会产生一个3的redactionCount。我猜原因是它与多个InfoType匹配。在我的例子中,我的列表中有FIRST_NAME、LAST_NAME和PERSON_NAME,所以我猜我得到了一个匹配的名字,另一个匹配了姓氏,还有一个匹配了整个"person name“。我要找的基本上是有多少个词被删掉了。也就是说,我希望redactionCount
的结果是== 2。有没有更好/更简单的方法来做到这一点?
发布于 2018-05-22 20:46:24
您是对的,从本质上说,转换摘要是转换的数量,而不是转换的字数,但是您在这里指出的也是我向团队提交的一个bug。
对于bug中的一些透明度和细节,问题在于它没有正确地处理重叠发现的场景。我们可以解决这个..。同时,如果您将PERSON_NAME从您的请求中删除,您将得到您想要的行为。
(值得注意的是,即使修复了重叠错误,如果您请求person_name而不是其他两个,那么您将得到一个单独的转换。)当然,一个名字跨越多个单词是可能的,所以它目前不会总是给你一个单词计数。
https://stackoverflow.com/questions/50476047
复制