Python/NLP Code

파이썬 고성능 언어 감지 모듈 Lingua 소개 및 예제

jimmy_AI 2025. 2. 6. 23:41
반응형

안녕하세요.

이번 글에서는 Python에서 제공되는 언어 감지 모듈인

Lingua에 대해서 간략하게 소개를 해보고 코드 예제를 다루어보도록 하겠습니다.

 

해당 모듈에 대한 공식 github 페이지는 다음과 같으며,

이 포스팅도 해당 글의 내용을 토대로 작성하였습니다.

 

GitHub - pemistahl/lingua-py: The most accurate natural language detection library for Python, suitable for short text and mixed

The most accurate natural language detection library for Python, suitable for short text and mixed-language text - pemistahl/lingua-py

github.com

 

 

Lingua 성능 비교

Lingua는 fasttext, langdetect 등 다른 모듈에 비하여 높은 성능을 나타냅니다.

공식 github에 있는 평균 정확도에 대한 그래프는 다음과 같습니다.

 

물론, 언어 감지를 위하여 ChatGPT 등 LLM 모델이나

Azure 등에서 제공하는 API를 활용할 수도 있겠지만,

 

Lingua가 내장 모델을 사용하며 무료인 언어 감지 툴 중에서는

꽤나 탁월한 성능을 보이고 있다고 말할 수 있을 것입니다.

 

평균적인 속도도 multi-thread 기준으로는 다른 모델들에 비하여 가장 빠르며,

single-thread 기준으로도 어느 정도 준수한 속도를 보이고 있습니다.

 

아래의 표는 github 페이지에 공개된 3000회 분류 task에 대한 소요 시간 비교 table 입니다.

 

 

Lingua 코드 예제

Lingua 모듈의 설치는 무척 간단합니다.

다음의 명령어로 쉽게 설치가 가능합니다.

pip install lingua-language-detector

 

Lingua 모듈을 통하여 언어 감지를 실제로 진행하는 예시 코드 스니펫은 다음과 같습니다.

# 모듈 임포트
from lingua import Language, LanguageDetectorBuilder

# 후보 언어 목록 설정
languages = [Language.ENGLISH, Language.KOREAN]

# 언어 감지기 선언
detector = LanguageDetectorBuilder.from_languages(*languages).build()

# 언어 감지 실행
language = detector.detect_language_of("안녕하세요!")

# 결과 출력
print(language) # Language.KOREAN
print(language.iso_code_639_1.name) # KO

 

만일, 리소스 문제로 저성능의 모델을 사용하고 싶다면 다음과 같이 선언할 수도 있습니다.

(고성능은 1GB, 저성능은 103MB 정도의 메모리가 필요합니다.)

LanguageDetectorBuilder.from_all_languages().with_low_accuracy_mode().build()

 

이 외에도 confidence 비교, multi-language text 분석 등 다양한 심화 기능도 제공하며,

더 깊은 내용이 필요하시다면 공식 github 페이지의 내용을 참고해보시면 도움이 될 것입니다.

 

이 글이 언어 감지 기능 구현에 큰 도움이 되셨기를 바라겠습니다.

잘 봐주셔서 감사드립니다.