본문 바로가기

NLP ( 자연어 처리 )

ARPA Language models

너무 아무 정보 없이 시작했더니 삽질을 많이한듯... ㅋㅋ



어쩌다 확장자가 .lm 로 시작하는 파일을 구했고... 물어보기 보단 혼자 파봐야 겠다는 생각에

이게 먼파일인지 한참을 찾다가


ARPA Format 형태로 작성된 파일이라는 것을 알게 되었다.




아!! 혹시 language model 이 뭐지?? 라고 생각하시는 분들을 위해!

https://en.wikipedia.org/wiki/Language_model


language model 에 대한 위키페이지인데 읽어보실 분들은 읽어보시구~

그냥 특정 사전( 또는 Documents, resources 등에서라고 이해해도 될듯!) 에서의 단어들의 확률 분포( 출현 빈도 ) 이다.


그니까 ARPA Format 의 lm  파일은 이러한 단어들의 확률분포를 문서에 어떠한 형태로 표시할것인가를 정하고, 그 포맷에 맞게 작성한 파일을 의미한다.


그럼 아래 AFPA Language Model  파일을 한번 샘플로 보도록 하자!



sample_arpa_format.lm


\data\
ngram 1=7
ngram 2=7

\1-grams:
0.1 <UNK>	0.5555
0 <s>	 0.4939
0.1 </s>	 1.0
0.2 wood	 0.5555
0.2 cindy	0.5555
0.2 pittsburgh		0.5555
0.2 jean	 0.6349

\2-grams:
0.5555 <UNK> wood
0.5555 <s> <UNK>
0.5555 wood pittsburgh
0.5555 cindy jean
0.5555 pittsburgh cindy
0.2778 jean </s>
0.2778 jean wood 

\end\



근데 보통 확률은 log 의 형태로 작성한다.


\data\
ngram 1=7
ngram 2=7

\1-grams:
-1.0000 <UNK>	-0.2553
-98.9366 <s>	 -0.3064
-1.0000 </s>	 0.0000
-0.6990 wood	 -0.2553
-0.6990 cindy	-0.2553
-0.6990 pittsburgh		-0.2553
-0.6990 jean	 -0.1973

\2-grams:
-0.2553 <UNK> wood
-0.2553 <s> <UNK>
-0.2553 wood pittsburgh
-0.2553 cindy jean
-0.2553 pittsburgh cindy
-0.5563 jean </s>
-0.5563 jean wood 

\end\


1-gram 에서 보면

-1.0000 <UNK>	-0.2553

라고 해서 -1.0000 과 -0.2553 이라고 써지는데 

앞쪽이 순수한 probablity  값이고 뒤쪽은 katz-backoff smoothing 된 값이다.


그럼 다음 시간에 katz-backoff에 대해 알아보자!! ^-^!!




참조 : http://cmusphinx.sourceforge.net/wiki/sphinx4:standardgrammarformats

'NLP ( 자연어 처리 )' 카테고리의 다른 글

katz-backoff  (0) 2016.04.17
Zipf's law  (0) 2016.04.08
Edit distance  (0) 2016.04.04
ngram-count  (0) 2016.04.04
n-gram  (0) 2016.04.04