私は、それぞれの行に-
で区切られた約700行のファイル(corpus.txtと言う)を持っています。たとえば:Zipf Distribution:Python/Numpyを使ってZipf Distributionを測定するには
86-55-267-99-121-72-336-89-211
59-127-245-343-75-245-245
まず私は、ファイルからデータを読み取り、各番号の周波数を見つけ、これらの数字のジップ分布を測定して、分布をプロットする必要があります。私は仕事の最初の2つの部分をやった。私は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
'numpy.random.zipf(サイズ=なし確率密度関数と共にサンプルのヒストグラムのプロット) 'はZipf分布を生成しません。 Zipfディストリビューションからサンプルを描画します。データをパラメトリックなZipfディストリビューションに収め、最適なパラメータを推定する必要があります。 – DyZ
私はnumpyとscipyものに新しいです。データをパラメトリックZipfディストリビューションに収め、最適なパラメータを推定するにはどうすればよいですか? 私が上記のように、私は個々の数字の頻度カウントを持っています。 –
関連するコードを追加できますか? – kmario23