보이니치 필사본을 SBERT로 모델링하여 구조를 탐구함
(github.com/brianmg)- 보이니치 필사본의 언어 구조를 SBERT 등 최신 NLP 기법으로 분석한 오픈소스 프로젝트임
- 접미사 제거와 군집화 등에 중점을 두어, 가짜 패턴이 아닌 실제 언어 유사 구조가 있는지 검증함
- 함수 단어와 내용 단어 역할, 전이 행렬 등 다각적 구조 분석 결과 의미 있는 패턴이 관찰됨
- 전통적 통계 또는 추측 중심 접근과 달리, 컴퓨팅 언어학 방식으로 구조적 언어 특징 분석 시도임
- 의미 번역 시도 없이 구조적 모델링에만 집중한 프로젝트로, 추가 연구와 비교 실험이 가능함
📜 보이니치 필사본 구조 분석 프로젝트 소개
🔍 개요
- 이 프로젝트는 현대 자연어처리(NLP) 도구를 활용하여 보이니치 필사본의 구조를 분석하고자 하는 개인적 실험에서 출발함
- 군집화, 품사 추론, Markov 전이, 섹션별 패턴 추출 등 실제 언어 모델링 방법을 적용함
- 의미 해석이나 번역 시도, 또는 과장된 패턴 추정 없이, 언어처럼 동작하는 구조 유무만을 검증함
- 접미사 제거, SBERT 임베딩, 렉시콘 가설 생성 등 모든 단계가 공개됨
🧠 의의
- 보이니치 필사본은 아직 해독되지 않은 미스터리 문서로, 언어적/암호학적 해법이 없음
- 기존 분석은 통계적 엔트로피 검사와 비과학적 추측으로 양분됨
- 본 프로젝트는 컴퓨팅 언어학에 기반해, 실제 언어와 비슷한 구조적 패턴 유무를 중립적으로 탐구함
📁 프로젝트 구조
-
/data/
- 전체 필사본 전사본, 루트 단어 종류, 군집 ID, 제거된 접미사 목록, 각 라인 군집 시퀀스 등 데이터 제공
-
/scripts/
- SBERT 기반 단어 군집화, 품사 예측, Markov 전이 행렬 구축, 렉시콘 후보 생성 등 핵심 분석 스크립트 제공
-
/results/
- 군집 시각화, 전이 행렬 히트맵, 군집별 요약 등 분석 결과 제공
✅ 주요 기여 내용
- 다국어 SBERT로 접미사를 제거한 루트 단어 군집화
- 함수 단어 유사 군집과 내용 단어 유사 군집 구별
- Markov 방식의 군집 전이 구조 모델링
- 섹션별 구문 구조(예: Botanical, Biological 등) 분석
- 데이터 기반 렉시콘 가설 표 생성
🔧 전처리 결정
- 군집화 전 반복적 접미사(예: aiin, dy, chy 등)를 제거함
- 이를 통해 단어의 루트 형태를 추출, 군집 집중도와 구조 패턴이 더 명확해짐
- 접미사는 음운 채움, 문법소, 암송, 반복 또는 무의미 노이즈일 가능성 있음
- 하지만, 이 선택으로 형태소 정보 손실, 의미 있는 굴절 정보 은폐, 기능어 편향성 등 한계가 있음
- 접미사 제거 없는 비교 실험도 가치가 있음 — 누구든 파생 실험 가능함
📈 주요 분석 결과
- Cluster 8: 매우 자주 등장, 다양성 낮고 줄 시작 빈번 — 함수어 군집 후보임
- Cluster 3: 다양성 높고 위치 자유 — 루트 내용어 군집 후보임
- 전이 행렬: 무작위성에서 멀리 떨어진 강한 내부 구조
- 군집 및 품사 패턴: 필사본 섹션(예: Biological, Botanical 등)별로 다름
🧬 가설
- 필사본은 음절 반복과 위치적 반복을 활용한 구조화된 인공/암기 언어임
- 구문, 기능/내용 분리, 섹션 반응 언어 전이 등 언어적 구조를 분명히 보임
📊 예시 시각화
- Figure 1: SBERT 군집 임베딩(PCA 축소)
- Figure 2: 전이 행렬 히트맵
📌 한계
- 군집-단어 매핑이 간접적이라 빈도 추정 겹침 현상 있음
- 접미사 제거 기준은 휴리스틱이며, 실제 의미 있는 끝소리도 손실 가능성 있음
- 의미 해석은 시도하지 않고 구조 분석에만 집중함
✍️ 저자 메모
- AI, NLP, 구조 분석 학습을 목적으로 시작한 프로젝트임
- 필사본 해독 자체가 목표가 아니라, 최신 도구로 구조를 이해하는 것이 더 발전적이라 생각함
- Rosetta Stone식 해독 기대보다는, “모델링 자체가 의미”에 관심 있는 사람을 환영함
🤝 기여 안내
- 본 프로젝트는 언어학자, 암호학자, 인공언어 연구자, 컴퓨터 언어학 커뮤니티 모두의 협업과 확장을 환영함
Hacker News 의견
-
나는 당신이 PCA 투영 내에서 군집을 찾고 있다는 점을 봤음 — 더 깊은 구조를 찾으려면 PaCMAP이나 LocalMAP 같은 최신 차원 축소 알고리즘을 추천하고 싶음. 나는 Pol.is라는 의견조사 툴의 데이터를 가져와 PCA 대신 이런 차원축소 알고리즘으로 다시 투영하는 프로젝트를 진행 중임. 이런 새로운 알고리즘이 예전에는 보지 못했던 통찰을 제공하는 것에 감탄함. 내가 그룹을 색칠해서 시각적으로 표현한 결과도 있으니 데스크톱에서 확인해 보라는 안내. Pol.is가 무엇인지 궁금하다면 관련 기사도 추천함
- PaCMAP이나 LocalMAP을 처음 알게 해줘 고마움 — 구조를 잘 유지하는 이런 차원 축소 접근법이 PCA보다 이 데이터에 더욱 잘 맞을 것 같음. 덕분에 관심이 생겼으니 더 깊게 살펴볼 계획임
- 나는 임베딩 축소에서 PCA나 t-SNE보다 UMAP이 훨씬 좋은 결과를 주었다는 경험을 가짐
-
여기서 사용한 텍스트 임베딩 모델은 paraphrase-multilingual-MiniLM-L12-v2로 약 4년 된 모델임. 자연어처리 세계에서 이 정도면 매우 옛날 모델임. 최근 LLM의 발달로 임베딩 모델의 정보 표현력과 임베딩 공간 내의 구분 능력이 극적으로 향상됨. 다국어 지원이 목적이 아닌 최신 임베딩 모델조차 이런 타입의 데이터에서 훌륭한 성능을 나타냄. 따라서 상대적으로 알려지지 않은 언어인 Voynich Manuscript에도 더 나은 성능을 보일 수 있을 것임. 전통적인 NLP 기법(접미사 제거, 품사 식별 등)은 오히려 필요한 문맥 정보를 손실시켜 임베딩 품질을 저하시킬 위험이 있다고 봄
- 나는 주로 속도와 호환성 때문에 paraphrase-multilingual-MiniLM-L12-v2를 선택했지만, 지금 기준에선 오래된 모델인 건 확실하다는 점에 동의함. all-mpnet-base-v2나 text-embedding-ada-002 같은 최신 모델로, 접미사도 유지하며 풀-컨텍스트 임베딩을 시도하면 더 흥미로운 결과가 나올 듯함. 당신의 지적 덕분에 다음 반복을 긍정적으로 고려하게 됨
-
나는 NLP에 대해 잘 모름. 비교군을 통제하는 방식으로 진행 과정을 점검하는 것이 합리적일지 궁금함. 예를 들어, 사람이 언어처럼 보이지만 실제로는 언어가 아닌 문장을 쓰게 한 뒤 동일한 절차(접미사 삭제, 군집화 시도 등)를 거치면 비슷한 결과가 나오는지 알고 싶음
- 바로 그거임. 왜 그냥 100명에게 Voynich 원고를 쓰게 한 다음 그 데이터로 훈련하지 않았는지 궁금함
-
UMAP이나 t-SNE로 분석하면 좋을 것으로 생각함, 비록 PCA에서 이미 깔끔한 분리 결과가 나왔더라도 말임. 각 군집을 서로 참조해 맵핑하는 것도 분석 내 변동성이 남아 있지 않다는 점을 알려주는 좋은 방법으로 보임
- 좋은 지적임 — PCA로 처음에는 예상외의 깔끔한 분리가 나와서 처음엔 그걸로 진행함. 하지만 당신 말대로 UMAP이나 t-SNE를 적용하면 비선형적 관점에서 더 미묘한 패턴이나 문제를 발견할 수 있을 것임. 군집 간 유사도 매트릭스도 만들지 않았지만, 당신의 제안을 듣고 나니 신호가 얼마나 실질적으로 포착되는지 검증하는 자연스러운 다음 단계처럼 느껴짐. 후속 작업으로 꼭 시도해야겠다는 생각임. 생각을 자극해줘서 고마움
- 이 참조 매핑이 어떻게 수행되는지 예시를 가지고 있으면 궁금함. 나는 다른 모달리티의 임베딩에서 이런 걸 적용해보고 싶지만 NLP 쪽 경험이 부족함
- PCA로 충분히 분리가 잘 나왔을 땐 개별 포인트 사이의 거리를 해석하기 쉬워서 나는 UMAP을 피하는 편임. t-SNE는 거리 해석이 거의 무의미하다고 생각해서 항상 피하는 편임. 이건 어디까지나 내 개인적 취향임
-
나는 이 가설이 가장 흥미롭다고 생각함: 어떤 저자가 Voynichese를 게르만 계 언어로 간주해서 상당한 진전을 이뤄낸 듯 보임. 우랄어나 핀-우그르 계 언어라는 주장도 본 적 있음. 당신의 방법론이 아주 좋다고 생각하며, 특정 언어 계열을 대상으로 맞춤 적용하면 더 좋은 결과가 나올지 궁금함
- Edward Kelly가 제때 적소에 있었고 Cardan grille(카르단 그릴)를 알았다는 증거도 예전에 본 적 있음. 그래서 그는 저작권자일 가능성이 크고, 책 자체는 사기나 장난 목적으로 만들어졌을 거라는 쪽으로 생각하고 있음
- 이 스레드는 여러가지 “해독” 주장들을 논의하고 있음. Bernholz 사이트는 괜찮지만, Child 작업은 실제로 해독에 큰 도움을 주지 못함
-
나는 이게 오래된 터키어라고 생각하고 있었음
- 원고 영어 번역은 여기에서 볼 수 있음
-
README에서 놓쳤거나 못 본 걸 수도 있지만, “단어”의 초기 인코딩을 어떻게 했는지 궁금함. 예를 들어 “okeeodair” 같은 단어는 어떻게 원본 심볼로 다시 매핑하는지 알고 싶음
- 맞음, “okeeodair” 같은 단어는 EVA 전사 파일에서 바로 온 것임. EVA(유럽 Voynich 알파벳) 체계를 기준으로 원래의 Voynich 기호를 ASCII로 연결한 결과임. 이번 프로젝트에서 기호 그 자체를 다루기보다는 EVA 전사 기준 단어를 바로 활용함. 데이터셋 안에 “okeeodair”가 있다면 누군가(전문가)가 그런 기호 조합을 저 이름으로 부르기로 합의한 것임. 전사에 관한 정보는 이 사이트에서 볼 수 있음
-
내가 상상하는 건, 그게 단순히 아무 의미 없는 낙서에 불과하고 암호문조차 아니라면, 필사본 특성상 스타일, 필체, 쓰이는 단어, 심지어 글자 자체도 첫 페이지부터 마지막까지 진화해야 한다는 점임. 물론 페이지 순서가 바뀔 수 있지만 뭔가 차이가 보여야 한다고 생각함. 저자가 비슷한 스타일로 수십 권을 썼으나 모두 사라진 것이 아닌 이상 말임. 새로운 아이디어는 아니지만 이런 패턴에 대한 분석이 있었는지 궁금하며, 페이지 간 일관성에 대한 언급을 본 적 없음
- 페이지 간 일관성에 관해선 많은 연구가 있음. 두 명(또는 다섯 명)의 필경사가 있었다는 주장이 전문가들 사이에 존재함. Lisa Fagin Davis의 주장을 바탕으로 한 실험 논의도 있으니 참고하면 도움됨
-
“브루트 포스” 방식으로 해독하려면 얼마나 자원이 들지 궁금함. 예를 들어, 알려진 언어 단어와 하나씩 매핑해 점수를 높여가는 식의 명확한 과정을 따라가면 어떨지 생각해봄
- 이런 방식은 각 단어가 1:1로 매핑된다는 전제가 필요하지만 언어란 본래 그런 식으로 꼭 떨어지지 않는다는 점을 지적하고 싶음. 예를 들어 합성어는 이런 방식으론 매핑하기 어려움. 문화적 차이로 인한 더 근본적인 의미 구조 차이도 존재함
- 흥미로운 질문임 — 사실 나도 비슷한 생각을 한 적이 있음. 암호학 전공자는 아니라서 정말 대규모로 “브루트 포스”가 얼마나 현실적인지 잘 모르겠음. 하지만 각 Voynich “단어”를 실제 언어 단어와 매핑해 일관성을 최적화한다는 접근은 꽤 여러 실험적 시도와 방향이 일치함. 어려운 점은 어휘량 자체가 엄청 많고 “단어”라는 단위가 실제 언어 단어와 1:1로 매핑되는지도 불분명하다는 것임. Voynich의 “단어”가 진짜 하나의 어휘인지, 조각인지, 어근-접사 결합인지 모호함. 이런 점에서 단순 매핑은 상당히 어렵다고 봄. 그렇지만 개별 토큰 대신 군집 ID로 해보고 언어모델로 결과를 채점하는 방식은 꽤 괜찮은 아이디어임. 최적화나 진화적 기법에 시도해볼 가치가 있다고 생각됨. 구조가 얼마나 “언어처럼” 보이는지에 대한 시사점을 얻을 수도 있음. 좋은 아이디어 고마움. 관련 분야 전문가가 이 의견을 보고 시도해보길 기대함
-
알려진 언어의 유사한 분량 텍스트로 분석을 했을 때 유사한 패턴이 나오는지 궁금함. 달리 말하면, 이 분석 기법을 다양한 종류의 텍스트에 적용해서 이 문자 체계가 뭘 의미하는지 이해하는 데 도움될 수 있을지 질문함