단어는 그 동료를 통해 알 수 있다 — 프롬프트를 현명히 고르라

R-Blogger · 블로그·해설 · 2026-03-26

R-Blogger블로그·해설한국어2026-03-26

단어는 그 동료를 통해 알 수 있다 — 프롬프트를 현명히 고르라

컴퓨터 언어학에서 단어의 의미와 문맥 컴퓨터 언어학에서는 단어의 의미가 그 문맥에 의해 형성된다고 봅니다. 영국 언어학자 John Rupert Firth가 1957년에 제시한 “당신은 단어가 함께 있는 사람들을 통해 그 단어를 알게 될 것이다”라는 말은 (Brunila & LaViolette, 2022)에서 재검토되었습니다. 이 말은 일종의 인생 조언처럼 들리지만, Firth는 기술적인 의미를 담고 있었습니다. 바로, 함께 자주 등장하는 단어들은 의미 영역을 공유한다는 것입니다. 예를 들어 형용사 “good”은 “kind”, “genuine”, “fair”, “quality”와 함께 자주 등장하지만 “broken”이나 “fraud”와는 거의 함께 나타나지 않습니다. 따라서 이들 이웃을 추적하는 모델은 “good”의 의미를 한 번도 명시하지 않아도 배울 수 있습니다. 이 원리는 다의어에도 확장됩니다. “bank”은 “river”, “fishing rod”와 함께 있을 때와 “overdraft”, “mortgage”와 함께 있을 때 완전히 다른 의미를 갖습니다. 문맥은 모든 것의 핵심입니다. 이 단순해 보이는 통찰은 생성형 AI를 구축한 토대가 되었습니다. 초기 컴퓨테이션 구현과 그 성과 Firth의 원리를 가장 먼저 구현한 것은 분포적 의미 모델들입니다. 예를 들어 Latent Semantic Analysis (LSA; Landauer & Dumais, 1997)와 Hyperspace Analogue to Language (Lund & Burgess, 1996) 같은 모델은 오늘날 기준에 비해 작은 규모였지만, 실제 세계 구조를 놀라운 정밀도로 포착했습니다. Louwerse와 Zwaan (2009)은 영어 텍스트에서 도시 이름이 함께 등장하는 빈도가 실제 지리적 거리를 예측한다는 것을 보여주었습니다. 지도 없이도 LSA 모델을 텍스트만으로 훈련시켜 미국의 근사 지도를 재구성할 수 있었죠. Louwerse (2011)은 이 결과를 확장하여, 텍스트 통계가 지리뿐만 아니라 감각적 속성, 감정 연관성, 개념적 관계 등을 포괄한다는 것을 증명했습니다. 실제로 분포적 언어 통계는 개념의 감각-운동적 특성을 추적할 수 있으며 (Bernabeu, 2022; Louwerse & Connell, 2011; cf. Xu et al., 2025), 인간 감각-운동 평가에 대한 파인튜닝(예: Wu et al., 2026) 후에는 더욱 정밀해집니다. 언어는 단순히 세상을 라벨링하는 것이 아니라, 그 구조를 인코딩한다는 사실 따라서 단순한 동시 발생 모델도 그 인코딩을 읽어낼 수 있습니다. 아래 R 코드는 LSA(가장 단순한 분포적 모델 중 하나)를 세 개의 텍스트 컬렉션에 적용하고, 결과 단어 벡터를 주성분 분석(PCA)을 통해 2차원으로 투영한 뒤 시각화합니다. LSA의 주요 단계 용어-문서 행렬(term‑document matrix)을 구축하고, TF‑IDF 가중치를 적용합니다. 트렁케이트된 SVD(Singular Value Decomposition)를 통해 차원 축소합니다. 각 코퍼스를 두 그룹으로 나누고, 각 그룹에서 가장 뚜렷한 단어를 TF‑IDF 차이를 기준으로 선택합니다. 가장 많이 등장하는 공유 단어는 보라색으로 표시됩니다. 주성분 분석은 데이터의 최대 분산을 포착하는 새로운 축(주성분)을 찾습니다. 각 단어는 각 주성분에 대한 부하값(loading)을 가지며, 이는 -1에서 +1 사이의 값으로 그 단어가 해당 축에 얼마나 기여하는지를 나타냅니다. 부하값이 큰 단어는 해당 주성분이 포착하는 구분의 강력한 표시자가 됩니다. 테마 그룹의 결정 방법 코드는 각 단어의 TF‑IDF 평균을 계산하고, 두 그룹 간의 차이를 구합니다. A 그룹에서 B 그룹보다 훨씬 높은 가중치를 가지는 단어는 A에 특화된 것으로 분류됩니다. 각 극단에서 상위 15개의 단어는 플롯에서 색상 레이블로 표시되고, 극단에 속하지 않는 가장 빈번한 단어는 ‘Shared’로 라벨링됩니다. 이 그룹화는 전적으로 데이터 주도적이며, 사람이 ‘금융’인지 ‘에너지’인지 결정하지 않습니다. 주성분 부하표와 단어 벡터 플롯 플롯 상단에 표시되는 표는 각 테마 그룹의 첫 번째와 두 번째 주성분에 대한 평균 부하값을 보여줍니다. 가장 높은 양의 부하값은 굵은 글씨로 강조됩니다. 한 그룹이 PC1에 크게 부하되고 다른 그룹이 그렇지 않다면, 첫 번째 주성분은 본질적으로 이 두 그룹을 분리하는 축이 됩니다. Reuters Newswire: Finance vs Energy 첫 번째 코퍼스는 tm 패키지의 두 개의 고전 뉴스피드 컬렉션(Feinerer et al., 2008)을 사용합니다. acq(기업 인수에 관한 50개의 Reuters 기사)와 crude(원유 시장에 관한 20개의 기사)입니다. 이 두 컬렉션은 1980년대 이후 표준 NLP 벤치마크로 활용되어 왔습니다 (Lewis, 1997). 코드에서는 TF‑IDF 가중치가 부여된 용어-문서 행렬을 구축하고, 트렁케이트된 SVD를 통해 20차원 LSA 공간으로 축소하며, LSAfun::Cosine() (Günther et al., 2016)을 이용해 쌍별 코사인 유사도를 계산합니다. 아래 주성분 부하표와 단어‑벡터 플롯이 결과를 보여줍니다. 필요한 패키지 install.packages("tm") install.packages("lsa") install.packages("lsa") install.packages("lsa") R 코드 예시 (확장하려면 ‘Expand’ 클릭) # 예시 R 코드: LSA를 이용한 단어 벡터 시각화 # 1. 데이터 로드 library(tm) library(lsa) library
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
원문에서 전체 글 읽기
작성자
R-Blogger
출처
R-Blogger
플랫폼
R-Blogger
분류
블로그·해설
언어
한국어
발행일
2026-03-26