Web Analytics Made Easy - Statcounter

Bouncing ideas 생각 작업실/exp sharing 경험.실험 나누기

지겨운 한국어 행간주석(interlinear gloss) 컴퓨터 시키기

sleepy_wug 2023. 4. 24. 07:40

 

0.  요약

한국어 행간주석을 자동으로 생성하려면 Korean auto-glossing 툴을 이용하세요.

[Github repo 링크]

[온라인 웹ui (접속안될수도있음)]

 

행간주석(interlinear glossing)은 통사론/의미론 논문을 쓸 때 언어 예문을 제시하는 방식입니다. 사실상 표준으로 사용되는 방식은 아래와 같은 Leipzig Glossing Rules [specifications 링크]입니다. 

 

행간 주석 보러 온 김에 귀여운 고양이도 보고 가세요

 

(고양이 사진 출처)

통상적으로 행간주석 interlinear glossing 은 4줄로 구성됩니다.[각주:1]

첫줄: 해당 언어의 문자체계로 표기한 예문
둘째줄: 음성/음운전사 (전사를 자동으로 하려면 여기 클릭) 
셋째줄: 형태분석한 결과 (위의 예시에서는 각각 '1인칭단수', '다리', '짧다', '2인칭단수')
넷째줄: 자유롭게 번역한 의미

 

논문에 예문이 한 두개만 나온다면 즐겁게 행간주석을 하겠지만, 보통 십여개에서 수십개에 달하는 예문들을 사용하게 됩니다. 예문이 많아질수록 행간주석 다는 것은 지루해지고 귀찮아집니다. 그래서 정확도도 떨어지지요.

 

행간주석 다는 작업은 일관성이 있어야 하고 정확해야 합니다. 다시 말하자면 이것은 매우 기계적인 작업입니다. 기계적인 작업은 사람이 아닌 기계가 하는 것이 윤리적으로 옳습니다.

 

그러니까 이제 한국어 행간주석 컴퓨터한테 시킵시다.

 

컴퓨터는 친구에요. 행간주석 같은 귀찮은 일은 친구한테 시키세요.

 

이 글의 나머지 부분에서는 Korean auto-glossing 설치법과 사용법을 다룹니다.

 

자동으로 분석하고 glossing할 한국어 예문은 뉴진스의 쿠키의 가사 중 "내가 만든 쿠키" 입니다. 결과물부터 보고 가세요.

Nayka      mantul-n khwukhi. ne-lul  wiha-e   kwup-ess-ci.
i          make-ETD cookie   2SG-ACC for-ECS  bake-PST-DECL
'Cookies I made. I baked for you.'

 

재미없는 언어학 그만하고 뉴진스 보고가세요!

 

설치 그런거 어려워서 모르겠고 당장 glossing 필요하다 하시는 분은 얌생이처럼 아래 링크를 이용하셔도 됩니다. 단, 서버 quota가 정해져 있으므로, 얌생이들이 많으면 작동하지 않습니다. (혜택을 받을 때 당장 내 돈 안나간다고 해도 누군가는 그 리소스에 대한 돈을 내야합니다)

 

[온라인 웹ui (접속안될수도있음)]

 

당장 glossing 필요한데, 나는 양심이 있다 하시는 분은 도네를 하시면 감사하겠습니다. 모든 비용은 서버 유지비용으로 사용됩니다.

 

 

1. Korean auto-glossing 설치법

github repo에서 코드를 받은 후 requirements.txt에 명시된 패키지 설치할 줄 아시는 분은 그냥 아는대로 하시면 됩니다. 단 Java에 의존하기 때문에 Java_home 확인해주세요. 

 

아래의 설치방법이 너무 어려우신 분들은 웹 인터페이스를 이용할 수도 있습니다. 주소는 https://korean-auto-glossing.herokuapp.com/ 입니다. 서버의 리소스 사용을 위해서는 돈을 내야하고, 그 돈을 내시면 사용할 수 있습니다. 돈을 내는 걸 좋아하는 사람은 아무도 없으므로, 아래의 방식을 이용해 로컬 장치에 설치해 사용하시면 되겠습니다.

 

Korean auto-glossing 설치는 간단합니다. 특히 konlpy를 사용해보신 적 있으면 Step 3과 Step 4만 하면 되기 때문에 더 간단합니다.

 

Step 1: Python3 설치

반응형

이미 Python3가 설치되어 있다면 건너뛰십시오.
구글에서 검색하면 설치방법이 쉽게 설명되어 있습니다. ( 윈도우 / / 리눅스 )

 

Step 2: Java환경 설정
이 프로그램은 형태소 분석을 할 때 konlpy에 의존합니다. 따라서 konlpy를 이미 사용하고 계시거나, R패키지 "KoNLP" 등 Java 의존 툴을 사용하신 적이 있으시다면 이 부분을 건너뛰십시오. 그게 아니라면 따로 Java환경을 잡아주어야 할 수도 있습니다. 설정하는 방법은 konlpy 설치 설명 페이지에 잘 설명되어 있습니다. ( 영문 / 한글 )

간단히 말해서, Java 홈페이지에서 최신 Java를 다운로드 받으시고, 윈도우의 경우 별도로 JAVA_HOME 환경 설정 해주시면 됩니다. 시스템 환경변수에서 JAVA_HOME 설정하는 방법은 오라클의 설명서를 참고해주세요 ( 한글 )

 

Step 3: github repo에서 코드 다운받기
우선 github repo에 들어갑니다. 거기에서 우측 상단에 있는  <> Code▼  를 클릭한 다음, Dropdown menu에서 Download ZIP을 클릭하여 코드를 zip파일로 다운로드합니다. 

 

본인이 접근할 수 있는 경로에 zip파일의 압축을 풉니다. 그 경로를 기억하십시오. 이하에서 그 경로를 [경로] 라고 지칭하도록 하겠습니다. 

 

Step 4: 의존 패키지 설치하기
윈도우라면 명령프롬프트[그게모야?], 맥이라면 터미널[그게모야?] 을 실행시키고 [경로]로 이동합니다. 명령어는 cd인데 change directory의 약자입니다. [경로]로 이동하신 다음 pip을 이용해서 필요 패키지들을 설치할 것입니다. 아래의 명령어를 입력하면 됩니다. pip은 python의 패키지 관리자이고, korean auto-glossing 프로그램이 의존하는 패키지들은 모두 requirements.txt에 나열되어 있기 때문에 requirements.txt 파일을 pip한테 먹여주시면 알아서 패키지를 찾아 설치해줍니다.

 

% pip3 install -r requirements.txt

 

2. Korean auto-glossing 사용법

무사히(?) 설치를 마쳤으면 이 프로그램을 실행해봅시다. 이 프로그램의 인터페이스는 두 종류인데 CLI (Command Line Interface) 와 웹 인터페이스를 지원합니다.

 

2.1  CLI

[경로] 에 접근하셔서 그냥 프로그램을 실행시키시면 됩니다!

명령어는 python3 worker.py "(분석 할 문장)"입니다.

아래는 "뉴진스 - Cookie"의 가사를 이용해 만든 예시입니다. 일부러 띄어쓰기 엉망으로 했는데도 분석 잘하네요.

% python3 worker.py "내가만든 쿠키. 너를 위해 구웠지."
input:	 내가만든 쿠키. 너를 위해 구웠지.
Yale:	 Nayka		mantul-n		khwukhi.		ne-lul		wiha-e		kwup-ess-ci.
gloss:	 i		make-ETD		cookie		2SG-ACC		for-ECS		bake-PST-DECL
translation:	 'Cookies I made.I baked for you.'

 

 

만약 제가 직접 분석한다면 "내가"를 통째로 1인칭으로 두지는 않고 "(1인칭)-(주격조사)"로 분석할 것 같은데, 그건 아쉽습니다. 나머지는 모두 제가 할 법한 행간주석입니다. 특히 "구웠지"를 "굽-었-지"를 분석할 했는데, 용언원형 '굽-(다)'를 살려서 분석한 것은 매우 좋네요.

 

 

2.2  로컬 웹 인터페이스

제가 처음 사용했던 컴퓨터는 MS-DOS로 구동됐습니다. (컴퓨터 끄려면 우선 '주차'부터 시키던 시절[각주:2]) 그래서 전 CLI라도 불편하긴 해도 나쁘진 않은데 (생산성의 측면에서는 오히려 낫다는 생각), 모두가 그렇지 않다는 것을 압니다. 다행히도 Flask를 이용한 웹인터페이스가 구현되어 있습니다. 사용하려면 아래와 같이 해보세요.

 

[경로] 에 접근하셔서 다음의 명령어를 입력하세요. python3 -m flask --app app run  

% python3 -m flask --app app run  
 * Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

 

그럼 컴퓨터가 위와 같이 말하는데, 웹 브라우저 아무거나 켠 다음 위에서 제시된 url로 들어가면 웹 인터페이스를 사용할 수 있습니다. 제 경우는 http://127.0.0.1:5000 이기 때문에 이 주소를 크롬이나 파이어폭스 주소창에 입력했습니다. 그럼 아래와 같은 창을 통해서 문장을 입력하고 분석할 수 있습니다.

 

암요. 음운론이 최고지요.

 

자 여기서도 텍스트 상자에 우리 뉴진스의 가사를 입력해봅시다. 문장을 입력한 다음 Submit 버튼을 누르면 결과가 바로 나옵니다!

내가만든 쿠키이이이이이이이

 

3. 결론

어떤 인터페이스를 사용하던 결과물은 같습니다. 그리고 그 결과물을 간격 맞춰서 예쁘게 논문에 넣으려면, 직접 단어 사이 공백을 조정해도 되지만, 구글에서 interlinear gloss generator 아무거나 골라서 사용해도 될 것 같습니다.

 

저는 구글에 interlinear gloss generator로 검색하니 이게 나와서 거기에 입력해봤습니다. 아래는 그 결과입니다.

Nayka      mantul-n khwukhi. ne-lul  wiha-e   kwup-ess-ci.
i          make-ETD cookie   2SG-ACC for-ECS  bake-PST-DECL
'Cookies I made. I baked for you.'

 

ㅋㅋㅋ 이정도면 논문에 그대로 들어가도 괜찮겠는데요? 결론: 뉴진스 가사 예문으로 이용한 통사론-의미론 논문이 나온다면 좋겠습니다.

 

 

 


  • 아래에 댓글창이 열려있습니다. 로그인 없이도 댓글 다실 수 있습니다.
  • 글과 관련된 것, 혹은 글을 읽고 궁금한 것이라면 무엇이든 댓글을 달아주세요.
  • 반박이나 오류 수정을 특히 환영합니다.
  • 로그인 없이 비밀글을 다시면, 거기에 답변이 달려도 보실 수 없습니다. 답변을 받기 원하시는 이메일 주소 등을 비밀글로 남겨주시면 이메일로 답변드리겠습니다.

 

 

  1. 고양이 사진은 있으면 좋지만 99.9%의 논문에서는 생략합니다. (고양이 사진 출처) [본문으로]
  2. park 명령어를 사용해야 컴퓨터를 끌 수 있었다는 뜻입니다 [본문으로]
반응형