일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- recursion
- 파이썬
- graph
- 그래프이론
- Sort
- codingthematrix
- 딥러닝
- HelloWorld
- collections
- effective python
- 주식분석
- tensorflow
- RNN
- GRU
- Java
- C언어
- LSTM
- hive
- hadoop2
- 코딩더매트릭스
- 알고리즘
- python
- NumPy
- 선형대수
- yarn
- 하이브
- scrapy
- C
- 텐서플로
- 하둡2
- Today
- Total
목록NLP/NLTK (9)
EXCELSIOR
Part-Of-Speech tagging(POS tagging)은 문장 내 단어들의 품사를 식별하여 태그를 붙여주는 것을 말한다. 투플(tuple)의 형태로 출력되며 (단어, 태그)로 출력된다. 여기서 태그는 품사(POS) 태그다. 1. Default taggingDefault tagging은 POS-tagging에 있어 베이스라인을 제공해준다. Default tagging은 DefaultTagger 클래스를 사용하여 모든 토큰들(tokens)에 대해 동일한 POS를 부여한다. 이 Tagger는 정확도 향상을 위해 마지막 수단으로 사용하기에 적합하다.DefaultTagger클래스는 태그에 적용하고자하는 단일 인수를 가진다. 아래의 예제에서는 'NN' 태그를 적용해 보았다. from nltk.tag.seq..
1. Creating a categorized text corpus대량의 corpus로 이루어진 텍스트를 섹션을 나누어 카테고리화 하면 문서를 체계화 하거나, 분류(classification)하는데 유용하다. 다음 movie review에 대한 텍스트를 긍정(Pos)와 부정(Neg)로 카테고리화 해보자1) movie_pos.txt: the thin red line is flawed but it provokes. 2) movie_neg.txt: a big-budget and glossy production can not make up for a lack of spontaneity that permeates their tv show.CategorizedPlaintextCorpusReader 클래스를 이용하여..
1. Creating a wordlist corpuscorpus는 우리말로는 말뭉치라고 하며, 자연어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합이다. corpora는 corpus의 복수형이다. corpus는 라틴어가 어원이다. 특정한 언어 영역 내에서 언어 규칙 발생의 검사와 그 규칙의 정당성 입증에 사용된다. NLTK 모듈의 WordListCorpusReader 클래스는 가장 단순한 CorpusReader 클래스 중 하나이다. WordListCorpusReader클래스는 한 줄에 한 단어로 리스팅 되어있는 파일에 사용할 수 있다. 우선, WordListCorpusReader를 사용하기 위해 아래와 같이 'wordlist.txt' 라는 파일을 생성한 다음 WordListCorpusRea..
1. Replacing words matching regular expressions앞의 포스팅(Stemming, Lemmatizing)에서는 언어의 압축(linguistic compression)이었다면 Word Replacement는 텍스트 정규화(text normalization) 또는 오타 수정으로 볼 수 있다. 아래의 예제는 영어의 축약형 표현을 원래의 표현으로 바꿔주는 예제이다. 예를 들어, "can't → can not", "would've → would have"로 바꿔준다. replacers.py의 RegexpReplacer( )를 import 하여 구현하였다. r'(\w+)\'ve'는 've을 포함하는 단어들을 찾아서 '\g have'에서 've 앞의 단어를 g로 그룹핑한 뒤 have를..
1. Stemming wordsStemming은 단어에서 접사(affix)를 제거하는 것을 말한다. Stemming은 검색엔진에서 색인할 때 가장 많이 쓴다. 모든 형태의 단어를 저장하는것 보다 Stemming한 단어를 저장하는 것이 색인 크기를 줄일 뿐만아니라 검색 정확성을 높일 수 있다.Stemming algorithm 중에서 유명한 알고리즘은 Martin Porter의 Porter stemming algorithm이다. Porter 알고리즘은 영어의 접미사(suffix)를 제거한다. 1) The PorterStemmer class from nltk.stem.porter import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem('cookin..
1. Looking up Synsets for a word in WordNetWordNet(워드넷)은 영어의 의미 어휘목록이다. WordNet은 영어 단어를 'synset'이라는 유의어 집단(동의어 집합)으로 분류하여 간략하고 일반적인 정의를 제공하고, 이러한 어휘목록 사이의 다양한 의미 관계를 기록한다. 워드넷은 자연어 처리(NLP, Natural Language Processing)를 위한 특화된 사전이라고 볼 수 있다. NLTK의 wordnet을 사용하기 위해서는 nltk_data/corpora/wordnet에 wordnet이 압축이 풀려있어야 한다.다음과 같이 'cookbook'의 synset을 알아보자. wordnet.synsets(word)를 통해 확인할 수 있다. definition( ) 함..
1. Tokenizing text into sentencesTokenization이란 문자열을 여러개의 조각, 즉 여러 개의 Token(토큰)들로 쪼개는 것을 말한다. Token은 문자열의 한 조각으로 하나의 단어가 하나의 토큰이라고 할 수 있다. 1) paragraph 을 문장 단위로 tokenize하기nltk의 sentence tokenization function인 sent_tokenize를 통해 단락을 문장단위로 분리해본다. from nltk.tokenize import sent_tokenize para = "Hello World. It's good to see you. Thanks for buying this book." print(sent_tokenize(para)) ['Hello World...
NLTK 공부를 하기에 앞서 먼저 NLTK를 설치해 보겠다.Python에 NLTK를 설치하기 위해서는 먼저 Numpy를 설치해야 한다. Numpy 설치는 http://excelsior-cjh.tistory.com/entry/Python%EC%97%90-numpy-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%8B%A4%ED%96%89 여기를 참고하자NLTK를 설치하기 위해 다음과 같이 pip 명령어를 입력한다.pip install nltk NLTK가 설치가 제대로 되었는지 확인해 본다. 다음과 같이 아무런 에러가 나지 않으면 제대로 설치된 것이다. 만약 다음과 같은 에러가 난다면 pip install numpy --upgrade 명령어를 통해 Numpy를 업그레이드 해주면 된다. >>>imp..