[Python] 3변수 상호정보량을 활용한 연어 추출 코드

Posted by 적분 ∫2tdt=t²+c
2018.01.30 18:55 프로그래밍/NLP

최근 연어 추출과 관련하여 몇몇 문의가 있었어서 '다변수 정규화 상호정보량과 연어 추출'에서 다뤘던 다변수 상호정보량을 계산하는 파이썬 코드를 공유해드립니다.




getPMI 및 getNPMI 메서드가 연속된 3단어 a,b,c의 상호정보량 및 정규화 상호정보량을 계산해줍니다. 전체 a-b-c 셋에 대한 상호정보량 값을 알고 싶다면 getPMIDict, getNPMIDict 메서드를 사용하시면 됩니다. 최소 minNum 이상 등장한 단어 셋에 대해 각각 상호정보량 및 정규화 상호정보량을 계산하여 dict로 돌려줍니다.


이전의 상호정보량 계산 코드와 마찬가지로 다음과 같이 이터레이터를 선언하여 사용하면 편리합니다.



실제 사용은 다음과 같이 하면 되겠죠?




Tags
이 댓글을 비밀 댓글로
    • 2018.01.31 09:56
    비밀댓글입니다
    • CHJ
    • 2019.06.06 14:15
    파이썬 초보라 아직 조작을 잘 못하는데
    코드를 실행했더니
    NameError : name 's' is not defined가 뜨네요. 어떻게해야할까요?
    • 코드에 버그가 있었네요. s를 line으로 고치셔야합니다. 게시물을 수정했으니 다시 확인부탁드립니다.

      오류 제보 감사드려요~