Python Ngram的计算是什么?
我正在做一个约会书的项目,我的主要想法是用“ngram”来做。 我进入这里,发现了具有最明确图表的ngrams(多年来数值不稳定)。 然后,我用python编写了一个代码,用于“阅读”书籍——它需要这本书,一些Ngram,然后计算Ngram在文本中的频率。例如,文本“用爆炸性大爆炸解除所有人类的武装”中的ngram“ex”应该是0.05263157894736842,因为文本中有2个“ex”,有38个可能的两个字母组合,所以我认为ngram应该是2/38 所以我用1gram(ABC)对很多书进行了计算,我得到了所有书的大致相同的数字。然后我回到谷歌的ngram,很明显我得到的数字和他们得到的数字完全不同。例如,1gram“a”约为0.078,b为0.0135,依此类推,但谷歌的ngram为[a=1.54]和[b=0.0066] 我得出的结论是我的计算完全错了。现在,我想问你,ngram的真实计算是什么。我真的需要了解这一点,所以请,如果你知道这件事是如何运作的,请让我知道 非常感谢:)Python Ngram的计算是什么?,python,n-gram,Python,N Gram,我正在做一个约会书的项目,我的主要想法是用“ngram”来做。 我进入这里,发现了具有最明确图表的ngrams(多年来数值不稳定)。 然后,我用python编写了一个代码,用于“阅读”书籍——它需要这本书,一些Ngram,然后计算Ngram在文本中的频率。例如,文本“用爆炸性大爆炸解除所有人类的武装”中的ngram“ex”应该是0.05263157894736842,因为文本中有2个“ex”,有38个可能的两个字母组合,所以我认为ngram应该是2/38 所以我用1gram(ABC)对很多书进行
回答后编辑:我确实得到了比谷歌更高的值,因为我的值是概率(0比1),所以如果我想把这个值转换成%,我必须乘以100,这是有意义的,因为在英语中字母“a”(8%)比“a”更多总之。你确定你从谷歌报告的价值吗?频率范围从0到1,结果是1.54。如果我是你,我会查一查 这表示字母
a
的频率为0.08167
您还应该意识到,此频率是基于特定样本的。当样本量足够大时,假设字母出现的频率接近真实值
当我听到n-gram时,我通常会想到单词。1克是一个单词(例如“苹果”);三个字就是三个字(例如“我们人民”)。好的,所以我做了一些研究,@duffymo实际上是对的。 不管是单词还是字母,谷歌的Ngram引擎都会以单字短语的形式搜索。例如,如果我写“a”,它会将“a”(带空格)作为单个单词搜索 我对我的代码做了一些修改,现在我得到的结果和谷歌的一样
谢谢 -你确定1-gram是一个单词吗-谢谢,我会读到frequency这封信,但我仍然认为n-gram是一个最好的选择,因为我有谷歌的频率与年数的图表,它真的能帮我确定书的年代。问题是我不理解他们的计算,因此我得不到相同的数字-我还想用2克,3克或4克(我指的是2,3和4个字母的组合),但我也看到了我的值和谷歌2克的值之间的不同。我不想用常量值,因为我想给书定日期,所以我想知道N-gramYes的频率随年份的不同,我确信n-gram指的是单词和字母。n-gram可以在字符和单词两个层次上计算;哪一个是合适的取决于任务。您正在计算字符n-gram统计。谷歌使用n-grams这个词。