[Python] 단어 간 상호정보량 계산 코드

Posted by 적분 ∫2tdt=t²+c
2017.02.14 18:12 프로그래밍

관련어를 추출하는데에 있어서 점별 상호정보량(http://bab2min.tistory.com/546)만큼 간단하면서도 훌륭한 방법은 많지 않습니다. 그래서 관련어 추출 방법들을 비교할 때 있어서 기준치로 쓰이기에 좋지요. 그래서 여기 저기 코드에서 상호정보량 계산 클래스를 자주 만들어 쓰다보니깐, 하나로 잘 만들어놔서 두고두고 재활용해야겠다는 생각이 들었습니다.


간결하면서도 아름다운 파이썬 코-드



생성자로는 window와 minNum 파라미터를 넣어줄수 있습니다. window는 두 단어가 함께 출현하는 것으로 볼 거리를 설정해주면 되고, minNum 횟수 밑으로 등장하는 단어는 계산시 제거됩니다.


train 함수에 문장(단어들의 list)을 반환해주는 iterator를 넣어주면 자동으로 단어 빈도 및 함께 출현하는 빈도를 바탕으로 점별 상호 정보량을 계산해줍니다. 


편리하게 사용하고자 보너스로 iterator 클래스를 하나 만들어놓았습니다.



사용법은 간단합니다.



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
이 댓글을 비밀 댓글로

티스토리 툴바