【问题标题】:Determine if a body of text contains valid words or just "gibberish"确定正文是否包含有效单词或只是“胡言乱语”
【发布时间】:2012-07-30 16:45:39
【问题描述】:

我对识别任何给定文本正文是否包含有效的、实际的单词或只是胡言乱语的想法感兴趣。

我立即遇到的问题是它需要与语言无关,因为我们处理的数据是高度国际化的。这意味着要么是一种统计方法,要么是一种非常大的多语言哈希表方法。

多语言哈希表看起来很简单,但很笨重,而且可能很慢。 (或者至少是速度和准确性之间的折衷。)

但是,我真的没有在这种情况下对我有用的统计方法的背景,并且非常感谢任何人的经验或意见或任何其他建议。

【问题讨论】:

  • 如果您使用任何类型的统计分析,很容易产生符合标准的“胡言乱语”。
  • 是的,我希望至少可以提供一个门槛。仔细阅读,计算熵似乎是要走的路,至少可以帮助将大量文本划分为“可能的实际语言”和“不太可能的实际语言”。
  • 我不认为多语言哈希表不可避免地变得笨重和缓慢。如今,存储数十亿字的大型国际词典应该不是什么大问题,即使对于大型词典,词典查找也保持快速。您必须解决的问题是为您想要支持的每种语言找到一个大单词列表。还有:你如何定义乱码?您想将有意义的文本与包含有效英文单词但没有任何意义的文本分开吗?这对人类来说有时并不容易,祝你好运:-)
  • @DocBrown - 不,我们很高兴简单地说“如果一个文档主要由诸如 2340ois;adfgq34p5;adfkg;a90234p2o3 之类的字符串填充,那么它就是胡言乱语,但如果一个文档读起来像是由一个三岁的 LSD,我们称之为有效。”

标签: text word statistics


【解决方案1】:

您可以使用ngram 分析将您的文本与示例文本进行比较。这可以在字符或单词上。

Google 的NGram Viewer 可以帮助我理解我的意思。例如,如果我搜索“黑线鳕冰箱”,则不会出现任何事件(例如,这是乱码),而“堆栈溢出”则表明一旦计算机搜索,事件就会变得突出。

【讨论】:

  • 我研究了 n-gram。实际上,我必须交出完整的 Google n-gram 集,虽然它有 850GB 的数据,但它只涵盖了十几种语言。这是个好主意,从我在这里看到的回复来看,这可能是我最终采用的方法。
【解决方案2】:

您知道或可以确定文档的语言吗?我不认为为单一语言加载字典并计算有效单词的百分比会非常缓慢或占用大量内存。

它需要有多准确?

【讨论】:

  • 我试图在没有语言检测的情况下这样做,主要是因为很多文档可以是多语言的。就准确度而言,理想情况下,我们可以设置一个阈值,然后我们可以根据需要使用它来使其更准确。
猜你喜欢
  • 1970-01-01
  • 2011-08-16
  • 2012-09-11
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 2014-04-01
  • 2013-02-04
  • 2023-04-08
相关资源
最近更新 更多