Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Ngram的计算是什么?_Python_N Gram - Fatal编程技术网

Python 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)对很多书进行

我正在做一个约会书的项目,我的主要想法是用“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的真实计算是什么。我真的需要了解这一点,所以请,如果你知道这件事是如何运作的,请让我知道

非常感谢:)


回答后编辑:我确实得到了比谷歌更高的值,因为我的值是概率(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这个词。