카테고리 없음

자연어 처리 다양한 라이브러리 nltk, spacy

유방울 2023. 9. 12. 15:23

1. nltk

import nltk # Natural language toolkit 자연어 처리 수행 위한 라이브러리
  1. 말뭉치 (Corpora): 다양한 종류의 텍스트 데이터셋을 제공합니다. 예를 들어, 영어 코퍼스, 웹 페이지, 대화 데이터 등이 있습니다.
  2. 토큰화 (Tokenization): 문장이나 단어 등을 토큰으로 분리하는 작업을 수행합니다.
  3. 형태소 분석 (Morphological Analysis): 단어를 어근과 어미 등으로 분리하거나, 품사 태깅을 수행합니다.
  4. 불용어 처리 (Stopword Removal): 자주 사용되지만 분석에 큰 도움이 되지 않는 단어들을 제거합니다.
  5. 문서 분류 (Document Classification): 텍스트를 주어진 카테고리로 분류하는 작업을 지원합니다.
  6. 자연어 생성 (Text Generation): 단어나 문장을 생성하는 모델을 만들 수 있습니다.
  7. 형태소 분석기 (POS Tagger): 문장에서 각 단어의 품사를 태깅합니다.
  8. 통계적 언어 모델 (Statistical Language Models): N-gram 모델을 사용하여 텍스트 생성과 관련된 작업을 수행합니다.
  9. 기계 학습 알고리즘 (Machine Learning Algorithms): 자연어 처리에 사용되는 다양한 머신러닝 알고리즘을 지원합니다.
  10. 워드넷 (WordNet): 영어 단어의 동의어 사전으로, 단어 간의 상위-하위 관계 등을 제공합니다.

 

2. spacy

자연어 처리 위한 오픈 소스 라이브러리

열받는 게 주피터에서 실행이 안 됨ㅎ 

import spacy

!python -m spacya download ko_core_news_sm
nlp = spacy.load("ko_core_news_sm")
# 모델 크기마다 sm, md, lg가 있음
# en 버전과 다르게 trf 모델은 없음
# lg -> 모델이 크고 성능 좋을 수 있음
# sm, md -> 비교적 속도 느리고 sm, ,md 모두 성능 비슷함

 

  1. 고성능: spaCy는 처리 속도가 빠르고 메모리 사용이 효율적인 특징을 가지고 있습니다.
  2. 품사 태깅 및 구문 분석: spaCy는 문장의 단어에 대한 품사 태깅, 의존 문법 분석 등의 작업을 지원합니다.
  3. 개체명 인식 (NER): 개체명 인식을 통해 문장에서 중요한 정보를 추출할 수 있습니다.
  4. 토큰화 (Tokenization): 문장을 단어나 구문으로 분리합니다. 이 과정은 다양한 언어에 대해 정확하게 수행됩니다.
  5. 단어 벡터: spaCy는 단어의 임베딩을 제공하여 단어 간의 의미적 유사성을 계산할 수 있습니다.
  6. 불용어 처리: 불용어를 자동으로 제거하여 중요한 단어만 남게 합니다.
  7. 언어 모델: spaCy는 다양한 언어에 대한 미리 훈련된 언어 모델을 제공합니다.
  8. 특징 추출: 문서에서 특징을 추출하여 자연어 처리 작업에 활용할 수 있습니다.