對(duì)于家庭作業(yè),我必須繪制文本的詞頻并將其與最佳zipf分布進(jìn)行比較。根據(jù)它們?cè)谌罩救罩緢D中的排名繪制文本的計(jì)數(shù)詞頻似乎工作正常。但是我在計(jì)算最佳 zipf 分布時(shí)遇到了麻煩。結(jié)果應(yīng)該是這樣的:我不明白計(jì)算直線的方程是什么樣的zipf。在zipf法律的德國(guó)維基百科頁(yè)面上,我發(fā)現(xiàn)了一個(gè)似乎有效的等式但沒(méi)有引用來(lái)源,所以我不明白常數(shù)1.78來(lái)自哪里。#tokenizes the file tokens = word_tokenize(raw)tokensNLTK = Text(tokens)#calculates the FreqDist of all words - all words in lower casefreq_list = FreqDist([w.lower() for w in tokensNLTK]).most_common()#Data for X- and Y-Axis plotvalues=[]for item in (freq_list): value = (list(item)[1]) / len([w.lower() for w in tokensNLTK]) values.append(value)#graph of counted frequencies gets plottedplt.yscale('log')plt.xscale('log')plt.plot(np.array(list(range(1, (len(values)+1)))), np.array(values))#graph of optimal zipf distribution is plottedoptimal_zipf = 1/(np.array(list(range(1, (len(values)+1))))* np.log(1.78*len(values)))###1.78plt.plot(np.array(list(range(1, (len(values)+1)))), optimal_zipf)plt.show()我使用此腳本的結(jié)果如下所示:但我只是不確定最佳zipf分布是否計(jì)算正確。如果是這樣,最佳zipf分布不應(yīng)該在某一點(diǎn)與 X 軸交叉嗎?
1 回答

慕標(biāo)5832272
TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
看看Andrew William Chisholm 的這篇研究論文。特別是第 22 頁(yè)。
H (N) ≈ ln (N) + γ
其中 γ 是 Euler-Mascheroni 常數(shù),近似值為 0.57721。注意到 exp(γ) ≈ 1.78,方程 <...> 可以重寫為大 N(N 必須大于 1,000 才能精確到千分之一)。
pr 1 / [r*ln(1.78*N)]
添加回答
舉報(bào)
0/150
提交
取消