Python을 사용하여 텍스트 언어 식별
7015 단어 machinelearningpythonnlp
NLP용 데이터 세트로 작업할 때 말뭉치에 혼합 언어 세트가 포함될 수 있습니다. 여기서 언어 식별은 몇 가지 언어를 필터링하거나 코퍼스를 단일 언어로 번역한 다음 다운스트림 작업에 사용하는 데 유용할 수 있습니다.
이 글에서는 fasttext 언어 감지 라이브러리의 작동 메커니즘과 사용법에 대해 설명하겠습니다.
페이스북의 Fasttext 라이브러리
Fasttext은 단어 임베딩 및 텍스트 분류를 위한 Python의 오픈 소스 라이브러리입니다. 연구보다는 프로덕션 사용 사례를 위해 제작되었으므로 성능과 크기에 최적화되어 있습니다. Word2Vec 및 subword information 사용과 같은 아이디어로 model compression 모델을 확장합니다.
언어 식별을 위해 사전 훈련된 fasttext 언어 식별 모델을 사용할 수 있습니다. 이 모델은 Wikipedia , Tatoeba 및 SETimes 에서 가져온 데이터 세트에서 훈련되었습니다. 기본 아이디어는 (텍스트, 언어) 쌍의 훈련 데이터를 준비한 다음 분류기를 훈련시키는 것입니다.
아래 벤치마크는 이러한 사전 훈련된 언어 감지 모델이 인기 있는 또 다른 Python 언어 감지 라이브러리인 langid.py보다 우수함을 보여줍니다. Fasttext는 정확도가 더 높고 추론 시간도 매우 빠릅니다. 프랑스어, 독일어, 영어, 스페인어, 중국어 등 다양한 언어를 지원합니다.
언어 감지를 위한 Fasttext 사용
Fasttext
라이브러리를 설치합니다.pip install fasttext
사전 학습된 모델에는 두 가지 버전이 있습니다. 메모리 및 공간 요구 사항에 맞는 모델을 선택하십시오.
lid.176.bin : 더 빠르고 약간 더 정확하지만 크기가 126MB임
lid.176.ftz : 파일 크기가 917kB인 모델의 압축 버전
wget -O /tmp/lid.176.bin https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin
import fasttext
PRETRAINED_MODEL_PATH = '/tmp/lid.176.bin'
model = fasttext.load_model(PRETRAINED_MODEL_PATH)
sentences = ['je mange de la nourriture']
predictions = model.predict(sentences)
print(predictions)
# ([['__label__fr']], array([[0.96568173]]))
fr
는 프랑스어의 ISO 639
코드입니다. 모델은 언어가 프랑스어라고 96.56% 확신합니다. af als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk ce ceb ckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh
pip install pycountry
from pycountry import languages
lang_name = languages.get(alpha_2='fr').name
print(lang_name)
# french
결론
따라서 우리는 파이썬에서 언어 감지에 fasttext를 어떻게 사용할 수 있는지 살펴보았습니다. 이는 자연어 처리 프로젝트에서 영어가 아닌 응답을 필터링하고 처리하는 데 매우 유용합니다.
연결하다
이 블로그 게시물이 마음에 드셨다면 매주 새 블로그 게시물을 공유하는 곳에서 저와 연락해 주시기 바랍니다.
Reference
이 문제에 관하여(Python을 사용하여 텍스트 언어 식별), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/amitness/identify-the-language-of-text-using-python-5on텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)