DATA101
[NLP] N-gram 언어 모델의 개념, 종류, 한계점 본문
📌 Text 빅데이터분석 플랫폼 베타테스트 참가자 모집 중!(네이버페이 4만 원 전원 지급)

👋 안녕하세요, 코딩이 필요 없는 AI/빅데이터 분석 All in One 플랫폼 <DATA101> 개발팀입니다.
😊 저희 서비스를 사용해 보시고 경험담을 들려주세요 :)
💸 참여해 주신 "모든" 분들께 네이버페이 4만 원 쿠폰을 지급해 드립니다.
👨💻 참여 희망 시 카톡플러스친구 1:1 채팅 or 인스타그램 DM 부탁드립니다 :)
📆 참여기간 : 11/25(월)~11/29(금) 11:00~21:00 중 택1 (1시간 1타임)
👉 참여장소 : 강남역 인근 스터디카페 미팅Room
📍 소요시간 : 총 40분 내외(서비스 체험 및 인터뷰 포함)
✅ 참가조건 : Text 빅데이터 분석 업무 경험자
👉 참가 가능일정 조회하기 : https://url.kr/n8k8gu
- 카톡플친 : http://pf.kakao.com/_SxltHG/chat
- 인스타그램 : https://www.instagram.com/data101.official/
📚 목차
1. N-gram 개념
2. N-gram 등장 배경
3. N-gram 종류
4. N-gram 기반 단어 예측
5. N-gram의 한계점
1. N-gram 개념
언어 모델(Language Model)은 문장 내 앞서 등장한 단어를 기반으로 이어서 등장할 적절한 단어를 예측하는 모델입니다. 언어 모델은 크게 통계학 기반의 언어 모델(Statistical Language Model, SLM)과 인공신경망(Artificial Neural Network, ANN) 기반의 언어 모델이 있습니다. N-gram은 통계학 기반의 언어 모델 중 하나입니다. N-gram 언어 모델은 이처럼 다음 단어를 예측할 때 문장 내 모든 단어를 고려하지 않고 특정 단어의 개수(
2. N-gram 등장 배경
N-gram 언어 모델은 통계학을 기반으로 전통적인 방식의 통계학적 언어 모델의 한계점인 희소(Spasity) 문제를 보완하기 위해 등장하였습니다.
아무리 수만, 수 십만 개의 문장을 활용하여 모델을 학습시킨다 해도, 똑같은 단어 구성과 어순을 갖는 문장이 몇 개나 될까요? 하물며 해당 문장 뒤에 등장하는 단어들마다 전체 문서에서 등장하는 문장의 개수가 몇 개나 될까요? 반면, N-gram은 일부 단어 개수만 고려하기 때문에 전체 문서에서 해당 문장을 카운팅할 확률을 높일 수 있습니다.
3. N-gram 종류
N-gram은 문장을 몇 개의 단어 개수에 따라 나눌지에 따라 종류가 결정됩니다. 아래와 같은 예시 문장을 활용하여 N-gram 언어 모델을 구현했을 때 어떤 결과가 나오는지 알아봄으로써 N-gram 종류에 대해 이해해 봅니다. 문장 부호는 전처리한다고 가정하겠습니다.
"오늘 점심 추천 메뉴: 파스타, 피자"
모델명 | 구현 결과 | |
1 | Unigram(N=1) | 오늘, 점심, 추천, 메뉴, 파스타, 피자 |
2 | Bigram(N=2) | 오늘 점심, 점심 추천, 추천 메뉴, 메뉴 파스타, 파스타 피자 |
3 | Trigram(N=3) | 오늘 점심 추천, 점심 추천 메뉴, 추천 메뉴 파스타, 메뉴 파스타 피자 |
4 | 4-gram(N=4) | 오늘 점심 추천 메뉴, 점심 추천 메뉴 파스타, 추천 메뉴 파스타 피자 |
4. N-gram 기반 단어 예측
N-grma 언어 모델은 이전
여기서 Count란 전체 문서 데이터(=corpus)에서 해당 문장이 등장한 횟수를 의미합니다. 예를 들어, 전체 문서 데이터에서 '점심 추천 메뉴'이라는 문장이 1,000번, '점심 추천 메뉴' 문장 뒤에 '파스타' 단어가 500번 등장하고, '갈비탕'이 300번 등장했다고 가정해 보겠습니다. 즉, '점심 추천 메뉴' 뒤에 '파스타'가 등장할 확률은
따라서 이 언어 모델은 높은 확률을 갖는 '파스타'를 '점심 추천 메뉴' 문장 뒤에 출력합니다.
5. N-gram의 한계점
N-gram 언어 모델은 다음과 같은 한계점이 있습니다.
(1) 정확도 문제
N-gram 언어 모델은 문장 내 전체 단어를 고려하는 언어 모델과 비교했을 때 정확도가 낮다는 한계가 있습니다. N-gram 언어 모델은 이전에
예를 들어, N-gram 기반 챗봇을 만들었다고 가정해 보죠. 앞서 활용한 예시 문장인 '오늘 점심 메뉴 추천' 다음 이어질 단어를 예측할 때 trigram을 사용하면 '오늘'이라는 단어는 고려하지 않습니다. 만약, 사용자가 '오늘'이 아닌 '내일'의 점심 메뉴를 물어봐도 챗봇은 '오늘' 점심 추천 메뉴와 같은 결과만 출력할 것입니다. 이처럼, N-gram은 문장 앞부분의 중요한 키워드나 맥락을 놓치는 경우가 생길 수 있다는 한계가 있습니다.
(2) 희소(Sparsity) 문제
N-gram 언어 모델은 희소 문제를 갖는 한계가 있습니다. 전체 문서(=Corpus)에서 문장 내 전체 단어를 고려하는 언어 모델과 비교했을 때, N-gram 언어 모델은 일부 단어만 고려하기 때문에 전체 문서에서 특정 단어의 출현 확률을 높일 수 있다는 장점이 있습니다. 그럼에도 불구하고, 전체 문서에서
(3) 상충(Trade-off) 문제
N-gram 언어 모델은
Unigram | Bigram | Trigram | |
Perplexity | 962 | 170 | 109 |
위와 표와 같이,
이러한 N-gram 언어 모델의 한계점은 어떻게 보완되었을까요? 바로 인공신경망(Aritificial Neural Network, ANN)을 활용하는 방법입니다. 인공 신경망은 N-gram 언어 모델의 한계점을 극복하고 더욱 우수한 성능을 보이는 것으로 알려져 있습니다. 다음 포스팅에서는 인공신경망 기반 언어 모델에 대해 알아봅니다.
📚 참고할 만한 포스팅
1. [NLP] Bag of Words(BoW) 개념 및 실습
2. [NLP] 문서 단어 행렬(DTM) 개념 이해
3. [NLP] TF-IDF 개념 및 계산 방법
4. [NLP] Word Embedding의 이해: (1) 희소표현 및 밀집표현
5. [NLP] 언어모델(Language Model)의 개념 및 특징
6. [NLP] N-gram 언어 모델의 개념, 종류, 한계점
7. [NLP] 언어모델의 평가지표 'Perplexity' 개념 및 계산방법
8. [NLP] Word2Vec: (1) 개념
9. [NLP] Word2Vec: (2) CBOW 개념 및 원리
10. [NLP] Word2Vec: (3) Skip-gram
11. [NLP] Word2Vec: (4) Negative Sampling
12. [NLP] 문서 유사도 분석: (1) 코사인 유사도(Cosine Similarity)
13. [NLP] 문서 유사도 분석: (2) 유클리디안 거리(Euclidean Distance)
14. [NLP] 문서 유사도 분석: (3) 자카드 유사도(Jaccard Similarity)
👨💻 맞춤 서비스
저희 AI/BigData 분석 솔루션 전문 브랜드 <데이터워너원 DATA101>에서는
맞춤형 데이터 수집부터 통계분석, 텍스트마이닝, AI 모델링, 논문작성을 지원해 드립니다 :)
자세한 내용은 아래 링크를 참고해 주세요!
데이터분석, 통계분석, 논문작성 지원해 드립니다. - 크몽
데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>Python, SPSS, Tableau를 활용해 <strong>...
kmong.com
텍스트 데이터 분석/텍스트마이닝NLP 도와드립니다. - 크몽
데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p>대기업 AI/빅데이터 연구원 출신으로 구성된 법인 주식회사 유에프5는 Py...
kmong.com
유튜브 댓글 원하는 만큼 수집해 드립니다/웹 크롤링 - 크몽
데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p><strong style="font-size: 24px;&q...
kmong.com
모바일 앱 리뷰 크롤링/구글 플레이 스토어 - 크몽
데이터워너원DATA101 전문가의 IT·프로그래밍 서비스를 만나보세요. <p><strong>구글 플레이 스토어 앱 리뷰 1시간 안에 수집해 ...
kmong.com
오늘은 N-gram 언어 모델에 대해 알아봤습니다.
포스팅 내용에 오류가 있거나 보완할 점이 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다 :)
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다.
고맙습니다😊
'AI & 빅데이터 > 자연어처리(NLP)' 카테고리의 다른 글
[NLP] Word Embedding의 이해: 희소표현과 밀집표현 (1) | 2022.04.06 |
---|---|
[NLP] 언어모델의 평가지표 'Perplexity' 개념 및 계산방법 (0) | 2022.04.05 |
[NLP] 언어모델(Language Model)의 개념 및 특징 (2) | 2022.03.31 |
[NLP] TF-IDF 개념 및 계산 방법(+Python 코드) (6) | 2022.03.25 |
[NLP] 문서 단어 행렬(DTM) 개념 이해 (0) | 2022.03.24 |