카테고리 없음

자연어 처리, Bag of Words, n-그램

유방울 2023. 9. 5. 15:49

Bag of Words

문자를 숫자로 표현하는 방법 중 하나

great thank you  라고 대답할 때 

가방 안에 이렇게 들어감

출현 빈도로 본다면 다음과 같음

수치로 표한함

첫 번째, 유사도 

이 수치로 표현한 것은 문장의유사도를 구할 수 있음

How? 

awesome 문장과 great 문장의 유사도는?

-> 각각의 인데스를 곱하고 다 더해줌 -> 2

=> 두 문장의 유사도는 2

 

great 문장과 not bad 유사도는?

-> 0

두 번째, 머신러닝 입력값

감성분석 예제의 문제

제한

문장이 백만개가 넘어감 -> 차원이 백만개가 넘어 -> 실제 문장하나를 표현할 때 무수히 많은 0이 있음-> 계산량이 높아짐 -> 메모리 사용량 높음

 

많이 출현한 단어는 힘이 세짐

단어의 순서를 철저히 무시함 

-> 문장의 의미를 무시함

-> home run과 run home이 똑같은 벡터로 표현됨

새로운 단어를 표현할 수 없음

ex) 오타가 많음

----

n-그램

연속적으로 n개의 토큰으로 구성됨

단어, 캐릭터를 의미함

unigram

n이 1이면 유니그램이라고 함

bigram

 

n이 2일 때는 바이그램이라고 함

bigram

 

fine you는 토큰이 안 됨 -> 서로 붙있지 않기 대문임

trigram

트라이그램

trigram

3개의 캐릭터가 하나의 토큰이 됨

Why n-gram?

1. bag of words의 문제를 극복할 수 있음

단어의 순서가 철저히 무시됨 

 

machine learning is fu and is not boring 문장

not이 어디에 속하는지 모름

순서가 무시됐기 때문임

 

binary 사용시는!?!? 

not boring임을 확실하게 알 수 있음

문맥적인 것을 확실히 할 수 있음

 

2.  next word prediction

input에 넣을 때 다음 단어를 예측할 수 있음

 

Navie 한 방법 사용

 

how are 다음에 어떤 것을 추천해야 하는가?

you가 2번 나옸으니까  you 추천!

 

qwal을 검색했다면?

qw가 없음

하지만 qu라고 3번 ua라고 2번 발생됨

qwql을 검색시 -> gu 가능성이 높

3. misspelling

오타를 발견해서 다른 단어 추천할 수 있음