ํ๊ตญ์ด ํ ํฝ๋ชจ๋ธ๋ง(Topic Modeling)์ ์ํ python ์ฝ๋์ ๋๋ค. ๋ชจ๋ธ๋ง์ ์ํด Gensim ์, ํ๊ตญ์ด ํ ์คํธ ์ฒ๋ฆฌ๋ฅผ ์ํด knolpy ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
-
ํ ์คํธ ์ ์ฒ๋ฆฌ
preprocessing.py- knolpy์ Okt(Open-Korean-text) ๊ธฐ๋ฐ ๋ช ์ฌํ (์ปค์คํ ์ฌ์ ์ถ๊ฐ ๊ฐ๋ฅ)
- ์ฌ์ ๊ธฐ๋ฐ ๋ถ์ฉ์ด ์ ๊ฑฐ (๋ถ์ฉ์ด ์ฌ์ ์
stopwords/stopwordlist.txt์ 1์ค์ 1๋จ์ด์ฉ ์์ฑ) - 1๊ธ์ ๋จ์ด ์ ๊ฑฐ
- ์ ๊ฒ ๋ฑ์ฅํ ๋จ์ด ์ ๊ฑฐ
-
๋น๋์ ๋ถ์
frequency_analysis.py- ํ ํฐ(๋จ์ด)์ ๋น๋์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ์ -> csv๋ก ์ ์ฅ
- ์๋ํด๋ผ์ฐ๋ -> png๋ก ์ ์ฅ
-
ํ ํฝ ๊ฐฏ์ k ์ ํ๊ธฐ
lda_explore_topic_number.py- ํ ํฝ ๊ฐฏ์ ๋ฒ์๋ฅผ ์ง์ , ๊ฐ ๊ฐฏ์๋ณ lda modeling์ ์ํ
- ๊ฐ ๋ชจ๋ธ์ ํผ๋๋(perplexity)์ ์์ง๋(coherence)๋ฅผ ๊ณ์ฐ
- ๊ฒฐ๊ณผ๊ฐ์ csv๋ก, ์ด๋ฅผ ์๊ฐํํ ๊ทธ๋ํ๋ฅผ png๋ก ์ ์ฅ
-
LDA
lda.py- ์ ์ฒ๋ฆฌ๋ ๋ถ์ ๋์ ๋ฌธ์์ ๋ง๋ญ์น(corpus)์ ๋์ ๋๋ฆฌ(dictionary)์ ์์ฑ, ์ ์ฅ
- ์ง์ ๋ ํ ํฝ ๊ฐฏ์์ LDA ๋ชจ๋ธ ์์ฑ
- ๊ฐ ๋ฌธ์์ ํ ํฝ ๋ถํฌ์ ์ -> csv๋ก ์ ์ฅ
- ์์ฑ๋ LDA ๋ชจ๋ธ์ ์๊ฐํ -> html๋ก ์ ์ฅ
-
์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ฅธ ํ ํฝ ๋ ผ์ ์ถ์ธ๋ฅผ ํ์ ํ๊ธฐ ์ํ ํ๊ท๋ถ์ ๊ธฐ๋ฐ ์๊ณ์ด ๋ถ์
lda_hot_and_cold.py- ๊ฐ ๋ฌธ์์ ํ ํฝ ๋ณ ฮธ ๊ฐ ๊ณ์ฐ
- y(ฮธ) = ax(time) + b ์ ์ ํ ํ๊ท๋ถ์
- Hot & Cold ํ ํฝ ์ ์
-
๊ธฐํ ๊ธฐ๋ฅ๋ค...
- okt ์ฌ์ ์ ์ปค์คํ
์ฌ์ (๋ช
์ฌ, ์คํ์) ์ถ๊ฐ
custom_okt/okt_add_custom_dict.py
- okt ์ฌ์ ์ ์ปค์คํ
์ฌ์ (๋ช
์ฌ, ์คํ์) ์ถ๊ฐ
- ์ฝ๋๋ฅผ ํ ์คํธํ๋ ๋ฒ์ ์
python == 3.10.9gensim == 4.3.0knolpy == 0.6.0pandas == 1.5.2pyldavis == 3.3.1statsmodels == 0.13.5wordcloud == 1.9.3
- knolpy ์ฌ์ฉ์ ์ํด์๋ java๊ฐ ํ์ํ๋, ์ต์ ๋ฒ์ ์ java์์ ์๋์ด ์๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- ๋งฅ์ ๊ฒฝ์ฐ : zulu JDK 17
- https://www.azul.com/downloads/?version=java-17-lts&os=macos&architecture=arm-64-bit&package=jdk
- M1 pro์์ ๋์ ํ์ธํจ
- ์๋์ฐ์ ๊ฒฝ์ฐ : JDK 17 - java version "17.0.4.1" 2022-08-18 LTS
- https://www.oracle.com/java/technologies/downloads/#java17
- Win 10์์ ๋์ ํ์ธํจ
- ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ๊ณ , ์ฝ๋๋ฅผ ์คํ์ํฌ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ฑํฉ๋๋ค(์๋จ ์คํํ๊ฒฝ ์ฐธ์กฐ)
- raw ๋ฐ์ดํฐ์ ์ ๋ ฅ โ ์์ ํ์ผ(.xlsx)
- ์๋จ์
_setting()์์ ์ธ๋ถ ์ค์ ์ ์กฐ์ ํ ์ ์์ - ๊ฒฐ๊ณผ๋ฌผ์ด ์์ฑ๋ ํด๋๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ฌ์ผ ํจ