Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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中的概率计数_Python_String_Algorithm_Probability_Stat - Fatal编程技术网

Python中的概率计数

Python中的概率计数,python,string,algorithm,probability,stat,Python,String,Algorithm,Probability,Stat,我有一个50gb的txt文件,其中包含随机字符串,我想计算该文件中某个子字符串的出现次数。。很多时候,对于不同的非预定义的随机子字符串 我想知道是否有其他方法来解决这个问题 概率方式 类似于bloom过滤器,但我们可以使用概率计数来代替概率成员检查。该数据结构将用于计数估计 其他统计方法(?) 我可以使用任何虚拟方法来估计文本文件中字符串的出现次数吗?对其他选择持开放态度 如果能在与此问题相关的声音中单独或结合使用,那就太好了 对该文件的初始传递可以给出该文件的近似值。根据您的问题,可能重击手的

我有一个50gb的txt文件,其中包含随机字符串,我想计算该文件中某个子字符串的出现次数。。很多时候,对于不同的非预定义的随机子字符串

我想知道是否有其他方法来解决这个问题

概率方式

类似于bloom过滤器,但我们可以使用概率计数来代替概率成员检查。该数据结构将用于计数估计

其他统计方法(?)

我可以使用任何虚拟方法来估计文本文件中字符串的出现次数吗?对其他选择持开放态度

如果能在与此问题相关的声音中单独或结合使用,那就太好了

  • 对该文件的初始传递可以给出该文件的近似值。根据您的问题,可能重击手的分布对您来说已经足够了,但是这一组足够小,可以保存在内存中。如果是这种情况,你可以进行第二次传球,只计算第一次传球中的重击手

  • 数据结构可以执行近似计数。您可以单独使用此数据结构,也可以使用它计算重击者的发生次数

  • 因为它被标记为Python:

      • 您可以为您的文件计算a

        此数组包含按排序顺序排列的后缀的起始位置。有了50GB的文本,您可以为每个位置分配5个字节,并最终得到一个后缀数组5*50=250GB。如果这太多,那么你可以试试

        计算此阵列只需O(n)(使用适当的算法可能需要几个小时,主要受磁盘读/写速度的限制)


        一旦获得了数组,就可以计算任何子字符串在对数时间内的出现次数。实际上,时间主要取决于磁盘不同部分的寻道时间,因此如果将文件存储在固态驱动器上,这部分速度会快得多。

        为什么您认为不能使用计数器?您不需要提前指定键。即使您不想处理整个文件,也可以使用计数器对其中的某些部分进行采样。@jonrsharpeI您说得对,但我忘了补充一点,我没有50gb的RAM。计数器不会占用50gb的内存,而且您不需要一次将整个文件保存在内存中。你可以一次读一点。计算每个字符是完全可能的。为什么您认为需要50GB的ram?文件的大小一点也不重要,重要的是不同单词的数量,而且可能不会超过几千个,特别是如果您首先应用词干分析的话。@tobias_k words.。当然。字符组合?