잠시 kakobrain에서 발표한 pororo 리뷰
이름보니 주 개발자분의 아이가 한참 어린이집 다닐 정도 되시는 분일듯.
Github repository 링크:
kakaobrain/pororo: PORORO: Platform Of neuRal mOdels for natuRal language prOcessing (github.com)
kakobrain pororo란?
pororo
performs Natural Language Processing and Speech-related tasks.It is easy to solve various subtasks in the natural language and speech processing field by simply passing the task name.
자연어 처리와 스피치 관련 여러 라이브러리를 제공하는 듯 하다. NER 관련한 부분에 관심이 있어 이부분을 주로 살펴본다.
pororo 설치
WSL의 Ubuntu에 설치. 설치시 torch 1.6.0 제한이 있다. 잠시 리뷰가 목적이니 우선 CPU로 구성하자.
conda create -n pororo python=3.6 conda activate pororo # cpu only로 설치 GPU 설치 등은 아래 링크 참조 # https://pytorch.org/get-started/previous-versions/#v160 conda install pytorch==1.6.0 torchvision==0.7.0 cpuonly -c pytorch pip install pororo
NER 관련 정보 및 코드
한글은 국립국어원에서 제공하는 말뭉치의 형태소를 이용하는 듯 하다.
간략히 NER 코드를 테스트
from pororo import Pororo ner = Pororo(task="ner", lang="ko") ner("손흥민은 28세의 183 센티미터, 77 킬로그램이며, 현재 주급은 약 3억 원이다.") ner("손흥민은 28세의 183 센티미터, 77 킬로그램이며, 현재 주급은 약 3억 원이다.", apply_wsd=True)
wsd를 적용한 후의 결과가 매우 흥미롭다. 이것만으로도 여러 NLP ML모델이나 Azure의 Cognitive Service API와 연동해 해볼것들이 있을 듯 하다.
apply_wsd=False | apply_wsd=True |
[('손흥민', 'PERSON'), | [('손흥민', 'PERSON'), |
('은', 'O'), | ('은', 'O'), |
(' ', 'O'), | (' ', 'O'), |
('28세', 'QUANTITY'), | ('28세', 'AGE'), |
('의', 'O'), | ('의', 'O'), |
(' ', 'O'), | (' ', 'O'), |
('183 센티미터', 'QUANTITY'), | ('183 센티미터', 'LENGTH/DISTANCE'), |
(',', 'O'), | (',', 'O'), |
(' ', 'O'), | (' ', 'O'), |
('77 킬로그램', 'QUANTITY'), | ('77 킬로그램', 'WEIGHT'), |
('이며,', 'O'), | ('이며,', 'O'), |
(' ', 'O'), | (' ', 'O'), |
('현재', 'O'), | ('현재', 'O'), |
(' ', 'O'), | (' ', 'O'), |
('주급은', 'O'), | ('주급은', 'O'), |
(' ', 'O'), | (' ', 'O'), |
('약 3억 원', 'QUANTITY'), | ('약 3억 원', 'MONEY'), |
('이다.', 'O')] | ('이다.', 'O')] |
Character BERT
구조적인 부분에서 Character BERT 를 이용하는 것으로 예상되고, 여러가지 조합이 가능할 듯 하다.
NLP와 관련된 정보 사이트
NLP With U (nlp-with-u.github.io) 에서 여러 정보를 확인 가능하였다.
여러 NLP 도구와 말뭉치 등 다양한 정보를 한눈에 볼 수 있다.
추천!
참고링크
NLP With U (nlp-with-u.github.io)
kakaobrain/pororo: PORORO: Platform Of neuRal mOdels for natuRal language prOcessing (github.com)