개체명은 단어의 의미를 어느정도 파악하기 위해서 사용하는 방법으로 단어의 꼬리표를 다는 방법이다. 예를 들어, 홍길동이라는 것은 사람이름이고, 삼성전자는 기업이름이라고 한다면, 컴퓨터는 문서의 내용을 어느정도 이해할 수 있게 된다. 게다가 많은 개체명의 경우 복합 명사인 경우가 많은데 의미와 함께 단어를 복합명사로 추출하여, 강력한 분석용 단어를 추출할수도 있게 된다. 형태소 분석은 순수하게 의미가 있는 단어로 최대한 잘게잘게 나누기 때문에 문장의 뜻을 정확하게 알기 위해서는 분명 필요한 기능일 수 있으나, 데이터 분석에서 사용을 하게 되는 경우 너무 작은 단위의 단어는 feature만 늘어나게 되고, 문서간의 유사도 등을 비교하거나 검색에서 문서를 찾을 때에도 비효율적이 된다. 개체명 구현 코드 (Ko..
금칙어는 자연어 처리(NLP)에서 원치 않는 데이터를 제거하기 위한 방법중 가장 효과가 좋은 방법입니다. 형태소 분석으로 생성된 품사라든지, 개체명 사전에서 생성된 개체명이 마음에 들지 않을 경우 금칙어 사전을 만들어서 대응을 하는 것이죠. 품사 사전이나 개체명 사전에서 지우면 되는 것이 아니냐 할 수 있는데 사전이라는 것은 다양한 곳에서 활용이 될 수 있으며, 특정 서비스에서만 제거가 필요한 경우가 있을 수 있기 때문이고, 제대로 추출이 되었지만 필요가 없을 수도 있기 때문입니다. 금칙어 예제 소스 private Set STOP_KWD; public void action() { setStopKwd(); Komoran komoran = new Komoran(DEFAULT_MODEL.FULL); Strin..
자연어처리에서 가장 많은 시간을 소요하는 것이 무엇일까? 현업이라면 아마 이런 말을 하지 않을까 싶다. 바로 사전을 만드는 작업이다. 자연어처리는 사전을 만들면 만들수록 품질이 좋아지게 되는데 이는 현재 존재하는 오픈 품사 사전이 매우 적으며, 개체명과 신조어 같은 것들이 포함이 되어 있지 않기 때문이다. 일반적으로 상용 검색엔진에서 제공하는 사전은 약 100만개 이상의 품사를 지원하고 활용하게 되는데 이는 이전 포스팅에서 작성한 형태소 분석 확인 사이트에서 엑소브레인(Exobrain)과 코모란(Komoran)의 형태소 분석 품질을 보면 쉽게 알 수 있다. 오픈소스를 활용해서 구축해야 하는 경우 일반적으로 사용자사전을 상황에 따라 많이 구축하게 되며, 이를 별도로 맡는 분들이 따로 계신다. 마치 딥러닝에..
코모란은 Java에서 사용하는 대표적인 오픈소스 형태소 분석기 중 하나이다. 사용하기가 매우 편리하고, 형태소 분석 성능 역시 뛰어나기 때문에 Java든 Python이든 많이 사용하고 있다. Pom.xml 우선 코모란을 설정하기 위해서 pom.xml 디펜던시(dependency)를 설정해야 하는데 코모란 디펜던시를 위해서 레파지토리도 추가해야 한다. Repository jitpack.io https://jitpack.io Dependency com.github.shin285 KOMORAN 3.3.4 위와 같이 pom.xml 설정이 완료되면, pom.xml을 업데이트하여, 디펜던시 jar 파일을 다운로드 한다. repository -> com -> github -> shin285 -> KOMORAN -> ..
형태소 분석을 하기 위해서는 당연히 형태소 분석기를 돌리면 되지만, 형태소 분석기를 교차검증 해야 될 필요도 있고 다른 형태소 분석기는 어떻게 분석을 하는지 알아야 될 때도 있다. 각설하고, 우리나라에는 대표적으로 형태소 분석을 확인할 수 있는 사이트가 여럿있지만 여기서는 2가지를 설명해보고자 한다. 엑소브레인(Exobrain) 엑소브레인은 한국전자통신연구원(ETRI, 에트리)와 국내 인공지능 및 검색업체와 같이 프로젝트를 한 사업으로 참여한 업체는 와이즈넛(Wisenut)과 솔트룩스(Saltlux) 등이 있다. 와이즈넛과 솔트룩스는 상용 검색엔진을 만드는 업체로 국내 다섯손가락 안에 드는 업체이기 때문에 자연어처리 기술이 매우 잘 발달되어 있다. 엑소브레인은 에트리와 국내 굴지의 업체들이 함께 만들었으..
자연어처리에 관련된 업무를 하기 위해서 가장 필요한 지식은 바로 품사에 대한 이해이다. 우리가 학창 시절에 공부를 했기 때문에 다들 품사가 무엇인지 어느정도 알고 있을테지만, 자연어처리를 더욱 잘 이해하기 위해서는 품사에 대한 이해를 학창 시절 이상으로 끌어올려야 한다. 게다가 자연어처리를 하는 대다수는 컴퓨터 공학을 전공한 이과생들이기 때문에 문과생들보다 품사에 대한 이해가 상대적으로 떨어질 수 있기에 자연어 처리를 할 때 사용하는 품사들의 종류가 무엇인지 조금 더 자세히 알아 볼 필요가 있다. 형태소 분석 품사를 붙이는 행위를 PoS(Part of Speech, 품사) Tagging이라고 한다. 형태소 분석은 의미있는 가장 작은 단위의 말(형태소)을 분석한다라는 뜻을 담고 있기에 Pos Tagging..