字符串中的 Ngram 多于 unigram

More Ngrams than unigrams in a string

我注意到双字母组的数量多于单字母组的数量,三字母组的数量多于双字母组的数量。所以基本上,ngram 的数量多于 unigram 的数量。我不明白这怎么可能。

新德里是印度的首都。
一元字母组数 - 7
双字母组数 - 6
卦数 - 5

在这里我清楚地看到unigrams的数量总是大于ngrams。

人们在谈论不同n-grams的数量。

密西西比河是美国的一条河流。它有四个不同的一元组(M、I、S、P);但是有五个不同的二元组(MI、IS、SI、IP、PI)和六个不同的三元组(MIS、ISS、SSI、SIP、IPP、PPI)。

或者从理论上看:字母表 {A, B} 有两种可能的一元字母组合、四种可能的二元字母组合、八种可能的三元字母组合...

二元组中的单词数大于一元组中的单词数。同样,三元组中的单词数大于二元组中的单词数。

如果您要在包含许多字符串的实际数据集上执行此操作,则为真。如果您在单个字符串上执行它,那么结果将相反。

让我们通过一个例子来理解它。假设字符串 1 包含:w1,w2,w3,w4,w5,w6,字符串 2 包含:w1,w7,w3,w2,w5,w4,w6。 所以这里的 unigrams 总数是 {w1,w2,w3,w4,w5,w6,w7}。所以 unigram 中的单词总数是 7

现在让我们看看二元语法的情况。双字母组中的单词总数为:

 {(w1,w2),(w2,w3),(w3,w4),(w4,w5),(w5,w6),(w1,w7),(w7,w3),(w3,w2),(w2,w5),(w5,w4),(w4,w6)}

所以这里的二元组单词总数是11

发生这种情况是因为在 unigram 的情况下有很多单词重复,但在 bigram 的情况下重复的单词更少,而在 trigram 的情况下重复的单词数量更少。当你增加 n-gram 中 n 的值时,更少的单词会开始重复,因此随着你增加 n-gram 中 n 的值,单词的数量也会增加。