
Lixity는 작가·편집자·연구자가 장마다 원고의 문체가 어떻게 달라지는지 살펴보는 오프라인 도구다. 문장 길이, 어휘 사용, 대화와 시제 등을 측정하고, 각 결과의 근거가 된 구절을 확인할 수 있다. 분석은 컴퓨터에서 이뤄지며 원고를 업로드하지 않는다.
개발자인 마티아스 파졸트(Matthias Fahsold)는 ROST Services GmbH의 건축가이자 개발자로 일하며 Lixity를 만들었고, 자신의 첫 소설을 쓸 때 이 도구를 사용했다. 현재 릴리스는 1.0 이전 개발 버전인 v0.4.9다.
예제 보고서 체험 · 3분 소개 · 설치 안내 · 기능 안내 · 실용 가이드 · v0.4.9 릴리스 노트
예제 보고서는 직접 만든 텍스트로 구성된 읽기 전용 자료라 설치나 원고 업로드 없이 브라우저에서 열 수 있다. 독일어판 《Effi Briest》와 영어판 《Pride and Prejudice》 예제에는 공개 저작물의 일부를 조작해 볼 수 있는 화면과 전체 PDF 보고서가 있다. 문서는 영어로 제공되지만 분석 결과는 독일어·영어·프랑스어·스페인어·이탈리아어·포르투갈어·네덜란드어로 읽을 수 있다.
시작과 설치
통계 지식이 없어도 쓸 수 있다. 먼저 읽기 전용 합성 보고서나 《Effi Briest》 예제, 《Pride and Prejudice》 예제를 브라우저에서 살펴본 뒤, 3분 소개에서 장 비교와 측정 결과를 확인할 수 있다. 실제 원고를 분석하려면 Lixity를 설치한다.
Lixity는 Windows, macOS, Linux에서 작동한다. 설치에는 Python 3.12를 관리형으로 설정하고 PyPI 패키지를 설치하는 도구 uv를 사용한다. 저장소의 안내는 운영체제별 설치, 고정 릴리스 휠과 SHA256SUMS, 업데이트 및 제거 방법을 설명한다.
uv tool install --python 3.12 --managed-python lixity
uv tool update-shell
설치가 끝나면 새 터미널을 한 번 열고 다음 명령을 실행한다.
lixity --version
lixity service start --open
이후에는 패키지에 포함된 lixity-start.sh 또는 lixity-start.ps1 실행기를 두 번 클릭하거나 관리형 서비스 명령을 사용하면 된다. 매일 터미널을 열 필요는 없다. 서비스는 비어 있는 로컬 작업 공간을 연다. 여기서 프로젝트를 열거나 원고 분석을 시작할 수 있으며, 첫 프로젝트 안내가 두 방법을 설명한다.
업데이트할 때는 다음 명령을 실행하거나 고정 릴리스 휠을 다시 설치한 뒤 로컬 작업 공간을 재시작한다.
uv tool upgrade lixity
서비스 관리는 lixity service status, lixity service restart, lixity service stop으로 할 수 있다. status는 서비스 로그 경로를 출력한다. 진단 로그는 UTC 형식과 로그 수준을 사용하며, --debug, LIXITY_DEBUG, LIXITY_LOG_LEVEL로 설정할 수 있다. 로그가 지나치게 커지면 시작 시 순환 처리한다. 자세한 내용은 로그 안내와 설치·업데이트·제거 안내를 참고할 수 있다.
제거 전에는 관리형 인스턴스를 중지하고 직접 설정한 로그인 시 자동 시작을 해제한다. 그런 다음 아래 명령을 실행한다. 원고와 연구 자료 보관소는 프로젝트 폴더에 남는다. 서비스의 전체 생명주기는 관련 문서에 정리돼 있다.
uv tool uninstall lixity
원고 분석과 결과 읽기
Lixity는 원고 전체에서 문장 길이와 어휘, 대화, 시제가 어떻게 달라지는지 보여준다. 결과를 바꾸기로 결정하기 전에 해당 구절을 열어 확인할 수 있다. 짧거나 비어 있는 텍스트로는 모든 비교가 가능하지 않으며, 계산할 수 없는 결과는 별도로 표시된다. 언어 지표 해설, 모바일 화면, 어두운 테마와 분석 검토 화면을 볼 수 있다.
장 지도는 원고의 장을 기준으로 삼는다. 예컨대 평소보다 문장이 긴 장은 새로운 목소리나 공식 보고서 형식 때문일 수 있다. 색이 표시된 칸을 선택하면 해당 장을 살펴볼 수 있다. 스타일 축은 관련 측정값을 묶어 비슷한 패턴을 보이는 장과 차이를 만드는 특징을 파악하도록 돕는다. 장 비교 해설, 스타일 차원 화면, 기준 범위 화면을 제공한다.
장면을 대화·행동·공식 보고서 같은 문체 범주에 배정하면 비슷한 목적의 장면끼리 비교할 수 있다. 각 범주에는 자체 중앙값이 있으며 선택적으로 목표값도 설정할 수 있다. 표본이 작으면 일부 측정값을 사용할 수 없다. 장면 예시와 장면 범주 및 프로젝트 목표의 설정·한계를 참고할 수 있다.
각 측정값은 텍스트에 관한 특정 질문을 다룬다. 문장 길이와 변동은 문장 길이가 비슷하게 유지되는지, 짧고 긴 문장이 번갈아 나오는지를 보여준다. 다만 긴장감은 문장 안에서 일어나는 일에도 좌우된다. 어휘 다양성은 단어가 얼마나 반복되는지 살펴보며, 길이·언어·목적이 비슷한 구절끼리 비교해야 한다. 대화 비중은 인식된 따옴표 안에 들어간 텍스트의 비율이다. 대화 장면에서는 높은 수치가 자연스러울 수 있다. 장별 차이와 일관성은 측정 가능한 장이 책에서 관찰된 패턴을 얼마나 따르는지 나타낸다. 의도적으로 목소리를 바꾸면 일관성이 낮아질 수 있다.
장 비교에는 원고의 중앙값과 일반적인 산포도(중앙절대편차, MAD)를 사용하고, 추정된 표본 추출 잡음을 조정한다. 색은 차이가 향하는 방향을 나타내며 문학적 가치를 평가하지 않는다. 선택적인 통계 검사는 검토할 구절을 표시할 뿐, 편집이 필요하다는 사실을 인증하지 않는다. 결과가 없는 경우 텍스트가 너무 짧거나 비교 가능한 장이 부족할 수 있다.
계산 핵심에는 HD-D, MTLD, MATTR, Guiraud R, Maas a², Yule's K 등 여러 어휘 측정 방식이 포함된다. 이들은 서로 연관된 질문에 서로 다른 모델과 표본 크기로 답한다. 가독성과 문법 패턴 지표에는 언어별 한계가 있다. 수식·인용·예제는 방법 문서에, 결과 해석은 해석 안내에, 확인된 내용과 검증 한계는 안정성·검증 문서에 정리돼 있다.
독일어(de)와 영어(en)는 언어별 자료와 테스트 사례가 가장 폭넓다. 프랑스어(fr), 스페인어(es), 이탈리아어(it), 포르투갈어(pt), 네덜란드어(nl)도 인터페이스와 분석 자료를 제공하지만 휴리스틱 적용 범위와 검증은 더 제한적이다. 원고의 분석 언어는 직접 선택해야 한다. --language de는 독일어 분석을 선택하고, LIXITY_LANG=de는 이와 별개로 터미널 메시지 언어를 독일어로 설정한다. 문서는 영어로 제공되며 인용된 원문은 원래 언어를 유지한다. 수학적 식별자와 JSON 숫자 값은 언어에 종속되지 않는다. 자세한 내용은 언어 지원과 한계를 참고할 수 있다.
PDF 출력과 편집 메모
lixity pdf 명령은 원고와 측정값을 묶어 PDF를 만든다. A4 분석 보고서, A5 읽기용 판면, 60자씩 30줄로 구성된 제출용 원고 양식을 선택할 수 있다. 글꼴은 부분집합으로 포함하며, 선택한 글꼴이 지원하는 유니코드 문자는 검색 가능한 텍스트로 출력된다. 변환기나 업로드가 필요하지 않고 추가 실행 시 의존성도 없다. A4 보고서는 표지로 시작하며 그림 자료는 머리글 행을 반복하는 정렬된 표로 배치된다. 이 출력물은 읽기와 검토를 위한 형식이다. PDF/X 제작 전 검수와 글꼴 자동 대체는 제공하지 않는다. 명령어 설명과 《Effi Briest》 보고서, 《Pride and Prejudice》 보고서를 볼 수 있다.
앱의 전체 프로젝트 제어 메뉴에서는 A5 읽기용 사본(기본값), A4 원고 용지, A4 분석 보고서를 PDF로 내보낼 수 있다. 메뉴는 처음에 접혀 있으며, 생성된 PDF는 서버 파일로 저장하지 않고 브라우저를 통해 제공한다. 프로젝트의 제목·저자·선택적 출판 정보는 Project → Settings → Publication에서 가져온다. 입력하지 않은 정보는 추정해 넣지 않는다. PDF 메타데이터, 장 책갈피, 머리말을 제공해 탐색을 돕는다. 출력은 고정 레이아웃 PDF이며 EPUB, PDF/UA, PDF/X 인증은 지원하지 않는다. 출판 설정과 독일의 인쇄·디지털 안내를 참고할 수 있다.
표시된 구절 목록에서 문단을 열면 측정값, 원문 줄, 시제 표시를 확인할 수 있다. 구절에 직접 메모를 남기고 작업 표시를 Markdown으로 텍스트 옆에 둘 수 있다. 책으로 내보낼 때 표시가 보이는지는 사용하는 편집기나 변환기에 달렸다. 작업 표시 안내, 표시 구절 화면, 구절 메모 화면, 문단 보기를 제공한다.
연구 자료 보관과 프로젝트 관리
실험 단계인 연구 작업 공간은 선택한 자료·인용·메모를 별도의 로컬 보관소에 저장한다. 주제별 메모를 모으는 도시에(dossier), 출처 문단에 연결할 수 있는 주장을 기록하는 항목, 책에 반영하기로 한 결정을 설명하는 항목을 만들 수 있다. 제목이나 태그로 걸러 보거나 저장된 텍스트를 검색한다. 저장된 인용은 출처의 내용을 기록하지만, 정확성은 별도로 검토해야 한다.
자료는 로컬 파일이나 선택 사항인 Zotero Desktop 연결 기능에서 가져올 수 있다. Zotero는 자료 목록 역할을 하며, 카드는 해당 항목으로 연결되고 자료 유형 표시와 태그 필터를 제공한다. PDF 스캔은 로컬에 설치한 Tesseract 또는 설정한 OCR 작업자를 이용할 수 있다. 추출이 불완전하거나 요청한 대체 처리가 적용되면 가져오기 경고로 알린다. 열린 자료의 문단에서 텍스트를 선택해 근거 연결 초안을 만들 수 있다. 저장 전에 선택한 인용문과 전체 인용 맥락을 보여주며, 인용은 문단 전체를 보존한다. 선택한 메모를 원고 옆에서 읽는 읽기 전용 도시 보기 기능도 선택적으로 사용할 수 있다.
검토 화면에서는 결정에 명시적으로 연결된 기록과 그 연결이 이전 버전을 가리키는지 확인할 수 있다. 이전 버전과 현재 버전을 살펴본 뒤 연결을 갱신할 수 있다. 선택한 인용을 주장에 연결한 원고 연계 기록은 고정 상태와 검토 표시를 포함해 같은 탭에 나타난다. 인용문 바깥을 수정하면 연결 상태가 ‘조정됨’으로 바뀌며, 검토 탭이나 reconcile-manuscript --accept-moved로 다시 고정할 수 있다. 인용문 자체를 수정하면 해결되지 않은 상태로 남는다. 연결을 자동으로 다시 고정하지 않는다. 관련된 도시 수정은 미리 보고 함께 저장할 수 있으며, 다른 수정과 충돌하면 초안을 보존하면서 해결하도록 미리 보기가 돕는다.
도시에는 설명과 선택적 출처 메모를 붙여 로컬 PNG/JPEG 이미지를 추가할 수 있다. 이전 도시 버전에는 당시 이미지가 보존된다. 원격 이미지는 가져오지 않으며 이미지에는 텍스트 점수를 매기지 않는다. ‘섹션 편집’, ‘주장 추가’, ‘결정 추가’ 기능은 문서 전체나 ID를 복사하지 않고도 큰 주제를 관리하도록 돕는다.
주장 및 근거의 타임라인 보기에서는 명시적인 달력 기간이 있는 주장을 공통 축에 정렬하고 각 막대를 해당 주장 카드에 연결한다. 지원하는 기간 표기에는 1926, 1926-03, 1926-03-15, 1924–1926, 1929-1933이 있다. ‘현재’와 같은 자유 서술 기간은 이유와 형식 안내를 표시하며 타임라인에 배치하지 않는다. 타임라인 배치는 역사적 사실을 검증하지 않는다. 연구 가이드, 검색과 인용 화면, 자료 화면, 주장 화면, 결정 화면, 결정 검토 화면, 관련 수정 미리 보기를 제공한다.
각 작업 공간에서 프로젝트 작업을 이용할 수 있다. 원고를 가져오기 전에 미리 보고 분석 언어를 선택하며, 살펴볼 차이도 조정할 수 있다. 비밀유지계약(NDA) 양식에는 이름, 선택적 주소, 프로젝트명, 날짜, 장소만 들어간다. 계약 내용을 미리 본 뒤 프로젝트 언어로 PDF나 편집 가능한 텍스트를 내려받을 수 있다. 상대방은 서명하거나 텍스트 형식으로 동의할 수 있으며, 발신 측 프로젝트 대표는 별도의 자필 서명이 필요하지 않다. Project → Settings에서 저자 이름을 설정하면 대표자 이름을 채운다. 프로젝트 작업 흐름, 가져오기 미리 보기, 모바일 설정 화면을 참고할 수 있다.
터미널에서 읽기 쉬운 보고서를 만들려면 다음 명령을 사용한다. 소프트웨어 연동에는 --json을 추가한다. 장·문단·대화·페이싱·연구 명령은 명령어 안내에 정리돼 있다.
lixity analyze manuscript.md --language de
화면 자료는 공개 저작물이나 합성 프로젝트 기록을 사용한다. 추가 화면과 캡처 정보를 확인할 수 있다.
API·버전·라이선스
Python API와 자동화 기능도 제공한다. 대시보드를 HTML로 만드는 예시는 다음과 같다.
from lixity import api
html = api.dashboard(text, language="de", project_config={})
CLI, Python, 대시보드 분석은 같은 파이프라인을 공유한다. 분석·프로필 JSON은 스키마 v2, 스타일 JSON은 v4를 사용한다. 여러 프로젝트를 다루는 연동에서는 프로젝트 설정을 명시해야 한다. 숫자 결과에는 api.analyze, 스타일 기준에는 api.fingerprint를 선택한다. 각 편의 호출은 자체 분석을 수행하므로 여러 출력을 만들 때는 공유 분석 결과 재사용 안내를 참고할 수 있다. 인터페이스 계약, 아키텍처, 연구 명령, 자동화 요약도 제공한다.
방법과 스타일로메트리·말뭉치 도구 가운데 Lixity가 차지하는 위치는 소프트웨어 논문 초안에 설명돼 있다. 이 초안은 Journal of Open Source Software에 제출하기 위해 준비됐다. 공개 릴리스는 Zenodo에 보관되며, 개념 DOI는 10.5281/zenodo.23390297이다. 인용 정보에서 확인할 수 있고, 각 릴리스에는 별도의 버전 DOI도 부여된다.
Lixity는 AGPL-3.0-or-later 오픈소스 라이선스를 적용한다. 개인·상업적 글쓰기, 연구, 교육과 자가 출판에 별도 허가 없이 사용할 수 있다. Lixity나 수정본을 배포하면 AGPL에 따라 받는 사람에게 같은 라이선스로 해당 소스 코드를 제공해야 한다. AGPL을 지킬 수 없는 연동, 예를 들어 비공개 제품에 Lixity를 삽입하거나 수정한 버전을 소스 공개 없이 네트워크 서비스로 운영하는 경우에는 별도의 서면 상업 라이선스를 이용할 수 있다. 라이선스 안내, AGPL 전문, 이전 LNCL-1.0 문서를 참고할 수 있다.
저장소의 현재 릴리스는 v0.4.9로, 1.0 이전 개발 계열을 이어간다. 과거 v3.0.1 및 그 이전의 문서와 태그도 남아 있다. 공개 JSON 스키마와 연구 자료 저장소 스키마의 버전은 서로 독립적이며, 0.3.x/0.4.x 계열은 기존 연구 자료 보관소를 v7까지 읽는다. 과거 버전 번호 체계에서 업그레이드할 때는 고정 릴리스 휠을 명시적으로 설치해야 하며, 그 이후에는 PyPI를 통한 업그레이드가 정상적으로 이어진다. 릴리스 노트는 호환성과 알려진 한계를 설명하고, 변경 기록은 main에서 이어지는 작업을 기록한다.
처음 사용하는 사람은 읽기 전용 예제 보고서, 공개 저작물 예제, 설치와 프로젝트 열기, 결과 해석, 자료와 인용 보관, 분석 도구 비교, 첫 프로젝트 안내를 볼 수 있다. 기술 문서에는 모든 CLI 명령·옵션·출력 한도, JSON 스키마·Python API·HTTP 경로, 연구 보관소 사용과 호환성, 방법, 안정성과 검증, 현지화, 라이선스가 있다. 에이전트용 관리 문서는 llms.txt이며, 전체 텍스트 묶음은 llms-full.txt다.
유지 관리자는 독일 함부르크의 마티아스 파졸트이며, 프로젝트 운영자는 독일 뤼м펠의 ROST Services GmbH다. 기여 안내, 보안 문제 신고, 예제 텍스트 출처에서 관련 정보를 확인할 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요