자연어 처리를 위한 텍스트 분석 기술은 주로 응용 머신러닝에 해당하므로 풍부한 과학 계산 라이브러리 및 수치 계산 라이브러리를 갖춘 언어가 필요하다. 파이썬 언어에는 텍스트를 대상으로 머신러닝을 수행하는데 필요한 도구들인 사이킷런, NLTK, Gensim, SpaCy, NetworkX, Yellowbrick 등을 갖추고 있다.

 

1. 사이킷런 (scikit-learn)

사이킷런은 일반적인 머신러닝용 API를 제공하던 SciPy를 확장한 것으로 사이썬(Cython)의 최상단에 구축됨으로써 고성능 C 라이브러리가 들어있게 된 셈이므로 높은 성능을 낼 뿐만 아니라 사용하기도 쉽다. 따라서 이를 사용하여 중소 규모 데이터 셋을 쉽게 분석할 수 있으며, 교차 검증 및 하이퍼 파라미터 조율을 위한 유틸리티 뿐만 아니라 많은 회귀, 분류, 군집화 및 차원 축소 모델에 대한 단일 인터페이스를 제공한다.

 

scikit-learn: machine learning in Python — scikit-learn 0.24.1 documentation

Model selection Comparing, validating and choosing parameters and models. Applications: Improved accuracy via parameter tuning Algorithms: grid search, cross validation, metrics, and more...

scikit-learn.org

 

2. NLTK (Natural Language Tool-Kit)

자연어 처리 도구 모음은 자연어 처리를 가르치기 위한 훈련용 도구로서, 말뭉치(corpora), 용어 데이터, 문법, 언어 처리 알고리즘과 사전 훈련 모델이 다양하게 들어있다. 이를 사용하여 다양한 언어로 된 텍스트 데이터를 빠르게 처리할 수 있다.

 

Natural Language Toolkit — NLTK 3.5 documentation

 

www.nltk.org

 

3. Gensim

젠심은 비지도 학습 방식으로 텍스트를 의미론적 모형화(semantic modeling)하는데 초점을 맞춘 라이브러리다. 처음에는 문서 간 유사성을 알아내기 위해 설계된 것이지만, 잠재 의미 분석 기술을 위한 토픽 모델링 방법을 공개했고, word2vec 같은 그 밖의 비지도 학습 방식 라이브러리들도 제공한다.

 

Gensim: topic modelling for humans

Efficient topic modelling in Python

radimrehurek.com

 

4. spaCy

스페이시는 학술적으로 최첨단에 해당하는 기술을 간단하고 사용하기 쉬운 API 형태로 구현한 것으로 상용 제품 수준의 언어 처리 기능을 제공한다. 특히 딥러닝을 할 수 있게 텍스트를 전처리하거나, 대용량 텍스트에서 정보를 추출하거나, 자연어를 이해하는 시스템을 구축하는데 초점을 맞추었다.

 

spaCy · Industrial-strength Natural Language Processing in Python

spaCy is a free open-source library for Natural Language Processing in Python. It features NER, POS tagging, dependency parsing, word vectors and more.

spacy.io

 

5. NetworkX

네트웍스는 복잡한 망을 생성하고 직렬화하고 분석하고 조작하기 위한 포괄적인 그래프 분석 패키지이다. 특별한 머신러닝 라이브러리도 아니고 텍스트 분석 라이브러리도 아니지만, 그래프 알고리즘이 순회하거나 의미를 찾을 수 있도록 성분 간의 복잡한 관계를 그래프 자료구조를 사용해 인코딩할 수 있다. (그래프 자료구조는 이 텍스트 분석 툴킷에서 핵심 부분에 해당한다.)

 

Tutorial — NetworkX 2.5 documentation

This guide can help you start working with NetworkX. Nodes The graph G can be grown in several ways. NetworkX includes many graph generator functions and facilities to read and write graphs in many formats. To get started though we’ll look at simple mani

networkx.org

 

6. YellowBrick

옐로우 브릭은 머신러닝 작업흐름(workflows)을 분석하고 해석할 수 있도록 시각적으로 진단할 수 있게 해주는 도구 모음이다. 사이킷런 API를 확장한 옐로우브릭을 사용하면 특징 선택, 모델화, 하이퍼파라미터 조율을 직관적이고 시각적으로 이해하며 모델 선택 과정, 모형 선택을 조정할 수 있기 때문에 텍스트 데이터에 가장 좋은 효과를 보이는 모델을 찾는데 도움이 된다.

 

Yellowbrick: Machine Learning Visualization — Yellowbrick v1.3.post1 documentation

The primary goal of Yellowbrick is to create a sensical API similar to Scikit-Learn. Visualizers are the core objects in Yellowbrick. They are similar to transformers in Scikit-Learn. Visualizers can wrap a model estimator - similar to how the “ModelCV

www.scikit-yb.org

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기