보안_모의해킹/NLP based Deobfuscator
3. N 그램
쫑알bot
2025. 7. 27. 15:56
728x90
문자열에 대해 N개의 토큰으로 나누어 처리하는 것이다.
문자열에 대해 단어로 나눈다면 저렇게 3개가 나누어지고
[ 1-gram ] 방식으로는 f,i,n,e,... 이렇게 한 글자씩 나누어서 레벨을 나눌 수 있다.
2-gram 방식
len(sentence) - 2 만큼 i를 돌리면서
[ i : i+2 ] 를 토큰으로 갖는 것이다.
📌N-gram의 특징
1) Bag of Word의 한계인 '단어 순서 무시' 를 해결할 수 있다
Bag of word에서는 Machine learning이라는 단어를 알 수도 없고,
not이 fun에 가는지, boring에 가는지 알 수 없다.
하지만 Bi-gram에서는 그런 한계를 해결할 수 있다.
2) 다음 단어 예측이 가능
위와 같이 how are 만 쳤을 때, 그 뒤에 어떤 단어가 올 지 예측할 수도 있으며
스펠링을 중간까지만 쳤을 때도, 그 이후에 어떤 단어가 올자 알 수 있다.
3) 오타 찾기
'qw' 는 데이터에 있지 않다.
'wa' 도 없기 때문에 그 칸에 대신 들어갈만한 것들을 데이터에서 찾은 뒤에 교체할 수도 있다.
(출처) 유튜브 허민석 - 딥러닝 자연어처리