标签: zipf

曲线拟合 zipf 分布 matplotlib python

我试图用 Python 中的 Zipf 分布 PDF F~x^(-a)拟合以下图(红点。我只是选择a=0.56并绘制了y = x^(-0.56),我得到了如下所示的曲线。

曲线显然是错误的。我不知道如何进行曲线拟合。

在此处输入图片说明

python matplotlib zipf

3
推荐指数
1
解决办法
2488
查看次数

Zipf 分布:我如何测量 Zipf 分布

如何测量或找到 Zipf 分布?例如,我有一个英语单词语料库。我如何找到 Zipf 分布?我需要找到 Zipf 分布,然后绘制它的图形。但我陷入了第一步,即找到 Zipf 分布。

编辑:从每个单词的频率计数来看,很明显它遵守 Zipf 定律。但我的目标是绘制一个 zipf 分布图。我不知道如何计算分布图的数据

python statistics numpy scipy zipf

3
推荐指数
1
解决办法
6583
查看次数

如何查找文件中十个最常用单词的频率?

我正在 Python 上编写一个函数,它将文本文件的名称(作为字符串)作为输入。该函数应首先确定每个单词在文件中出现的次数。稍后,我将制作一个条形图,显示文件中十个最常见单词的频率,每个条形旁边是第二个条形,其高度是 Zipf 定律预测的频率。我已经有一些图形代码,但我需要帮助来查找文本文件中最常见的单词。

def zipf_graph(text_file):
    import string
    file = open(text_file, encoding = 'utf8')
    text = file.read()
    file.close()

    #the following strips and removes punctuation and makes the words lowercase
    punc = string.punctuation + '’”—??“?'
    new_text = text
    for char in punc:
        new_text = new_text.replace(char,'')
        new_text = new_text.lower()
    text_split = new_text.split()
Run Code Online (Sandbox Code Playgroud)

我被困在这里,我试图在列表中找到最常见的字符串,但我不知道从哪里开始,以下是我尝试过的:

    words = text_split
    most_common = max(words, key = words.count)
    # print(most_common)
Run Code Online (Sandbox Code Playgroud)

我还想添加以下代码,因为它被建议提供帮助

    # Sorting a list by frequency
    # Assumes you have your elements as (word, frequency) tuples …
Run Code Online (Sandbox Code Playgroud)

python python-3.x zipf

2
推荐指数
1
解决办法
161
查看次数

标签 统计

python ×3

zipf ×3

matplotlib ×1

numpy ×1

python-3.x ×1

scipy ×1

statistics ×1