바이그램(bigram)은 디그램(digram)이라고도 하며, 일반적으로 문자, 음절 또는 단어로 구성된 토큰 문자열에서 인접한 두 요소의 시퀀스이다. 공식적으로 바이그램은 n이 2인 n-그램이다. 주어진 문자열에서 모든 바이그램의 빈도 분포는 전산 언어학, 암호학, 음성 인식을 포함한 많은 응용 분야에서 텍스트의 단순 통계 분석에 흔히 사용된다.
바이그램은 자연어를 이해하고 처리하는 데 있어 기초적인 구성 요소 역할을 한다. 인접 항목의 동시 발생을 조사함으로써 연구자와 엔지니어는 텍스트 내의 지역적 관계를 포착할 수 있으며, 이는 시퀀스에서 다음 단어를 예측하는 작업부터 문서의 언어를 식별하는 작업에 이르기까지 유용하다. 바이그램은 단일 문자 또는 단일 단어 분석과 더 긴 n-그램 모델 사이의 중간 지점을 나타내며, 계산 효율성과 설명력 사이의 균형을 유지한다.
응용 분야
바이그램은 텍스트의 통계적 속성이 관련된 다양한 영역에서 사용된다. 전산 언어학 및 자연어 처리에서 바이그램은 많은 언어 모델, 특히 자동 음성 인식에 사용되는 모델의 핵심 요소이다. 이러한 모델은 이전 단어가 주어졌을 때 단어의 확률, 즉 바이그램 빈도의 직접적인 응용에 의존하여 가능한 음성 해석 간의 모호성을 해소하고 전사 정확도를 향상시킨다.
암호학에서 바이그램 빈도 공격은 단순 대체 암호를 포함한 크립토그램을 해독하는 데 사용되는 고전적인 기법이다. 암호화된 텍스트의 문자 쌍 빈도를 의심되는 언어의 알려진 분포와 비교함으로써 암호 분석가는 가능성 있는 문자 매핑을 추론할 수 있다. 이 방법은 자연어에서 문자 및 그 조합의 비균일 분포를 이용하는 광범위한 빈도 분석에 속한다.
통계적 언어 식별의 경우 바이그램 빈도는 간단한 접근 방식을 제공한다. 다양한 언어에 대한 특징적인 바이그램 분포 프로필을 구축함으로써 시스템은 알 수 없는 텍스트 샘플의 바이그램 빈도가 각 프로필과 얼마나 일치하는지 측정하여 분류할 수 있다. 이 기법은 비교적 짧은 텍스트 조각에서도 효과적이다.
레크리에이션 언어학, 즉 로골로지에서 바이그램은 유희적 탐구의 주제이다. 애호가들은 가능한 모든 바이그램으로 시작하는 영어 단어를 찾거나 'logogogue'와 같은 단어처럼 반복된 바이그램 문자열을 포함하는 단어를 발견하려고 시도한다. 이러한 활동은 영어 단어 형성의 흥미로운 패턴과 한계를 강조한다.
또한 갭 바이그램(gappy bigram)이라고도 하는 건너뛰기 바이그램은 구성 단어 사이에 간격을 허용하는 단어 쌍이다. 이 변형은 연결 단어를 피하거나 의존 문법의 구문 관계를 시뮬레이션하는 것과 같은 더 넓은 의존성을 모델링할 수 있게 한다. 이러한 바이그램은 기본 개념을 확장하여 문장 내에서 더 먼 상호 작용을 포착한다.
영어에서의 바이그램 빈도
대규모 영어 말뭉치에서 가장 흔한 문자 바이그램의 빈도는 뚜렷한 분포를 따른다. 가장 빈번한 바이그램은 'th'로 전체 바이그램 발생의 3.56%를 차지하며, 그 다음으로 'he'가 3.07%, 'in'이 2.43%, 'er'가 2.05%, 'an'이 1.99%이다. 다른 빈번한 바이그램으로는 're'가 1.85%, 'on'이 1.76%, 'at'이 1.49%가 있다.
분포는 'en'이 1.45%, 'nd'가 1.35%, 'ti'가 1.34%, 'es'가 1.34%, 'or'가 1.28%, 'te'가 1.20%로 계속된다. 바이그램 'of'는 1.17%로 나타나며 'ed'도 1.17%이다. 낮지만 여전히 주목할 만한 빈도로는 'is'가 1.13%, 'it'이 1.12%, 'al'이 1.09%, 'ar'이 1.07%, 'st'가 1.05%, 'to'가 1.05%가 있다.
목록 아래로 내려가면 'nt'가 1.04%, 'ng'가 0.95%, 'se'가 0.93%, 'ha'가 0.93%, 'as'가 0.87%, 'ou'가 0.87%, 'io'가 0.83%, 'le'가 0.83%, 've'가 0.83%이다. 바이그램 'co'와 'me'는 각각 0.79%로 발생하며, 그 다음으로 'de'와 'hi'가 각각 0.76%이다. 다른 작은 백분율로는 'ri'가 0.73%, 'ro'가 0.73%, 'ic'가 0.70%, 'ne'가 0.69%, 'ea'가 0.69%, 'ra'가 0.69%, 'ce'가 0.65%가 있다.
이 빈도 데이터는 가장 흔한 쌍을 식별하여 암호 해독에 도움을 주는 암호학과 같은 응용 분야, 그리고 키보드 레이아웃이나 텍스트 압축 알고리즘 최적화에 중요하다.
다른 n-그램과의 관계
바이그램은 n이 시퀀스의 요소 수를 나타내는 일반적인 n-그램 기법의 특정 사례이다. 유니그램(n=1)은 개별 토큰을 고려하는 반면, 트라이그램(n=3) 및 더 높은 차수의 n-그램은 더 긴 문맥을 포착한다. n의 선택은 절충을 수반한다. 더 큰 n 값은 더 복잡한 의존성을 모델링할 수 있지만 데이터 희소성으로 인해 신뢰할 수 있게 추정하려면 기하급수적으로 더 많은 데이터가 필요하다.
현대 Machine learning 응용 분야, 특히 Natural language processing 파이프라인에서 n-그램 통계는 Transformer (architecture) 아키텍처와 같은 Neural network 모델에 의해 크게 대체되었다. 그러나 바이그램은 기초적인 language model 연구와 계산 리소스가 제한적이거나 해석 가능성에 대한 요구가 높은 시나리오에서 여전히 관련성이 있다.
계산 측면
바이그램 빈도 계산은 간단하고 효율적이다. 주어진 토큰 문자열에 대해 시퀀스를 반복하면서 각 인접 토큰 쌍을 계산할 수 있다. 결과 개수는 확률을 생성하기 위해 정규화될 수 있다. 이 과정은 다음 토큰의 확률이 현재 토큰에 조건부로 부여되는 마르코프 모델의 기초를 형성한다.
바이그램은 또한 Data Augmentation 기법과 특정 작업의 Loss Functions에서 사용되지만, 이러한 용도는 전통적인 통계 방법보다 덜 일반적이다. 시퀀스 생성의 Beam Search 개념은 종종 n-그램 모델의 확률 추정에 의존하지만, 현대 시스템은 일반적으로 더 고급 Neural network 기반 점수를 사용한다.
같이 보기
- Digraph (orthography)
- Letter frequency
- N-gram
- Frequency analysis