2017-04-14 15 views
-2

수천 줄의 코퍼스가 있습니다.정보 이론 측정 : 엔트로피 계산

Today is a good day 
I hope the day is good today 
It's going to rain today 
Today I have to study 

가 어떻게 위의 코퍼스를 이용하여 엔트로피를 계산합니까 : 간단하게하기 위해서, 신체가로 간주 할 수 있습니다?

enter image description here

이 지금까지 내 이해입니다 : 엔트로피의 공식으로 주어진다 파이는 frequency(P)/(total num of characters)로 계산 한 개별 표지의 확률을 의미한다. 제가 이해하지 못하는 것은 합계입니다. 이 특정 공식에서 합계가 어떻게 작동하는지 모르겠습니다.

저는 통계 데이터 분석을 위해 Python 3.5.2을 사용하고 있습니다. 누군가가 엔트로피 계산을위한 코드 스 니펫으로 나를 도울 수 있다면 정말 좋을 것입니다.

+0

배열 함수의 합계를 수행하는'numpy' 메서드가 있어야합니다. – Barmar

답변

0

SciPy https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.entropy.html을 사용하여 엔트로피를 계산할 수 있습니다. 그런

또는 쓰기 무언가 :

import math 
def Entropy(string,base = 2.0): 
    #make set with all unrepeatable symbols from string 
    dct = dict.fromkeys(list(string)) 

    #calculate frequencies 
    pkvec = [float(string.count(c))/len(string) for c in dct] 

    #calculate Entropy 
    H = -sum([pk * math.log(pk)/math.log(base) for pk in pkvec ]) 
    return H 


print(Entropy("Python is not so easy")) 

그것은 3.27280432733를 반환합니다.