> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 규칙 기반 + 통계적 NLP

> 이 문서는 **[GenAI 개념](/blog/guides/genai-concepts/overview)** 섹션의 일부입니다.

## 1. 규칙 기반 NLP (1950\~1990년대)

### 등장 배경

컴퓨터가 처음 등장했을 때, 연구자들은 **인간이 정한 문법 규칙** 으로 언어를 처리할 수 있다고 믿었습니다. Noam Chomsky의 형식 문법(Formal Grammar) 이론이 이 시기 NLP의 이론적 기반이었습니다.

### 대표 시스템

이 시기의 대표적인 NLP 시스템 3가지를 비교합니다. 각 시스템은 서로 다른 접근 방식으로 언어를 처리했지만, 모두 **수동으로 규칙을 정의** 해야 한다는 공통 한계를 가졌습니다.

| 시스템         | 연도       | 개발자              | 목적           | 작동 방식            |
| ----------- | -------- | ---------------- | ------------ | ---------------- |
| **ELIZA**   | 1966     | Weizenbaum (MIT) | 심리 상담 시뮬레이션  | 패턴 매칭 + 규칙 기반 응답 |
| **SHRDLU**  | 1971     | Winograd (MIT)   | 가상 세계 조작     | 문법 파싱 + 의미 추론    |
| **전문가 시스템** | 1970\~80 | 다수               | 의료 진단, 법률 자문 | if-then 규칙 체인    |

**ELIZA 작동 예시:**

```
사용자: "나는 어머니가 걱정돼요"
규칙:  "나는 {X}가 걱정돼요" → "{X}에 대해 더 말해주세요"
ELIZA: "어머니에 대해 더 말해주세요"
```

### 성과와 한계

규칙 기반 NLP가 남긴 유산과, 다음 패러다임으로 넘어가게 만든 근본적 한계를 정리합니다.

| 성과                         | 한계                           |
| -------------------------- | ---------------------------- |
| 제한된 도메인에서 높은 정확도           | 규칙을 **수작업** 으로 작성해야 함        |
| 명확한 해석 가능성 (왜 이 답인지 추적 가능) | 새로운 도메인마다 전부 다시 구축           |
| 표준화된 형식의 입력 처리에 강함         | 자연어의 **모호성, 비문, 은어** 를 처리 못함 |
|                            | 규칙 수가 수만 개를 넘으면 **관리 불가능**   |

> **주의**
> **교훈**: "언어는 규칙으로 정의할 수 있다"는 가정 자체가 틀렸습니다. 자연어는 예외가 규칙보다 많습니다. 이 깨달음이 통계적 접근의 시작점이 됩니다.

***

## 2. 통계적 NLP (1990\~2000년대)

### 등장 배경

규칙 기반의 한계를 목격한 연구자들은 발상을 전환합니다: **규칙을 사람이 쓰는 대신, 데이터에서 통계적 패턴을 학습** 하자. 인터넷의 등장으로 대량의 텍스트 데이터가 확보 가능해지면서, 이 접근이 실용적이 됩니다.

### 핵심 기술

#### N-gram 언어 모델

**N-gram** 은 연속된 N개의 단어 조합의 출현 빈도를 세어, 다음 단어의 확률을 추정하는 모델입니다.

```
"오늘 날씨가" 다음에 올 단어 확률:
  P("좋다" | "오늘 날씨가") = 0.35  ← 학습 데이터에서 35% 빈도
  P("덥다" | "오늘 날씨가") = 0.20
  P("나쁘다" | "오늘 날씨가") = 0.15
```

| N | 이름      | 예시          | 특징            |
| - | ------- | ----------- | ------------- |
| 1 | Unigram | "날씨"        | 단어 독립 — 문맥 무시 |
| 2 | Bigram  | "날씨가 좋다"    | 직전 1단어만 참고    |
| 3 | Trigram | "오늘 날씨가 좋다" | 직전 2단어 참고     |

**한계 — 데이터 희소성 (Sparsity)**:

* N이 커질수록 조합 수가 폭발적으로 증가 (어휘 V개 → V^N 조합)
* 학습 데이터에 한 번도 등장하지 않은 조합은 확률 0 → 실제로는 가능한 문장을 "불가능"으로 판단
* Smoothing(라플라스, Kneser-Ney 등)으로 완화하지만, 근본적 해결은 불가

#### TF-IDF (Term Frequency - Inverse Document Frequency)

**문서 검색** 과 **텍스트 분류** 를 위한 단어 가중치 기법입니다.

```
TF-IDF(단어, 문서) = TF(단어, 문서) × IDF(단어)

TF  = 해당 문서에서 단어가 나온 횟수 / 총 단어 수
IDF = log(전체 문서 수 / 해당 단어가 포함된 문서 수)
```

**핵심 아이디어**: 특정 문서에서 자주 나오지만(TF 높음), 전체 문서에서는 드문 단어(IDF 높음)가 그 문서를 가장 잘 대표합니다.

| 단어           | TF (문서 A) | IDF  | TF-IDF | 해석                |
| ------------ | --------- | ---- | ------ | ----------------- |
| "Databricks" | 0.05      | 3.2  | 0.16   | 이 문서의 핵심 주제       |
| "데이터"        | 0.08      | 0.3  | 0.024  | 너무 흔한 단어 — 구별력 낮음 |
| "은/는/이/가"    | 0.12      | 0.01 | 0.0012 | 조사 — 의미 없음        |

**활용**: 검색 엔진 랭킹, 문서 분류, 키워드 추출 → 오늘날에도 BM25(TF-IDF 발전형)로 **Elasticsearch, Databricks Vector Search 하이브리드 검색** 에서 현역으로 사용

#### Hidden Markov Model (HMM)

**순차적 데이터** 에서 숨겨진 상태를 추론하는 확률 모델입니다. NLP에서는 **품사 태깅(POS Tagging)** 과 **개체명 인식(NER)** 에 핵심적으로 사용되었습니다.

```
관측:    "나는    회사에서   점심을   먹었다"
숨겨진:  대명사   명사       명사     동사    ← HMM이 추론
```

### 성과와 한계

통계적 NLP는 데이터 기반 자동 학습이라는 획기적인 전환을 이뤘지만, 단어의 **의미** 를 이해하지 못한다는 근본적 한계가 남아 있었습니다.

| 성과                  | 한계                                    |
| ------------------- | ------------------------------------- |
| 규칙 없이 데이터에서 자동 학습   | 단어를 **이산 기호** 로 취급 — "왕"과 "임금"이 관련 없음 |
| 검색, 분류, 번역 품질 대폭 향상 | **의미적 유사성** 을 전혀 포착 못함                |
| Google 번역 초기 버전의 기반 | N-gram의 고차원 희소성 문제                    |
| 대규모 코퍼스 활용 가능       | 문맥에 따른 단어 의미 변화 처리 불가                 |

> **참고**
> **현재까지 살아있는 기술**: TF-IDF의 발전형인 **BM25** 는 2025년 현재도 검색 시스템의 핵심입니다. Databricks Vector Search의 하이브리드 검색도 BM25 + 벡터 검색을 결합합니다. 기초 기술이 완전히 사라지는 것이 아니라, 새로운 기술과 결합되어 발전합니다.
