Nlp 字节vs字符vs单词-n-gram的粒度是多少?

Nlp 字节vs字符vs单词-n-gram的粒度是多少?,nlp,data-mining,text-mining,n-gram,Nlp,Data Mining,Text Mining,N Gram,至少可以考虑3种类型的n-gram来表示文本文档: 字节级n-grams 字符级n-grams 字级n-grams 我不清楚哪一个应该用于给定的任务(聚类、分类等)。我在某个地方读到,当文本包含拼写错误时,字符级别的n-grams比单词级别的n-grams更受欢迎,因此“Mary Love dogs”仍然类似于“Mary lpves dogs” P>是否有其他的标准来选择“右”表示?< P>我会彻底丢弃字节级的N-gram,用于文本相关的任务,因为字节不是任何东西的有意义的表示。 在剩下的

至少可以考虑3种类型的n-gram来表示文本文档:

  • 字节级n-grams
  • 字符级n-grams
  • 字级n-grams
我不清楚哪一个应该用于给定的任务(聚类、分类等)。我在某个地方读到,当文本包含拼写错误时,字符级别的n-grams比单词级别的n-grams更受欢迎,因此“Mary Love dogs”仍然类似于“Mary lpves dogs”


<> P>是否有其他的标准来选择“右”表示?

< P>我会彻底丢弃字节级的N-gram,用于文本相关的任务,因为字节不是任何东西的有意义的表示。 在剩下的两个级别中,字符级别的n-grams将需要更少的存储空间,并且随后将容纳更少的信息。它们通常用于语言识别、作者识别(即指纹识别)、异常检测等任务

至于单词级的n-gram,它们可能有相同的用途,甚至更多,但它们需要更多的存储空间。例如,要在内存中表示英语单词3-grams的有用子集(用于通用任务),最多需要几GB。然而,如果您需要处理的文本集有限,那么单词级n-gram可能不需要太多存储空间

至于错误的问题,一个足够大的单词n-grams语料库也将包含并表示错误。此外,有各种平滑方法来处理稀疏性

n-gram的另一个问题是,它们几乎永远无法捕获所需的全部上下文,因此只能近似地捕获


您可以在经典中阅读更多关于n-grams的内容。

评估。选择代表性的标准是任何可行的

事实上,字符级(!=字节,除非您只关心英语)可能是最常见的表示形式,因为它对拼写差异(如果您查看历史记录,不一定是错误;拼写更改)非常敏感。因此,为了纠正拼写错误,这个方法很有效

另一方面,读者在他们的图书语料库中使用单词级的n-gram。因为他们不想分析拼写,而是想分析术语的使用情况;e、 g.“儿童保育”,其中单个单词不如它们的组合有趣。这在机器翻译中非常有用,通常被称为“冰箱磁铁模型”


如果您不处理国际语言,字节也可能有意义。

我在小字符串上使用字符ngrams,而单词ngrams则用于更大文本块的文本分类。这是一个问题,哪种方法将保留您或多或少需要的上下文

一般来说,对于文本分类,单词ngrams将有助于词义歧义消除,因为字符ngrams很容易混淆,并且您的特征可能完全不明确。对于无监督集群,这将取决于您希望集群的通用性,以及希望文档在什么基础上聚合。我发现词干分析、停止词删除和单词二元图在相当大的语料库上的无监督聚类任务中工作得很好

字符Ngram非常适合小字符串的模糊字符串匹配

我喜欢把一组图看作一个向量,想象一下将向量与你所拥有的图进行比较,然后问问自己,你所比较的内容是否有足够的上下文来回答你试图回答的问题