[NLP] 0-3. KoNLPy 사용 위한 환경 설정

Paper2Code·2025년 8월 7일

NLP Project

목록 보기
4/12
post-thumbnail

KoNLPy란?

KoNLPy (Korean Natural Language Processing in Python) 는 한국어 형태소 분석을 지원하는 파이썬 기반 오픈소스 라이브러리입니다. 다양한 한국어 형태소 분석기들을 Python 환경에서 사용할 수 있도록 래핑한 형태로,

다음과 같은 기능을 제공합니다:

  • 형태소 분석 (morphological analysis)
  • 품사 태깅 (POS tagging)
  • 명사 추출 (noun extraction)
  • 문장 분석 (tokenization, parsing)

주요 내장 형태소 분석기

KoNLPy는 여러 형태소 분석기를 지원합니다:

분석기특징
Okt트위터 형태소 분석기 기반. 속도 빠르고 가볍고, 복합 명사 인식
KomoranJava 기반, 정밀한 분석, 사전 사용자 정의 가능
Hannanum세종 코퍼스 기반, 조사 분석에 강함
Kkma정교한 분석 가능, 느리지만 정밀
Mecab매우 빠르고 정확한 분석기 (별도 설치 필요)

Dialogue Summarization 대회에서의 활용 목적

이 대회에서는 모델 성능 평가 시 ROUGE 스코어 측정 시 한국어 형태소 단위 토큰화가 필요합니다. 일반적인 띄어쓰기 단위가 아닌 의미 단위(minimal semantic unit) 기준으로 텍스트를 분리해야 정교한 평가가 가능합니다.

따라서 KoNLPy는 다음과 같은 목적에 사용:

  • 형태소 단위로 요약문 및 정답 요약문을 분해
  • 정확한 ROUGE 점수 산출을 위한 tokenization
  • 명사 추출 또는 불용어 제거 등 전처리
  • 데이터 분석(EDA) 과정에서 단어 분포, 키워드 분석

KnoNLPy에서 사용하는 JAVA 기반 형태소 분석기 (ex Hannanum, Kkma, Komoran 등)을 사용하기 위한 Java 환경 설정 명령어

✅ 1. Java 설치 (이미 했는지 확인)

java -version

- 결과가 아래처럼 나오면 설치된 것:

openjdk version "11.0.22" 2024-01-16 OpenJDK Runtime Environment ...

- 설치 안 된 경우:

sudo apt update sudo apt install openjdk-11-jdk

설치 명령어 실행 후, 에러 메세지

^Citing for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 358514 (apt)... 2040s

현재 다른 프로세스가 apt 관련 작업을 점유 중이라는 뜻

➡️ 현재 점유 중인 프로세스 확인

ps -aux | grep apt
  • 실제 실행 결과
root 358514 0.0 0.0 92772 82656 ? S Jul31 1:42 apt install openjdk-11-jdk root 597094 0.0 0.0 3304 656 pts/7 S+ 14:09 0:00 grep apt

해당 프로세스는 7월 31일부터 실행 중인 설치 명령어인데, 아직도 종료되지 않음. (이틀전 실행했던 프로세스가 비정상적으로 멈춘 것)

  1. 해당 프로세스 강제 종료
kill -9 358514
  1. 락 파일 제거
rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock`
  1. 중단된 설치 마무리
dpkg --configure -a
  1. 다시 설치 시도
apt update 
apt install openjdk-11-jdk

✅ 2. JAVA_HOME 환경변수 설정 (이미 하셨다면 이 단계는 건너뜀)

Java를 사용하는 분석기들(Hannanum, Kkma, Komoran) 사용 시 필수 조건

readlink -f $(which java)  # 현재 시스템에 설치된 java 실행 파일의 실제 경로 확인

export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" #Java 11 경로를 JAVA_HOME으로 지정
export PATH=$JAVA_HOME/bin:$PATH #Java 실행파일이 PATH에 포함되도록 설정

# 위 설정을 ~/.bashrc에 영구 저장
echo 'export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' >> ~/.bashrc 
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc 
source ~/.bashrc # 설정 적용

✅ 3. KoNLPy 설치

pip install konlpy

설치가 완료되면 from konlpy.tag import Okt 등으로 정상 임포트 되는지 확인 필요.

✅ 4. 테스트


from konlpy.tag import Okt  
okt = Okt() 
print(okt.morphs("형태소 단위로 분석해보는 예제입니다."))

정상 출력 예시:

['형태소', '단위', '로', '분석', '해', '보는', '예제', '입니다', '.']

✅ okt=Okt() 설명

  • Okt:
    • Open Korean Text (Okt) tokenizer의 약자로,
    • 트위터에서 개발한 한국어 처리 도구 (예전 이름은 Twitter)
    • 형태소 분석, 품사 태깅, 어간 추출 등 가능
    • Java 필요 없음 → Python 환경에서 가장 간편히 사용 가능
  • okt = Okt():
    • Okt 클래스를 호출해 형태소 분석기 객체 okt를 생성
    • 이후 이 객체를 통해 텍스트 분석 작업 수행 가능
profile
As I Imagine | 이론 정리 사이트 Tistory 링크 참조 ↓ 홈 아이콘 클릭)

0개의 댓글