์์ํ๋ฉฐ
ํ๋ถ์์์ ์งํํ๋ Topic Modeling ํ๋ก์ ํธ์ ๋ํด ์์ฑํ๋ ค๊ณ ํ๋ค.
NLP์ ๊ด์ฌ์ด ์๊ธฐ๊ธฐ ์์ํ์ฌ ๋ฐ์ดํฐ์ด๋ผ๋ฆฌํฑ์ค ์์
์ ์๊ฐํ๋๋ฐ, ์ด์ข๊ฒ๋ NLP์ ๋ํ ๊ฐ๋
๊ณผ, ์ค์ต์ ์งํํด๋ณผ ์์์๋ค. ๊ทธ ์ง์์ ๋ฐํ์ผ๋ก ์ฌ๋ฌ๊ฐ์ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋๋ฐ, ๊ทธ ์ค ํ๋์ด๋ค!
ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌ ๋จ๊ณ์ ๋ ํฌํธ๋ก ์์ฑํ์ฌ ๊ณผ์ ๋ก ์ ์ถํ ๊ฒฝํ์ด ์์ด์, ์๊ฐ์ด ์ง๋ ์ง๊ธ์๋ ์ด๋ ๊ฒ ๊ธ๋ก ๋จ๊ธธ ์ ์๊ฒ๋์๋ค. ์๋ฃ์ ๋ฌธ์ํ์ ๋ํ ์ค์์ฑ์ ๋ค์๊ธ ๊นจ๋ซ๋ ์๊ฐ์ด๋ค :)
-- ๋ณธ ํ๋ก์ ํธ๋ ํ๊ต ๊ณผ์ ๊ฒธ ํ๋ก์ ํธ๋ก ์งํํ ๋ด์ฉ์ ๋๋ค :)
1. ์ฃผ์ ์ ์
1.1 ํ๋ก์ ํธ ์ฃผ์
Quantum-dot Display ๊ธฐ์ ์ ํนํ ๋ฐ์ดํฐ์ ๋ํ LDA
1.2 ํ๋ก์ ํธ ๋ชฉํ
Quantum dot display์ ๊ดํ 794๊ฐ์ ํนํ์ Topic์ ๋น ๋ฅด๊ฒ ํ์ ํ ์์๋ Topic Modeling์ ์งํํ๊ณ ์ ํ๋ค.
ํนํ๋ฐ์ดํฐ๋ ๋๋ฌด ๋์ณ๋๊ณ , ๊ธฐ์ ์ ์ธ ์ฉ์ด๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ด Topic Modeling ์ด ์ฐ์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋๋ค!
2. ๋ถ์ ๊ณผ์
2.1 ๋ฐ์ดํฐ ์์ง
2.1.1 ํ์ฉ ๋ฐ์ดํฐ
๋ถ์ ๋ฐ์ดํฐ๋ ๋ฏธ๊ตญ ํนํ์ฒญ ํนํ DB ๋ด ์ ์ฒด ๊ธฐ๊ฐ๋์ ์ถ์, ๊ณต๊ฐ ๋ฐ ๋ฑ๋ก ๋์ด์๋ ํนํ๋ค ์ค์ ์ ์ ํ์๋ค. ๋๊ตญ๋ํ๊ต์์ ์ง์ํ๋ ํนํ ๊ฒ์ ์ฌ์ดํธ( ๋ฌด์จ ์ฌ์ดํธ์๋์ง ๊น๋จน์๋ค... ์ฐพ๋๋๋ก ์ ๋ก๋ ํ๊ฒ ์ต๋๋ค.!) ์ Quantum-dot display์ ์ ์ฌํ ์๋ฏธ๋ก ์ฐ์ด๋ ๋จ์ด๋ฅผ ์๋ <ํ1>๊ณผ ๊ฐ์ด ์ ๋ฆฌํ์ฌ ๊ฒ์์์ ์์ฑํ์๋ค.
Quantum - dot display ๊ด๋ จ ํนํ ๊ฒ์์ |
TI = ("Quantum*" or "QD") AND ("display*") or ("QLED" or "QLCD") |
<ํ 1> Quantum-dot display ํนํ ๊ฒ์์
ํนํ ๊ฒ์ ๊ฒฐ๊ณผ ์ด 794๊ฑด์ ํนํ๊ฐ ๊ฒ์๋์๊ณ , ํด๋น ํนํ์ ๋ฒํธ, ๋ช ์นญ, ์์ฝ, ์ถ์๋ฒํธ, ์ ์ฒด์ฒญ๊ตฌํญ์ ๊ธฐ์ค ๋ฑ์ csv ํํ์ ๋ฐ์ดํฐ๋ก ๋ค์ด๋ฐ์๋ค. ๋ณธ ๋ ํฌํธ์์๋ ๋ค์ด๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก LDA๋ฅผ ์ํํ๋ค. <๊ทธ๋ฆผ 2>๋ ํนํ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ ๊ฒ์ด๊ณ , <๊ทธ๋ฆผ 3>์ ๋ค์ด๋ฐ์ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ํ๋ธ ๊ฒ์ด๋ค.


2.2 LDA Topic Modeling
R studio ํ๋ก๊ทธ๋จ์ ์ด์ฉํ์ฌ 2.1์์ ์์งํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Topic Modeling์ ์ํํ์๋ค. LDA Topic Modeling์ ์ ์ฒด์ ์ธ ํ๋ก์ธ์ค๋ LDA ํ๊ฒฝ ๊ตฌ์ฑ, ๋ง๋ญ์น (Corpus) ์์ฑ, Term-doc Matrix ์์ฑ, LDA๊ณ์ฐ, LDA ๊ฒฐ๊ณผ ๊ณ์ฐ ๋์ถ ์์ผ๋ก ์งํํ์๋ค.
2.2.1 LDA ํ๊ฒฝ๊ตฌ์ฑ
R studio์์ LDA Topic Modeling์ ํ์ํ ldatuning, topicmodels, tm, slam, ida ํจํค์ง๋ฅผ ์ค์น ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ถ๋ฌ์ LDA Topic Modeling์ ์ํ ํ๊ฒฝ์ ๊ตฌ์ฑํ์๋ค. ์ดํ โquntum_dot_data.csvโํ์ผ์ ๋ถ๋ฌ์ค๊ณ โ์ ์ฒด ์ฒญ๊ตฌํญโ์ด์ ๋ํ ๋ถ์์ ์งํํ๊ธฐ ์ํด ์ด๋ฅผ target_doc์ผ๋ก ์ง์ ํ์๋ค.
# ํจํค์ง ์ค์น ๋ฐ ํธ์ถ
install.packages('ldatuning')
install.packages('topicmodels')
install.packages('tm')
install.packages('slam')
install.packages('lda')
library(ldatuning)
library(topicmodels)
library(tm)
library(slam)
library(lda)
# ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ ๋ฐ ์ ์ฒ๋ฆฌ
setwd("C:\\Users\\my\\Desktop")
lda_source<-read.csv("quantum_dot_data.csv",stringsAsFactors = FALSE, header = FALSE)
target_doc<-lda_source[,6]
2.2.2 ๋ง๋ญ์น (Corpus) ์์ฑ
tmํจํค์ง์ VectorSource ํจ์๋ฅผ ์ด์ฉํ์ฌ Corpus๋ฅผ ์์ฑํ๋ค. ์ดํ, TermDocumentMatrix ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ซ์๋ ๊ธฐํธ, ๋น ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํด์ฃผ์๋ค. ๋ํ ๋ง์ด ์ฐ์ด๋ ํต์ฌ๊ตฌ์กฐ์ธ claim, comprising, including, includes๋ฅผ stop words ๋ก ์ฒ๋ฆฌํด ์ฃผ์๋ค.
# corpus ์์ฑ
doc_vec<-VectorSource(target_doc)
corpus<-Corpus(doc_vec)
# term document matrix
tdm = TermDocumentMatrix(corpus, control = list(removeNumbers = T,
removePunctuation = T,
stemming = FALSE,
stopwords = c(stopwords('SMART'),
'comprising','including',
'includes'),
omit_empty = T))
word.count = as.array(rollup(tdm,2))
word.order = order(word.count, decreasing = T)[1:1000] ## ๋ง์ด ์ฐ์ธ ๋จ์ด๋๋ก ์ฌ๋ฆผ์ฐจ์
freq.word = word.order[1:1000]
2.2.3 Term-Doc Matrix ์์ฑ
๋ถ์๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ LDA ๋ฅผ ๊ณ์ฐํ๋๋ฐ์ ์๊ฐ์ด ๋ง์ด ์์๋๋ค. ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์์ 1000๊ฐ์ ๋จ์ด๋ง ์ฌ์ฉํ๊ฒ๋ Term-Doc Matrix๋ฅผ ์์ฑํ๋ค.
# dtm ์์ฑ
dtm = as.DocumentTermMatrix(tdm[freq.word,])
dtm.matrix<-as.matrix(dtm)
dtm
2.2.4 LDA ๊ณ์ฐ
lda ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ค๋นํ lda ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก lda ๋ถ์์ ์คํํ๋ค. ๋ถ์ ์ Gibbs Sampling์ ์ฌ์ฉํ๋ค. ํ ํฝ ๊ฐ์ K๋ 50๊ฐ๋ก ์ง์ , interation ๊ฐ์ 500, burnin๊ฐ 100, ๋ฌธ์ ๋ด ํ๋ฅ ๋ถํฌ๋ 0.01, ํ๋์ topic ์์์์ hyper parameter๋ 0.01๋ก ๊ตฌ์ฑํ์๋ค.
ldaform=dtm2ldaformat(dtm, omit_empty=T) ## dtm์ LDA ํฌ๋ฉง์ ๋ฐ์ดํฐ๋ก ๋ณํ
result.lda = lda.collapsed.gibbs.sampler(documents = ldaform$documents,
K = 50,
vocab = ldaform$vocab,
num.iterations = 500,
burnin = 100,
alpha = 0.01,
eta = 0.01)
#alpha = ๋ฌธ์๋ด์ ํ๋ฅ ๋ถํฌ / eta = ๋ฌธ์๋ด ์ฃผ์ ๋ณ ํ๋ฅ ๋ถํฌ
2.2.5 LDA ๊ณ์ฐ ๊ฒฐ๊ณผ ๋์ถ
์ฃผ์ ๋ณ ํค์๋ 20๊ฐ์, ์ฃผ์ ๋ณ ํต์ฌ ๋ฌธ์ 10๊ฐ๋ฅผ ๋์ถํด์ ๊ฐ๊ฐ์ ํ์ผ๋ก ์ ์ฅํ์๋ค.
# ๋ถ์ ๊ฒฐ๊ณผ ํ์ธ
attributes(result.lda)
dim(result.lda$topics)
result.lda$topics
document_sums <- result.lda$document_sums
# ์ฃผ์ ๋ณ ํค์๋ ๋์ถ ๋ฐ ์ ์ฅ
topic_word <- top.topic.words(result.lda$topics, num.words = 20)
write.csv(topic_word, "topic_word.csv")
# ์ฃผ์ ๋ณ ํต์ฌ ๋ฌธ์ ๋์ถ ๋ฐ ์ ์ฅ
num.documents = 10
doc_topic <- top.topic.documents(document_sums, num.documents, alpha = 0.1)
write.csv(doc_topic, "doc_topic.csv")
3. ๊ฒฐ๊ณผ ๋ฐ ์์ฌ์
3.1 ๊ฒฐ๊ณผ
๋์ถ๋ ๊ฒฐ๊ณผ์ ์ผ๋ถ๋ฅผ ๋ฐ์ทํ์ฌ ์ฃผ์ ๋ณ ์์ ํค์๋ ๋ฐ ๋ฌธ์์ ์ผ๋ถ๋ฅผ ํด์ํด ๋ณด์๋ค. ๋์ถ๋ ๊ฒฐ๊ณผ์ ๋ ๊ฐ์ ํ์ผ์ ์๋ <๊ทธ๋ฆผ 4> ์ <๊ทธ๋ฆผ 5> ์ ์ฒจ๋ถํ์๋ค.


3.2 ํด์
์๋ <ํ 2> ๋ฅผ ๋ณด๊ณ ๋ค์๊ณผ ๊ฐ์ด ํด์ํ ์ ์์๋ค. ์์์ (Quantum dot) display์ pixel structure์ ๊ตฌ์ฑ(comprises)์ ๋ํ ํนํ๋ผ๋ ๊ฒ์ ์ ์ถํด ๋ณผ ์ ์๋ค. pixel์ด ๊ฐ์(respective) ๋ค๋ฅธ diode๋ก configured ๋์ด ์๊ณ , pixel์ด ๊ฒน๊ฒน์ด ์์ธ layer ๊ตฌ์กฐ์์ ์ ์ ์๋ค. ์ด ์ฃผ์ ๋ฅผ ๊ฐ๊ณ ์๋ ํนํ๋ 303๋ฒ ํนํ, 656๋ฒ ํนํ, 420๋ฒ ํนํ, 265๋ฒ ํนํ ๋ฑ์ด ์์ผ๋ฉฐ, <ํ 3>์ ์ด ์ฃผ์ ๋ฅผ ๊ฐ์ง ํนํ ์์ 10๊ฐ๋ฅผ ํํํด ๋์๋ค.
Topic 4 | pixel | plurality | computational | layers | type |
display | diode | defined | configured | polygon | |
claim | pixels | structure | system | portion | |
comprise | respective | regions | coupled | method |
<ํ 2> Topic 4์ ์ฃผ์ ๋ณ ์์ ํค์๋ 20๊ฐ
Topic 4 | 303 | 656 | 420 | 265 | 418 |
271 | 434 | 597 | 261 | 612 |
<ํ 3> Topic 4์ ์ฃผ์ ๋ณ ํต์ฌ ์์ ๋ฌธ์ 10๊ฐ
3.3 ์์ฌ์
ํนํ ๋ฐ์ดํฐ์ LDA๋ฅผ ์ ์ฉํจ์ผ๋ก์จ, ์๋ง์ ํนํ ์ค ์ฌ์ฉ์๊ฐ ๊ด์ฌ์๋ ํน์ ํนํ ๋ฌธ์๋ฅผ ๊ตฐ์งํ ํ ์ ์๋ค. ์ด๋ฅผ ํตํด ํน์ ์ฃผ์ ์ ๋ํ ํํฉ, ๋ฌธ์ ์ , ํด๊ฒฐ์ฑ ์ ํ์ ํ ์ ์๋ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์๋ค. ๋ ํน์ ์ฃผ์ ๋ฐ ๊ด๋ จ์ฑ ๋์ ๋จ์ด๋ค์ ๋ถ์ํ๋ฉด์ ํด๋น ๊ธฐ์ ์ ํํฉ ํ์ , ์ฐ๊ตฌ ๋ํฅ์ ํ์ ํ ์ ์์ ๊ฒ์ด๋ค.
4. ๊ฒฐ๋ก
TV ๋ฐ ๊ฐ์ ์ ํ ์์ฅ์ ์ฐจ์ธ๋ ๊ธฐ์ ๋ก ์ฃผ๋ชฉ๋ฐ๊ณ ์๋ quantum-dot display ๊ธฐ์ ์ ๋์ ์ฑ์ฅ๋ฅ ์ ๋ณด์ด๊ณ ์๋ค. ๋ฐ๋ผ์ quantum-dot display์ ๊ดํ ํนํ ๋ฐ์ดํฐ๋ฅผ LDA๋ก ๋ถ์ํ์ฌ topic๋ณ๋ก clustering ํ์๋ค. ๋ํ ํด๋น topic์ ๋ํ ํต์ฌ ๋ฌธ์๋ ๋์ถํ์๋ค. ์ด๋ฅผ ํตํด quantum-dot display์ ๋ํ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณผ ์ ์์๋ค. ํนํ ๋ฐ์ดํฐ์ ๋ํ LDA๋ฅผ ์ํํจ์ผ๋ก์จ ํด๋น ์ฃผ์ ์ ๋ํ ์ฐ๊ตฌ๋ํฅ, ํ์ฌ ํํฉ์ ํ์ ํ๊ณ , ํต์ฌ ์ฃผ์ ๋ณ๋ก ๋ฌถ์ด์ ์ดํด๋ณผ ์ ์์์ผ๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ํด๋น ์ฃผ์ ์ ๊ดํ ์ฐ๊ตฌ ๋ฐฉํฅ๊น์ง ์ค๊ณํ ์ ์์ ๊ฒ์ด๋ค.
๋ง์น๋ฉฐ
์ฒ์์ผ๋ก NLP์ ๊ด์ฌ์ ๊ฐ๊ฒ๋ ๊ณ๊ธฐ์๋ค. ๋ด์ฉ์ ๋ชจ๋ ํ์ด๋ณด์ง ์๊ณ , ๋ด์ฉ์ ์ ์ถํ ์ ์๋ค๋ ๊ฒ์ ๊ต์ฅํ ํ๋ช ์ผ๋ก ๋ค๊ฐ์๋ค. NLP๋ฅผ ๋ง์คํฐํ๋ ๊ทธ๋ ๊น์ง......... ๊ธฐ์ด์ ์ธ ์ง์๋ถํฐ ์๊ณ ๊ณต๋ถํด์ผ์ง