Kneser-Ney 평활화에서 보이지 않는 단어는 어떻게 처리됩니까?


15

내가 본 것에서, (2 차) Kneser-Ney 평활화 공식은 어떤 식 으로든 또는 다른 식으로 주어집니다.

PKN2(wn|wn1)=max{C(wn1,wn)D,0}wC(wn1,w)+λ(wn1)×Pcont(wn)

정규화 인자 λ(wn1) 로 주어

λ(wn1)=DwC(wn1,w)×N1+(wn1)

단어 w_n 의 연속 확률 Pcont(wn)wn

Pcont(wn)=N1+(wn)wN1+(w)

여기서 N1+(w) 는 컨텍스트에서 w 가 발견 된 컨텍스트의 수 또는 주어진 단어 w 앞에 나오는 별개의 단어 입니다 . 내가 이해 한 바에 따르면, 공식은 재귀 적으로 적용될 수 있습니다.w

이제 이것은 다른 n-gram 길이에 대해 알 수없는 컨텍스트에서 알려진 단어를 잘 처리하지만 사전에 설명되지 않은 단어가있을 때 어떻게 해야하는지 설명하지 않습니다. 유니 그램의 재귀 단계에서 P_ {cont} (/) = P ^ 0_ {KN} (/) = \ frac {1} {V} 이라는 이 예제 를 따라 보았습니다 . 이 문서는 Chen과 Goodman을 인용하여 위 공식을 P ^ 1_ {KN} (w) = P_ {cont} (w) 로 정당화합니다 .Pcont(/)=PKN0(/)=1VPKN1(w)=Pcont(w)

그래도 알 수없는 단어 w = \ text {unknown}가 있는 경우 어떻게 작동하는지 알 수 없습니다w=unknown . 이러한 경우에, Pcont(unknown)=0something , 알 수없는 단어는 훈련 세트와 관련하여 아무 것도 계속하지 않기 때문입니다. 마찬가지로 n-gram의 개수는 C(wn1,unknown)=0 됩니다.

또한, wC(wn1,w) 항은 알 수없는 단어의 순서 (예 : OOD 단어의 트라이 그램)가 발생하면 0이 될 수 있습니다.

내가 무엇을 놓치고 있습니까?


나는 KN도 어려움을 겪고 있습니다. 보이지 않는 bigram P (w1w2)의 확률은 마지막 유니 그램 w2의 연속 확률로 백 오프 될 수 있다고 생각합니다. 보이지 않는 유니 그램이 남아 있으면 아무것도 없었습니다. 다음에 할일? 모르겠어요
momobo

현재 KN을 직접 구현하려고 하는데이 같은 문제가 있습니다. 둘 중 하나가 해결책을 찾았습니까?
jbaiter

나는 보이지 않는 유니 그램 (주파수 및 주파수 주파수에 대한 전력 함수 맞추기)에 대한 Good-Turing 스무딩으로 돌아갔습니다 ... 다양한 결과.
sunside

답변:


6

Dan Jurafsky는 이 문제에 대해 약간 이야기하는 N-Gram 모델에 관한 장을 발표했습니다 .

재귀가 끝나면 유니 그램은 균일 분포로 보간됩니다.

PKN(w)=max(cKN(w)d,0)wcKN(w)+λ(ϵ)1|V|

우리가 알 수없는 단어를 포함하고 싶다면 <UNK>, 단어 수가 0 인 정규 어휘 항목으로 포함되므로 확률은 다음과 같습니다.

λ(ϵ)|V|

이것이 의미하는 것을 찾으려고 노력했지만 이 의미 하는지 확실하지 않습니다 . 이 경우 카운트가 0이되면 이 가 된다고 가정합니다 .ϵlimx0xλ(ϵ)d

λ(wi1)=dc(wi1)|{w:c(wi1,w)>0}|

알 수없는 단어는 할인의 일부만 할당됩니다.

λ(ϵ)|V|=d|V|

나는이 대답에 대해 전혀 확신하지 못하지만 더 많은 생각을 불러 일으키기 위해 그것을 꺼내고 싶었습니다.

업데이트 : 좀 더 파고 들자면 이 일반적으로 빈 문자열 ( "")을 나타내는 데 사용되는 것처럼 보이지만 이것이 계산에 어떻게 영향을 미치는지는 분명하지 않습니다 . 는 여전히 최선의 추측입니다ϵλd|V|


2
좋은 대답이지만 당신처럼 나는 100 % 확신하지 않습니다. 파이썬에서 perl 스크립트 research.microsoft.com/en-us/um/redmond/groups/srg/papers/… 의 버전을 구현 했지만 닫힌 어휘가있는 경우에만 작동합니다. )-즉 모든 테스트 유니 그램도 훈련 중입니다. 월 의해 제안 lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf I 사전 처리하는 동안 <UNK> 각 단어의 첫 번째 인스턴스를 교체했다. 그러나 파티셔닝 할 때 "goofedup"과 같이 기차에 포함되지 않은 테스트 유니 그램이 있습니다. 그래서 나는 d / | V | 여기. 감사!
Josh Morel

1

<UNK>Jurafsky는 훈련에서 아주 적은 횟수의 단어를 선택하고 간단히로 바꾸라고 제안하지만 모델을 훈련시키는 여러 가지 방법 이 있습니다 <UNK>.

그런 다음 평소처럼 확률을 훈련하십시오.

3:40에서 시작하는이 비디오를보십시오 –

https://class.coursera.org/nlp/lecture/19

또 다른 접근법은 <UNK>훈련에서 처음으로 단어를 단어로 간주하는 것입니다.하지만 내 경험에 따르면이 접근법은 확률 질량을 너무 많이 할당합니다 <UNK>.


0

단지 몇 가지 생각만으로, 문제에 대한 전문가가 아니기 때문에 질문에 대한 답변을 제공하지 않고 분석하려고합니다.

λ(ϵ)λ(ϵ)

λ(ϵ)=1미디엄엑스(케이(),0)'케이()
케이()

또 다른 옵션은 <unk>Randy가 언급 한 방법으로 확률 을 추정하여 정규 토큰으로 처리하는 것입니다.

λ(ϵ)|V|


답변은 실제 답변을위한 것으로 가정합니다.
Michael R. Chernick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.