我有一个大约 700 行的文件(比如说 corpus.txt),每行包含以 . 分隔的数字-
。例如:
86-55-267-99-121-72-336-89-211
59-127-245-343-75-245-245
首先我需要从文件中读取数据,找到每个数字的频率,测量这些数字的 Zipf 分布,然后绘制分布图。我已经完成了任务的前两部分。我一直在绘制 Zipf 分布。
我知道numpy.random.zipf(a, size=None)
应该用于此。但我发现它非常难以使用。任何指针或代码片段都会非常有帮助。
代码:
# Counts frequency as per given n
def calculateFrequency(fileDir):
frequency = {}
for line in fileDir:
line = line.strip().split('-')
for i in line:
frequency.setdefault(i, 0)
frequency[i] += 1
return frequency
fileDir = open("corpus.txt")
frequency = calculateFrequency(fileDir)
fileDir.close()
print(frequency)
## TODO: Measure and draw zipf distribution