Tokenization
- corpus๋ฅผ token ๋จ์๋ก ๋๋๋ ์์
- token์ ๋ณดํต ์๋ฏธ์๋ ๋จ์๋ก ์ ์
1) Word tokenization
- token์ ๊ธฐ์ค์ word๋ก ํ๋ ๊ฒฝ์ฐ
- word๋ ๋จ์ด, ๋จ์ด๊ตฌ, ์๋ฏธ๋ฅผ ๊ฐ๋ ๋ฌธ์์ด๋ก๋ ๊ฐ์ฃผ๋๊ธฐ๋ ํจ
- ๋จ์ํ punctuation์ ์ ๊ฑฐํ๊ณ whitespace๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ํฐํํ๋ ๊ฒ์ ์๋
- ๊ฐ๋ น don't ์ฒ๋ผ '๋ก ์ ์ด๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ค์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ (do + n't / don + t ๋ฑ)
- ๋จ์ด ์์ฒด์ punctuation์ ๊ฐ์ง ๊ฒฝ์ฐ๋ ์์ (m.p.h / Ph.D. / AT&T)
- ์ซ์ ์ฌ์ด์ punctuation์ด ๋ค์ด๊ฐ์ผ๋ ํ ๋ฒ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ๋ ์์ ($45.55 / 01/02/06 / 123,456 )
- ๋จ์ด ๋ด์ ๋์ด์ฐ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์์ (New York / Rock 'n' roll)
- "Penn Treebank Tokenization"
- ํ์ค ํ ํฐํ ๋ฐฉ๋ฒ ์ค ํ๋
- ๊ท์น 1) ํ์ดํ์ผ๋ก ๊ตฌ์ฑ๋ ๋จ์ด๋ ํ๋๋ก ์ ์ง
- ๊ท์น 2) '๋ก ์ ์ด๊ฐ ํจ๊ปํ๋ ๋จ์ด๋ ๋ถ๋ฆฌ
from nltk.tokenize import word_tokenize
word_tokenize(corpus)
from nltk.tokenize import WordPunctTokenizer
WordPunctTokenizer(corpus)
from tensorflow.keras.preprocessing.text import text_to_word_sequence
text_to_word_sequence(corpus)
from nltk.tokenize import TreebankWordTokenizer
tokenizer = TreebankWordTokenizer()
tokenizer.tokenize(corpus)
2) Sentence tokenization
= Sentence segmentation
- !์ ?๋ ๋น๊ต์ ์ ํํ ๋ฌธ์ฅ ๊ตฌ๋ถ์(boundary)๊ฐ ๋์ง๋ง .๋ ๊ผญ ๊ทธ๋ ์ง๋ ์์ (192.168.56.31 / Ph.D.)
- .์ด ๋จ์ด์ ์ผ๋ถ๋ถ์ธ์ง ๋ฌธ์ฅ์ ๊ตฌ๋ถ์์ธ์ง ๋ถ๋ฅํ๋ binary classifier๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํจ
- ์คํ์์ค: NLTK, OpenNLP, CoreNLP, splitta, LingPipe ๋ฑ
from nltk.tokenize import sent_tokenize
sent_tokenize(corpus)
%pip install kss // Korean Sentence Splitter
import kss
kss.split_sentences(corpus)
Korean tokenization
- ์์ด๋ ๊ฑฐ์ ๋์ด์ฐ๊ธฐ ํ ํฐํ์ ๋จ์ด ํ ํฐํ๊ฐ ๊ฐ์
- ํ์ง๋ง ํ๊ตญ์ด๋ ๊ต์ฐฉ์ด์ด๋ฏ๋ก ๋์ด์ฐ๊ธฐ ํ ํฐํ๋ก๋ ๋ถ์กฑํจ (๊ต์ฐฉ์ด: ์กฐ์ฌ, ์ด๋ฏธ ๋ฑ์ ๋ถ์ฌ ๋ง์ ๋ง๋๋ ์ธ์ด)
- ๋ฐ๋ผ์ ํํ์ ํ ํฐํ๋ฅผ ํด์ผ ํจ (ํํ์: ๋ป์ ๊ฐ์ง ๊ฐ์ฅ ์์ ๋ง์ ๋จ์. ์๋ฆฝ ํํ์์ ์์กด ํํ์๋ก ๋๋จ.)
- ๊ฒ๋ค๊ฐ ํ๊ตญ์ด๋ ๋์ด์ฐ๊ธฐ๊ฐ ์ด๋ ต๊ณ ๋์ด์ฐ๊ธฐ ์์ด๋ ์ดํดํ๊ธฐ๊ฐ ์ฌ์ ๋์ด์ฐ๊ธฐ๊ฐ ์ ์ง์ผ์ง์ง ์์
from konlpy.tag import Okt
okt = Okt()
okt.morphs(text)
okt.pos(text)
okt.nouns(text)
from konlpy.tag import Kkma
kkma = Kkma()
kkma.morphs(text)
kkma.pos(text)
kkma.nouns(text)
Part-of-speech tagging
= ํ์ฌ ํ๊น
- ํ๊ธฐ๋ ๊ฐ์๋ ํ์ฌ์ ๋ฐ๋ผ ๋จ์ด์ ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ (์์ด: fly, ํ๊ตญ์ด: ๋ชป)
- ๋ฐ๋ผ์ ํ์ฌ ํ๊น ์ด ํ์ํ ์๋ ์์
- ์คํ์์ค: NLTK, KoNLPy
from nltk.tag import word_tokenize, pos_tag
pos_tag(word_tokenize(text))
References
'๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋ > Paper Classification' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
NLP Encoding (wikidocs) (0) | 2020.03.19 |
---|---|
NLP Cleaning and Normalization (wikidocs) (0) | 2020.03.16 |
NLP tutorial (wikidocs) (0) | 2020.03.16 |
Research paper classification systems based on TF-IDF and LDA schemes (0) | 2020.03.03 |
Text classification (wikidocs) (0) | 2020.02.27 |
๋๊ธ