The process of data analysis for text data
Tokenize → POS Tagging → Stopwords ์ ๊ฑฐ →๋จ์ด์ฌ์ ์์ฑ → ์ฌ์ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์๊ฐํ → ๋จธ์ ๋ฌ๋/๋ฅ๋ฌ๋ ๋ชจ๋ธ ์ ์ฉ
NLTK
NLTK๋ Natural Language Toolkit์ ์ฝ์๋ก, ์์ฐ์ด ์ฒ๋ฆฌ ๋ฐ ๋ฌธ์ ๋ถ์์ฉ ํ์ด์ฌ ํจํค์ง๋ค.
(์์ฐ์ด๋ ์ผ์์ ์ธ ์ํ์์ ์ฌ์ฉํ๋ ์ธ์ด๋ฅผ ๋งํ๋ค)
๋ถ์์ ์ํด์๋ ๊ธด ๋ฌธ์์ด์ ์์ ๋จ์๋ก ๋๋ ์ผ ํ๋๋ฐ, ์ด ๋จ์๋ฅผ token(ํ ํฐ)์ด๋ผ ํ๊ณ
๊ทธ ์์ ์ tokenizing(ํ ํฐ ์์ฑ)์ด๋ผ๊ณ ํ๋ค.
word_tokenize() ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ฅ์ ํ ํฐํํ ์ ์๋ค.
ํ์ฌ(POS, part-of-speech)
pos_tag() ๋ฅผ ์ฌ์ฉํ๋ฉด ํ ํฐํํ ๋ฌธ์ฅ์ ๋์์ผ๋ก ๊ฐ๊ฐ์ ํ์ฌ๋ฅผ ์ ์ ์๋ค.
- N : Noun (๋ช ์ฌ)
- V : Verb (๋์ฌ)
- J/A : Adjective (ํ์ฉ์ฌ)
Stopwords(๋ถ์ฉ์ด) ์ ๊ฑฐ
nltk ๋ชจ๋์์ stopwords ๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์๋ค.
from nltk.corpus import stopwords
stopWords = stopwords.words('english')
์ง์ ์ธ์ด๋ stopwords.fileids() ๋ฅผ ํตํด ์ ์ ์๋ค. (ํ๊ธ์ ์๋ค)
๋ถ์์ ํ๋ฉฐ ์ ๊ฑฐ๋์ด์ผ ํ๋ ๋ถ์ฉ์ด๋ค์ ๊ฐ์ ธ์จ ๋ถ์ฉ์ด ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค.
Lemmatization(ํ์ ์ด ์ถ์ถ)
Lemma๋ ํ๊ธ๋ก 'ํ์ ์ด' ๋๋ '๊ธฐ๋ณธ ์ฌ์ ํ ๋จ์ด' ๋ผ๊ณ ํ๋ค.
ํ์ ์ด ์ถ์ถ์ ์ฝํผ์ค์ ์๋ ๋จ์ด์ ๊ฐ์๋ฅผ ์ค์ผ ์ ์๋ ๊ธฐ๋ฒ์ผ๋ก์จ ์ค์ํ๋ค.
WordNetLemmatizer ๊ฐ์ฒด๋ฅผ ์์ฑํด ์ฌ์ฉํ ์ ์๊ณ , pos ์ ๋ณด๋ฅผ ์ถ๊ฐ๋ก ์ ๋ ฅํ๋ฉด ๋ ์ ํํ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
์ ๊ทํํ์
์ ๊ทํํ์(Regular expression)์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ํน์ ํจํด์ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์ธํ๋ ์ฉ๋๋ก ์ฐ์ธ๋ค.
http://pythonstudy.xyz/python/article/401-%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-Regex
ํ์ํ ๋ ํจํด๋ค์ ์ฐพ์๊ฐ๋ฉฐ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค!
Text Similarity Analysis
TF-IDF
TF-IDF(Term Frequency - Inverse Document Frequency)๋
ํน์ ๋จ์ด๊ฐ ๋ฌธ์์์ ์ด๋ค ์ค์๋๋ฅผ ๊ฐ์ง๋์ง๋ฅผ ๋ํ๋ด๋ ์งํ๋ค.
๋ง์ ๋ฌธ์์ ๊ณตํต์ ์ผ๋ก ๋ค์ด์๋ ๋จ์ด์ ๊ฒฝ์ฐ
๋ฌธ์ ๊ตฌ๋ณ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋ค๊ณ ๋ณด์ ๊ฐ์ค์น๋ฅผ ์ถ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
TF-IDF ๊ฐ์ ๋จ์ด๋ง๋ค ๊ณ์ฐ๋๋ค.
scikit-learn์์ TFIDF Vectorizer ๋ฅผ ์ ๊ณตํ๋ค.
from sklearn.feature_extraction.text import TfidfVectorizer
Cosine similarity
์ฝ์ฌ์ธ ์ ์ฌ๋๋ ๊ฑฐ๋ฆฌ ๊ณ์ฐ ๋ฐฉ๋ฒ ์ค ํ๋๋ค.
๋ ๋ฒกํฐ ์ฌ์ด ๊ฐ๋์ ์ฝ์ฌ์ธ ๊ฐ์ ์ด์ฉํด ๋ ๋ฒกํฐ์ ์ ์ฌํ ์ ๋๋ฅผ ํ์ ํ๋ค.
๊ณ์ฐ๋ ๊ฐ์ 0์์ 1์ฌ์ด์ด๊ณ , 1์ ๊ฐ๊น์ธ์๋ก ์ ์ฌํ ๊ฒ์ด๋ค.
from sklearn.metrics.pairwise import cosine_similarity
์ฌ์ดํท๋ฐ์์ cosine_similarity๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์๋ค.
'TIL๐ฅ > ๋ฉ์์ด์ฌ์์ฒ๋ผ_AI School 5๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 16 (0) | 2022.03.29 |
---|---|
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 15 (0) | 2022.03.28 |
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 11 (0) | 2022.03.24 |
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 10 (0) | 2022.03.23 |
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 9 (0) | 2022.03.22 |
๋๊ธ