【问题标题】:Gibberish detection in RR中的乱码检测
【发布时间】:2023-03-12 04:10:01
【问题描述】:

R中是否有任何功能或方法来检测文本乱码?

我在 Google 上进行了一些搜索,但找不到有希望的东西(似乎在 python 或其他环境中发生了一些很酷的事情)。

所以假设以下文本:

my_texts <- c("akshdvas", "fsd", ".....-----asdknl", "real text", "aaaaaaaaaaaaaaa")

我现在想了解一下哪些元素可以被认为是乱码(在这种情况下,前三个 + 第五个元素)。这可以是简单的 TRUE/FALSE 分类,也可以是某种显示乱码程度的度量(如距离度量)。

注意:我知道乱码的定义可能很模糊,在一个域中被认为是乱码的东西在其他情况下可能是有效的字符串,但假设我想检测是否有人只是随机敲击他们的键盘。

我正在考虑的另一种方法是相反的,即检测我的向量中的字符串(或单个单词)是否出现在字典中,如果没有则认为这是乱码。

【问题讨论】:

    标签: r nlp


    【解决方案1】:

    这真的取决于你对胡言乱语的定义。在您的示例中,您可以使用 hunspell 来查看它是否是乱码。 Hunspell 将根据字典运行文本,默认为 en-US(美国英语)。但这是假设文本的其余部分正确编写。这可能是一个很大的假设。

    library(hunspell)
    
    # use sapply to unlist the hunspell return. Correct text is represented in the list as character(0).
    which_are_bad <- sapply(hunspell(my_texts), function(x) length(x) == 1)
    which_are_bad 
    [1]  TRUE  TRUE  TRUE FALSE  TRUE
    
    my_texts[which_are_bad]
    [1] "akshdvas"         "fsd"              ".....-----asdknl" "aaaaaaaaaaaaaaa" 
    

    【讨论】:

    • 有趣。我会看看它是否适用于我的情况。
    【解决方案2】:

    你可以试试 gibber 包,但它只能通过 github 获得:https://github.com/glender/gibber

    library(gibber)
    #> ✓ Version: 1.0.1
    
    # create vector with character data
    text <- c(
     "Personally I'm always ready to learn, although I do not always like being taught.",
     "asdfg",
     "Computer",
     "dfhdfghd",
     "I love to walk.",
     "dhdshergeregfrvgergsgr"
    )
    
    # assess if text is legit, on default output gives a probability
    # the higher the prob, the more likely text is gibberish
    is_gibber(text)
    #> [1] 0.1476262401 0.9998687067 0.0005267262 0.9998653365 0.0767789781 0.9998563863
    
    # change output to logical
    is_gibber(text, output="bool")
    #> [1] FALSE  TRUE FALSE  TRUE FALSE  TRUE
    

    【讨论】:

    • 谢谢。一定会试一试的。但有趣的是,第一个响应仍有 14% 的概率是胡言乱语,因此需要为我自己的用例找到一个好的阈值。
    猜你喜欢
    • 2021-07-12
    • 2021-03-31
    • 2018-11-12
    • 2015-10-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多