์๋ฏธ ์ฐ๊ฒฐ๋ง ๋ถ์
(Semantic Network Analysis)
# 1. ์๋ฏธ ์ฐ๊ฒฐ๋ง ๋ถ์(Semantic Network Analysis)
- ์ฌํ ์ฐ๊ฒฐ๋ง ๋ถ์(Social Network Analysis)๋ ๋ถ์ ๋์ ๋ฐ ๋ถ์ ๋์๋ค๊ฐ์ ๊ด๊ณ๋ฅผ
์ฐ๊ฒฐ๋ง ๊ตฌ์กฐ๋ก ํํํ๊ณ ์ด๋ฅผ ๊ณ๋์ ์ผ๋ก ์ ์ํ๋ ๋ถ์ ๊ธฐ๋ฒ
- ์ฌํ ์ฐ๊ฒฐ๋ง ๋ถ์์ ์ฌ๋, ์ฅ์, ๋ฌผํ ๋ฑ์ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ถ์ํ๋๋ฐ ํจ๊ณผ์ ์ด๋ฉฐ, ์ฃผ๋ก ์น๊ตฌ ๊ด๊ณ, ์ ๋ ฅ ๊ณต๊ธ ๋ฑ์ ๋ถ์ํ๋๋ฐ ์ฌ์ฉ
- ์ฌํ ์ฐ๊ฒฐ๋ง ๋ถ์ ๊ธฐ๋ฒ์ ํ
์คํธ ๋ด ๋จ์ด์ ๊ด๊ณ์ ์ ์ฉํ ๊ฒ์ด ๋ฐ๋ก ์๋ฏธ ์ฐ๊ฒฐ๋ง ๋ถ์
- ์ ๋ฏธ ์ฐ๊ฒฐ๋ง ๋ถ์์์๋ ์ผ์ ํ ๋ฒ์ ๋ด์์ ์ดํ๊ฐ ๋์์ ๋ฑ์ฅํ๋ฉด ์๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ, ์ด ์ฐ๊ฒฐ ๊ด๊ณ๋ค์ ๋ถ์
from nltk import word_tokenize, bigrams
sentence = 'I love data science and deep learning'
tokens = word_tokenize(sentence)
bgram = bigrams(tokens)
bgram_list = [x for x in bgram]
print(bgram_list)
[('I', 'love'), ('love', 'data'), ('data', 'science'), ('science', 'and'), ('and', 'deep'), ('deep', 'learning')]
from nltk.util import ngrams
tgram = ngrams(tokens, 3)
qgram = ngrams(tokens, 4)
tgram_list = [x for x in tgram]
qgram_list = [x for x in qgram]
print(tgram_list)
print(qgram_list)
[('I', 'love', 'data'), ('love', 'data', 'science'), ('data', 'science', 'and'), ('science', 'and', 'deep'), ('and', 'deep', 'learning')]
[('I', 'love', 'data', 'science'), ('love', 'data', 'science', 'and'), ('data', 'science', 'and', 'deep'), ('science', 'and', 'deep', 'learning')]
# ์ดํ ๋์ ์ถํ ๋น๋์ ๊ณ์ํ
- ๋์ ์ถํ(Co-occurrence)๋ ๋ ๊ฐ ์ด์์ ์ดํ๊ฐ ์ผ์ ํ ๋ฒ์๋ ๊ฑฐ๋ฆฌ ๋ด์์ ํจ๊ป ์ถํํ๋ ๊ฒ์ ์๋ฏธ
- ๋จ์ด๊ฐ์ ๋์ ์ถํ ๊ด๊ณ๋ฅผ ๋ถ์ํ๋ฉด ๋ฌธ์๋ ๋ฌธ์ฅ์ผ๋ก๋ถํฐ ๋ ๋จ์ด๊ฐ ์ ์ฌํ ์๋ฏธ๋ฅผ ๊ฐ์ก๋์ง ๋ฑ์ ์ถ์ํ๋ ์ ๋ณด๋ฅผ ์ป์ ์ ์์
- ๋์ ์ถํ ๋น๋๋ Window ๋ผ๋ ์ง์ ๋ฒ์ ๋ด์์ ๋์ ๋ฑ์ฅํ ์ดํ๋ฅผ ํ๋ฅ ๋ฑ์ผ๋ก ๊ณ์ํ ๊ฐ๋ฅ
- ์๋ฅผ ๋ค์ด, ๋จ์ด ๋ค ์๋ชป๋ ๋จ์ด๊ฐ ์จ๋ค๋ฉด, ์ด๋ฅผ ๋์ ์ถํ ๋น๋๊ฐ ๋์ ๋จ์ด๋ก ๊ต์ ๊ฐ๋ฅ
- ์ดํ ๋์ ์ถํ ๋น๋ ํ๋ ฌ์ ํ๋ํ๋ ์ธก์ ํ ์๋ ์์ง๋ง, ๋ฐ์ด๊ทธ๋จ ๊ฐ์๋ฅผ ์ ๋ฆฌํ๋ฉด ํธ๋ฆฌํ๊ฒ ๋ง๋ค์ด ๋ณผ ์ ์์
- nltk ์์ ์ ๊ณตํ๋ ConditionalFreqDist ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ฌธ๋งฅ๋ณ ๋จ์ด ๋น๋๋ฅผ ์ฝ๊ฒ ์ธก์ ๊ฐ๋ฅ
๋
ผ๋ฌธ ์ ๋ชฉ : [NLP] Stanford POS Tagger vs. NLTK ์ฑ๋ฅ ๋น๊ต, ๋
ผ๋ฌธ ; Reference : WIPS, ๊ด์ด๋ ์ต๋จ์ฐ
โ ํ ์คํธ ์ํฉ
- ํ ์คํธ ์ : ti 40๊ฐ, ab 40๊ฐ
- ์๋ณธ ๋จ์ด์ : ํ๊ท 122 ๊ฐ
- ์๋ณธ ์ฌ์ด์ฆ : ํ๊ท 800 byte
โ MOP ์ฒ๋ฆฌ
- ์ฒ๋ฆฌ ์์ : tokenize -> POS Tagging -> Lemmatize
- ์ถ๊ฐ ํจ์ : nvarFilter
โ ๋ถ์ ๊ฒฐ๊ณผ
- ์ถ์ถ ๋จ์ด์ : ํ๊ท 46๊ฐ
- ๋ถ์ ์๊ฐ : NLTK(0.09), STFD(1.75)
โ ๋น๊ต ๊ฒฐ๊ณผ
- ๋ถ์์๋ : NLTK >>>> STFD (170๋ฐฐ์ ์์น์ ์ฐจ์ด)
- ์ถ์ถ ๋จ์ด์ : NLTK > STFD (1๋ฌธ์๋น ํ๊ท 0.5๊ฐ ์ฐจ์ด. ๋ฌธ์ ๊ธธ์ด๊ฐ ๋์ด๋ ์๋ก ๋์ด๋จ)
- ํ์ฌ ํ๊น
: NLTK <= STFD (STFD์ ํ์ฌ์ ๋ณด๊ฐ ์ข ๋ ์ ํํด ๋ณด์ด๋ ๋ฌธ์๋น 1~2๊ฐ ์ฐจ์ด)
- ๊ธฐํ ์ฐจ์ด์ : 'ti'์์๋ ๋ถ์ ๊ฒฐ๊ณผ๊ฐ ์ฝ 99% ์ผ์น(ํ๊ท 1๊ฐ์ ๋จ์ด์ ๋ํด์ ํ์ฌ๊ฐ ํ๋ฆฐ ๊ฒฝ์ฐ๊ฐ ์กด์ฌ)
'ab'์์๋ ๋์ผํ ๋จ์ด์ ๋ํด์ ํ์ฌ๊ฐ ๋ค๋ฅด๊ฒ ์ธก์ ๋๊ฑฐ๋ ํํ์ ์ถํ์ฌ๋ถ ์ฐจ์ด ๋ฐ์(ํ๊ท 3.5๊ฐ)
STFD์์๋ ')','(' ๋ฑ์ ๋ฌธ์๊ฐ ์ถ์ถ๋์ ๋น๊ต์ ์ ์ธํจ
๋ฌธ์ฅ์ด ๊ธธ์ด์ง์๋ก ํํ์๋ณ ํ์ฌ ์ ๋ณด ํ๋จ์ด ํ๋ฆฐ ๊ฒฝ์ฐ๊ฐ ๋ฐ์
![](https://blog.kakaocdn.net/dn/cMDAeH/btrmYlim84Z/IihE4XDE928W2Fx0tHVYyk/img.png)
* 1๋ฌธ์๋น ํ๊ท 122๋จ์ด, 800byte ๊ธฐ์ค
-- ํ์ด :
1. ๋๋ค ํ์ต์ ์ฌ์ฉํ ์์ค ๋ฐ์ดํฐ๋ wsj penn treebank๋ก ๊ฐ์. ( wsj : wall street journal )
2. ๊ทธ๋ฌ๋ ๋ด๋ถ์ ์ผ๋ก, nltk๋ ๊ฐ์ค์น ํ๊ท ๋ฐฉ์, stanford๋ maximum entropy ๋ฐฉ์์ ์ฌ์ฉํด ํ์ฌ ์ ์
3. wsj์์ ์ ๋ต์
์ ์ถ์ถํด ์ ํ๋๋ฅผ ๋น๊ตํ๋ฉด, ๋๋ค ์ ํ๋๋ 97%๋ก ๋น์ท
4. stanford๊ฐ ๋ ๋๋ฆฐ ์ด์ ๋, python์์ java ํ๋ก๊ทธ๋จ์ ๋๋ ค์ผ ํ๊ธฐ ๋๋ฌธ.
-- ๊ฒฐ๋ก :
์๋๋ 170๋ฐฐ๋ ๋น ๋ฅด๊ณ , ์ ํ๋๋ํ ์ฐ์ํ nltk๋ฅผ ์ฐ๋ ๊ฒ์ด ์ข๋ค
ํค์๋ :
nlp
mop
stanford
core
nlp
core
nltk
์คํ ํฌ๋
maxenttagger
stanford
pos
tagger
corenlp
nltk
tag
stanford ์์ฐ์ด ์ฒ๋ฆฌ ํ์ฌ ํํ์ ๋ถ์ ์์ฐ์ด์ฒ๋ฆฌ ํํ์๋ถ์
'๐๏ธ์ํํธ์จ์ด > ๐ปpython' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฅ๋ฌ๋ ๊ฐ์ฑ๋ถ์ ํด๋ณด๊ธฐ(๋น์ง๋ํ์ต) (0) | 2021.12.07 |
---|---|
ํ์ด์ฌ ์ ๊ทํํ์ re.sub (0) | 2021.12.07 |
python matplotlib ํ๊ธ ๊นจ์ง (0) | 2021.12.05 |
ํ๊ตญ์ด NLP ์ํํ๊ธฐ์ ๊ณผ์ (0) | 2021.12.04 |
If using all scalar values, you must pass an index ์๋ฌ, ํด๊ฒฐ (0) | 2021.12.04 |