본문 바로가기

spaCy5

spaCy 사용하기 -Processing Pipelines 우리가 spaCy를 사용하기 위해 nlp 객체에 text 파라미터를 입력하면 결과적으로 아래와 같은 pipeline이 실행 된다. 아래와 같이 model을 호출하면, spaCy에서는 처음에 model의 meta.json을 읽는다. meta.json에는 model name과 language, description pipeline이 json 포멧으로 나타나 있다. nlp = spacy.load('en') {"name": "model_name","lang": "en","description": "model description", "pipeline": ["tagger", "parser"]} spaCy에서는 model.json에 나타난 pipeline을 읽고 해당 pipeline을 처리한 후 결과 Doc 객체를.. 2018. 4. 21.
spaCy 사용하기 - Rule based Matching spaCy에서는 자신이 직접 pattern을 등록시킬 수가 있다. 아래의 조건을 가지는 문자열 패턴을 찾는다고 가정해보자. 1. 소문자가 hello와 매칭되는 경우 2. 쉼표나 콜론 등의 구분자가 존재하는 경우 3. 소문자가 world와 매칭되는 경우 아래는 위의 조건을 코드로 나타낸 것이다. 아래와 같이 두 개 이상의 패턴을 등록할 수도 있다. wildcard token pattern도 등록할 수가 있다. 가령 User name: {username} 이런 형태의 패턴을 등록하고 싶을 경우 아래와 같이 username 항목에 빈 중괄호를 넣어 주게 되면 wildcard 처럼 동작하게 된다. ['ORTH': 'User'}, {'ORTH': 'name'}, {'ORTH': ':'}, {}] 대규모의 용어를 .. 2018. 4. 20.
spaCy 사용하기 - tokenization spaCy에서는 아래와 같은 방식으로 tokenization이 발생한다. 우선 whitespace 기준으로 raw text를 분리하고, 왼쪽에서 오른쪽 순서로 tokenization을 진행한다. 각각의 token은 아래의 주의사항을 거치게 된다. 1. don't 같은 경우엔 whitespace가 없지만 do, n't로 토큰화 해야 하며, U.K 같은 경우에는 하나의 토큰으로 인식해야 한다. 2. prefix, suffix, infix를 분리할 수 있는지 여부.. 아래의 그림 형태라고 생각하면 될 듯 하다. 각각의 언어마다 tokenization을 할 때 주의해야 할 특별한 규칙들이 있을 수가 있으며 spaCy에서는 이러한 규칙들을 추가할 수가 있다. 하다보니 궁금한 사항이 생겼는데.. 규칙 지우는건 어떻.. 2018. 4. 19.
spaCy 사용하기 - 설치 및 dependency parser 사용 spaCy 설치는 정말 간단하다. (ubuntu 기준) 아래와 같이 pip install 로 설치해 주면 된다. $> pip install -U spacy spaCy를 설치한 후에는 언어에 맞는 모델도 설치를 해야 한다. (tokenizing, parsing, pos tagging 등을 하기 위한 모델) spaCy에서는 총 8가지 언어를 지원하며 (한국어는 지원 안함) 지원 언어는 아래와 같다. 각 언어별 모델 설치는 아래와 같이 진행하면 된다. python -m spacy download enpython -m spacy downlonad depython -m spacy download espython -m spacy downlonad ptpython -m spacy download frpython -m.. 2018. 4. 16.
spaCy 사용하기 - nltk와 spaCy 비교 spaCy(https://spacy.io/)라고 nlp를 쉽게 할 수 있도록 도와주는 python package를 사용해 보고자 한다. python에 nltk가 있는데 굳이 spaCy를 써야하는 이유가 있나?? NLTK와 spaCy를 비교해 놓은 글이 있어서 링크와 함께 간단히 두 패키지의 특징을 비교해 보고자 한다. https://blog.thedataincubator.com/2016/04/nltk-vs-spacy-natural-language-processing-in-python/ 1. library 지원nltk의 경우 9개의 stemming library를 가지고 있으며(http://www.nltk.org/api/nltk.stem.html) 연구자 입장에서는 이들을 적절히 customizing 함으.. 2018. 4. 16.