代码之家  ›  专栏  ›  技术社区  ›  user2337270

获取取消识别的项目数?

  •  1
  • user2337270  · 技术社区  · 8 年前

    我正试图从谷歌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 当我使用上面显示的代码时,会生成3的redactioncount。我猜原因是它匹配多个信息类型。在我的情况下,我有 名字 , 姓氏 个人姓名 在我的信息类型列表中,我猜我得到了一个匹配项作为名字,另一个匹配项作为姓氏,第三个匹配项作为“人名”的整体。我要找的基本上是有多少词被删节了。也就是说,我希望 redactionCount 结果为==2。有更好/更容易的方法吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jordanna Chord    8 年前

    您是对的,在本机中,转换摘要是转换的数量,而不是转换的单词数量,但是您在这里指出的也是我向团队提交的一个bug。

    对于bug中的一些透明性和细节,问题在于它没有正确地处理重叠结果的场景。我们可以解决这个问题…同时,如果你从你的请求中删除人名,你会得到你想要的行为。

    (注意,即使修复了重叠的bug,如果您要求输入人名而不是另外两个,您最终还是会得到一个转换。)当然,一个名字可能跨越多个单词,因此当前不会总是给您一个单词计数。

    推荐文章