본문 바로가기
AI-Tech 부스트캠프/NLP

[NLP] 자연어처리란?

by Alan_Kim 2021. 9. 6.
728x90
반응형

자연어처리 Natural Language Processing(NLP) 

NLP란? (NLP = NLU + NLG)

 Text 데이터를 분석하고 모델링하는 분야를 '자연어 처리(Natural Language Processing, NLP)'라고 한다. 이는 자연어를 이해하는 영억인 '자연어 이해(Natural Language Understanding, NLU)'와 모델이 자연어를 생성하는 영역인 '자연어 생성(Natural Language Generation, NLG)' 으로 나뉘어 표현하기도 한다.

 

Natural language processing (major conferences: ACL, EMNLP, NAACL)

Low- level parsing

  Tokenization(토큰화) : 텍스트를 토큰으로 나누는 과정을 의미한다. 토큰화는 알파벳과 숫자가 아닌 문자를 기준으로 텍스트를 나누는 작업보다 더 복잡할 수 있다. 터키어와 같은 교착어는 공백 문자와 구두점으로 나누는 것으로 충분하지 않다. 이를 위해 텍스트를 바이트 스트림으로 신경망에 표현하여 토큰화 문제를 완전히 피해갈 수 있다.

 Word and phrase level

  NER, POS tagging, noun-phrase chunking, dependency parsing, coreference resolution

 Sentence level

  Sentiment analysis(감정분석), machine translation(기계번역)

 Multi-sentence and paragraph level

  Entailment prediction(두문장간의 연관성 내포를 예측)

  Question answering

  Dialog systems (챗봇)

  Summarization(뉴스와 같은 문서 한 줄 요약)

 

 텍스트를 특정한 차원에서의 벡터화 시키는 두가지 기술(Word Embedding):  Word2Vec, Glove

이에 대한 질문이 있었는데 피어세션 시간에 풀 수 있었다.

[피어세션 질문](https://glossy-crib-1b1.notion.site/word-embedding-a6b3265e753c42948e721198db5d1f9e)

 

 

CODE

import spacy # NLP 대표 라이브러리 spaCy이용



nlp = spacy.load('en_core_web_sm') # spaCy로 작업 할 때 텍스트 문자열의 첫 번째 단계는 NLP 객체 에 전달하는 것 입니다. 이 개체는 기본적으로 입력 텍스트 문자열이 통과해야하는 여러 텍스트 사전 처리 작업의 파이프 라인입니다.
text = nlp("He went to play basketball")

print([token.text for token in text]) #['He', 'went', 'to', 'play', 'basketball']

nlp.pipe_names # ['tagger', 'parser', 'ner']
  • en_core_web_sm : OntoNotes에서 훈련 된 영어 다중 작업 CNN . 크기 — 11MB
  • en_core_web_md : OntoNotes에서 훈련 된 영어 멀티 태스크 CNN, Common Crawl에서 훈련 된 GloVe 벡터. 크기 — 91MB
  • en_core_web_lg : Common Crawl에서 훈련 된 GloVe 벡터와 함께 OntoNotes에서 훈련 된 영어 멀티 태스크 CNN. 크기 — 789 MB

 

728x90
반응형

댓글