2014-12-17 1 views
1

큰 데이터 집합에서 얻은 단어 - 빈도를 사용하여 단어가 공존하는 빈도를 계산하기 위해 점 상호 정보 (PMI) 연관 측정을 사용합니다. 내가상호 정보 : 우발 치 테이블 형식의 계산 예 (Java)

log(P(X,Y)/(P(X)*P(Y)) 

의 고전적인 공식을 통해 PMI를 계산하고 내가 http://collocations.de/AM/index.html

내가 얻는 결과에 발견 joint-와 한계 주파수와 비상 테이블 표기법을 사용하고

은 매우 유사하지만,하지 똑같다. 내가 이해 한 한 두 가지 방법 모두 정확히 동일한 결과 값을 가져야합니다. I는 두 식을 이용하여 코퍼스에서 단어의 주파수를 사용하는 자바 programm에 작은 (최소 동작 예)를 만들었다. 나는 두 가지 방법에 대해 다른 결과를 얻는다. 누군가 왜 그 이유를 알고 있습니까?

public class MutualInformation 
{ 
    public static void main(String[] args) 
    { 
     long N = 1024908267229L; 

     // mutual information = log(P(X,Y)/P(X) * P(Y)) 
     double XandY = (double) 1210738/N; 
     double X = (double) 67360790/N; 
     double Y = (double) 1871676/N; 

     System.out.println(Math.log(XandY/(X * Y))/Math.log(10)); 
     System.out.println("------"); 

     // contingency table notation as on www.collocations.de 
     long o11 = 1210738; 
     long o12 = 67360790; 
     long o21 = 1871676; 
     long c1 = o11 + o21; 
     long r1 = o11 + o12; 
     double e11 = ((double) r1 * c1/N); 
     double frac = (double) o11/e11; 
     System.out.println(Math.log(frac)/Math.log(10)); 
    } 

} 
+0

'비슷하지만 비슷하지 않다'라는게 무슨 뜻이야? 'e11 = r1 * c1/(double) N; ; FRAC = O11/E11'와'Y = 1871676.0/N' –

+0

나는 이러한 결과를 얻을 : 3.9930973261888347 ------ 비슷하지만 3.768700373995412 동일하지 – toobee

답변

1

가 동일한 조건에서

물품하자
long o11 = 1210738; 
    long o12 = 67360790; 
    long o21 = 1871676; 
    long N = 1024908267229L 

제 식

XandY = o11/N; 
    X = o12/N; 
    Y = o21/N; 

그래서

XandY/(X * Y) 

(o11/N)/(o12/N * o21/N) 

또는

o11 * N/(o12 * o21) 

주 더 추가 할 일이 없습니다.

두 번째 방정식은 다소 다릅니다.

c1 = o11 + o21; 
r1 = o11 + o12; 
e11 = ((double) r1 * c1/N); 
frac = (double) o11/e11; 

그렇게

e11 = (o11 + o21) * (o11 + o12) /N; 
frac = (o11 * N)/(o11^2 + o11 * o12 + o21 * o11 + o21 * o12); 

나는 수학적으로 그들이 동일하지 않습니다 이러한 서로 다른 것으로 기대.

내가 원하는대로 수학을 쓰고 코드를 작성하는 것이 가장 효율적입니다.

+0

확인 감사합니다. 따라서 두 공식이 모두 똑같은 결과를 가져올 것이라고 기대하는 것은 잘못된 판단이었습니다. 나는 그 (것)들의 동등성에 관하여 계산서를 또는 왜 단지 조금 다를지 찾아 낼 수 없습니다. 적어도 단어 - 주파수의 경우에 대비 표 버전이 자주 사용되는 것 같습니다. – toobee

+0

@toobee 먼저 로그 10 개를 가져 오지 않으면 실제로 많이 다릅니다. –