Java 语料库中出现率小的词语去除算法

Java 语料库中出现率小的词语去除算法,java,algorithm,word,Java,Algorithm,Word,我有一个大的(+/-300000行)文本片段数据集,其中包含一些嘈杂的元素。对于嘈杂的词,我指的是俚语、类型错误等…我希望过滤掉这些嘈杂的元素,以获得更干净的数据集 我读了一些文章,建议通过跟踪每个单词的出现来过滤掉这些内容。通过设置treshold(例如小于20),我们可以假设这些单词是噪声,因此可以安全地从语料库中删除 也许有一些库或算法可以快速有效地实现这一点。当然,我自己先试过,但速度非常慢 总而言之,我正在寻找一种算法,可以快速有效地过滤掉比某个特定树状结构出现次数少的单词。也许我可以

我有一个大的(+/-300000行)文本片段数据集,其中包含一些嘈杂的元素。对于嘈杂的词,我指的是俚语、类型错误等…我希望过滤掉这些嘈杂的元素,以获得更干净的数据集

我读了一些文章,建议通过跟踪每个单词的出现来过滤掉这些内容。通过设置treshold(例如小于20),我们可以假设这些单词是噪声,因此可以安全地从语料库中删除

也许有一些库或算法可以快速有效地实现这一点。当然,我自己先试过,但速度非常慢

总而言之,我正在寻找一种算法,可以快速有效地过滤掉比某个特定树状结构出现次数少的单词。也许我可以添加一个小例子:

This is just an example of whaat I wish to acccomplish.
“whaat”和“accomplish”这两个词拼写错误,因此出现的频率较低(如果我们假设生活在一个完美的世界中,而且拼写错误很少……)。我希望最后的结果是

This is just an example of I wish to.
谢谢


PS:如果可能的话,我希望有一个Java算法(或伪代码,这样我就可以自己编写)

我认为您使用评论中建议的方法过于复杂了

您可以对数据进行两次传递:

  • 建立一个直方图:
    Map
    ,统计发生次数
  • 对于每个单词,当且仅当
    map.get(word)>THRESHOLD

  • 作为旁注,如果有的话-我认为固定阈值方法不是最好的选择,我个人会过滤出现少于
    MEAN-3*STD
    的单词,其中
    MEAN
    是平均单词数,
    STD
    是最重要的。(3个标准差意味着你捕捉到的单词几乎超出了预期的正态分布,概率约为99%)。你可以“玩”恒定因子,找到最适合你需要的。

    我认为你在评论中建议的方法过于复杂了

    您可以对数据进行两次传递:

  • 建立一个直方图:
    Map
    ,统计发生次数
  • 对于每个单词,当且仅当
    map.get(word)>THRESHOLD

  • 作为旁注,如果有的话-我认为固定阈值方法不是最好的选择,我个人会过滤出现少于
    MEAN-3*STD
    的单词,其中
    MEAN
    是平均单词数,
    STD
    是最重要的。(3个标准差意味着你捕捉到的单词几乎超出了预期的正态分布,概率约为99%)。你可以“玩”恒定因子,找到最适合你需要的。

    我真的不喜欢你的方法。有很多罕见但完全有效的词语将会丢失。如果要删除拼错的单词,请检查拼写。您自己做了哪些尝试?1)构建一个2D数组,其行数等于数据集中的行数。2) 逐行读取,将每个单词添加到HashMap中,其中字符串是单词,对象包含出现次数和索引列表(列、行),以查找该单词在整个数据集中出现的位置。3) 我将线转换为StringArray,并将其作为行添加到2D数组中。4) 我根据出现次数对HashMap进行排序,对于每个出现@tom的单词,在我读到的所有关于我希望完成的事情的研究论文中,他们都提出了相同的建议。它们只是删除出现次数少于某个特定树状结构的单词。这不会影响结果。请注意。在正常的英语文本中,大部分的合法词语是单义词;它们在整个语料库中出现一次。然而,这些话是有意义的。它们常常是句子的主题,或者是其他单词的同义词。我真的不喜欢你的方法。有很多罕见但完全有效的词语将会丢失。如果要删除拼错的单词,请检查拼写。您自己做了哪些尝试?1)构建一个2D数组,其行数等于数据集中的行数。2) 逐行读取,将每个单词添加到HashMap中,其中字符串是单词,对象包含出现次数和索引列表(列、行),以查找该单词在整个数据集中出现的位置。3) 我将线转换为StringArray,并将其作为行添加到2D数组中。4) 我根据出现次数对HashMap进行排序,对于每个出现@tom的单词,在我读到的所有关于我希望完成的事情的研究论文中,他们都提出了相同的建议。它们只是删除出现次数少于某个特定树状结构的单词。这不会影响结果。请注意。在普通英语文本中,大部分合法词是单轴的;它们在整个语料库中出现一次。然而,这些话是有意义的。它们通常是一个句子的主语,或者是其他单词的同义词。