[텍스트 분석] NMF
전처리는 [토픽 모델링을 위한 전처리](/course/text-mining/토픽 모델링을 위한 전처리)를 참조
SVD로 스크리 플롯
from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(n_components=100, random_state=1234)
svd.fit(dtm)
스크리 플롯
import matplotlib.pyplot as plt
plt.plot(svd.explained_variance_)
[<matplotlib.lines.Line2D at 0x182beae9630>]
NMF
from sklearn.decomposition import NMF
NUM_TOPICS = 15
nmf = NMF(n_components=NUM_TOPICS, max_iter=500)
doc_emb = nmf.fit_transform(dtm)
단어 임베딩
word_emb = nmf.components_.T
words = cv.get_feature_names_out().tolist()
i = words.index('모발')
plt.plot(word_emb[i])
[<matplotlib.lines.Line2D at 0x182c00e8a30>]
코사인 유사도
from sklearn.metrics.pairwise import cosine_similarity
sim = cosine_similarity(word_emb)
import numpy as np
s = np.argsort(sim[i])
related = s[-2:-12:-1]
for j in related:
print(words[j])
손상
염색
염모제
최소
윤기
트리트먼트
자극
산
피
감소
시각화
다차원 척도법
indices = []
target = ['모발', '손상', '두피', '모공',
'용기', '내용물']
for w in target:
i = words.index(w)
indices.append(i)
print(w, i)
dist = 1 - sim[indices, ][:, indices]
from sklearn.manifold import MDS
mds = MDS(dissimilarity='precomputed', random_state=1234)
pos = mds.fit_transform(dist)
모발 80
손상 159
두피 62
모공 78
용기 206
내용물 47
C:\Users\eupho\anaconda3\lib\site-packages\sklearn\manifold\_mds.py:299: FutureWarning: The default value of `normalized_stress` will change to `'auto'` in version 1.4. To suppress this warning, manually set the value of `normalized_stress`.
warnings.warn(
한글 글꼴 설정
import matplotlib
matplotlib.rc('font', family='Malgun Gothic')
matplotlib.rc('axes', unicode_minus=False) # 맑은 고딕에는 유니코드 마이너스 글꼴이 없음
plot에서 글자가 겹치지 않도록 조정해주는 adjustText
!pip install adjusttext
from adjustText import adjust_text
plt.plot(pos[:, 0], pos[:, 1], '.')
texts = [plt.text(pos[i, 0], pos[i, 1], w) for i, w in enumerate(target)]
adjust_text(texts)
4
토픽별 관련 단어 보기
for t in range(NUM_TOPICS):
print(t)
topic_words_idx = np.argsort(word_emb[:, t])
for j in topic_words_idx[-1:-11:-1]:
print(words[j])
0
샴푸
통
발명
부분
...
문서별 토픽 보기
0번 문서
doc_id = 0
df.iloc[doc_id]
status 등록
ko_title 개운죽 잎 및 줄기 추출물을 함유하는 컨디셔닝 샴푸 조성물 및 이를 이용한 컨디셔닝...
en_title Conditioning shampoo composition containing le...
abstract 본 발명은 개운죽 잎 및 줄기 추출물을 함유하여 모발의 윤기와 부드러움의 지속력을 ...
Name: 0, dtype: object
0번 문서 토픽 보기
plt.plot(doc_emb[doc_id])
[<matplotlib.lines.Line2D at 0x182c0000e50>]
0번 문서에서 가장 강한 토픽
topic_id = np.argmax(doc_emb[doc_id])
topic_id
7
해당 토픽의 문서 보기
topic_docs_idx = np.argsort(doc_emb[:,topic_id])[-1:-11:-1]
df.iloc[topic_docs_idx]
status | ko_title | en_title | abstract | |
---|---|---|---|---|
96 | 등록 | 어성초 쿨링 스피큘 샴푸 조성물 | Houttuynia cordata Cooling Spicule Shampoo Com... | 본 발명은 카르본산염형의 아니온성 계면활성제 5 내지 10 중량%, 양성 계면활성제... |
288 | 등록 | 황칠나무 발효추출물을 함유한 모발용 화장료 조성물 | Hair cosmetic composition containing an extrac... | 본 발명은 모발용 화장료 조성물에 관련되며, 그 조성물에 있어서 (A) 황칠나무 발... |
133 | 등록 | 천연 추출물이 함유된 기능성 샴푸 조성물 제조방법 | Hair shampoo composition including natural ext... | 본 발명은 집중 한방추출물을 복합적으로 적용하여 두피와 모발의 건강을 유지함은 물론... |
1 | 공개 | 탈모 케어 헤어 샴푸 조성물 | A SHAMPOO COMPOSITION FOR CARING HAIR LOSS | 본 발명은 탈모 케어 헤어 샴푸 조성물에 관한 것으로, 보다 상세하게는 소리쟁이 추... |
25 | 등록 | 발효 홍삼을 유효성분으로 함유하는 발모촉진용 두피 케어 샴푸 조성물 제조 방법 및 ... | The manufacturing method of shampoo compositio... | 본 발명은 소리쟁이를 함유한 지루성두피염 및 탈모완화용 샴푸 제조방법에 관한 것으로... |
107 | 등록 | 황련추출물, 박하추출물 및 사해미네랄을 함유하는 비듬방지용 샴푸 조성물 | The Dandruff Preventing Hair Cleaner Compositi... | 본 발명은 자생 식물 추출물과 천연 한약재 추출물을 주요 유효 성분으로 하여 비듬을... |
111 | 등록 | 탈모방지 및 발모 촉진용 샴푸 | A shampoo for promoting a growith of a hair an... | 본 발명은 자생 식물 추출물과 천연 한약재 추출물을 주요 유효 성분으로 하여 비듬을... |
278 | 등록 | 손상모 재생 및 모발 보호 기능이 우수한 헤어 케어 트리트먼트용 조성물 | Composition for hair care treatment | 본 발명은 헤어 케어 트리트먼트용 용액 자체로 사용되거나, 샴푸, 염색제, 모발 케... |
161 | 공개 | 천연 산화질소가 함유된 탈모방지 및 발모촉진용 샴푸 | Shampoo Composition for Promoting Restoring Ha... | 본 발명은 홍삼추출물을 포함한 애완동물용 샴푸의 조성물을 이용하여 애완동물의 피부와... |
385 | 등록 | 허브추출물 및 영양캡슐을 포함하는 두피 및 모발의 보호 및 세정 조성물 | Scalp and hair protecting and cleansing compos... | 본 발명은 허브추출물 및 영양캡슐을 포함하는 두피 및 모발의 보호 및 세정 조성물에... |
토픽 패턴이 가장 비슷한 문서 찾기
sims = cosine_similarity(doc_emb[[doc_id]], doc_emb).flatten()
sim_idx = np.argsort(sims)[-1:-11:-1]
df.iloc[sim_idx]
status | ko_title | en_title | abstract | |
---|---|---|---|---|
0 | 등록 | 개운죽 잎 및 줄기 추출물을 함유하는 컨디셔닝 샴푸 조성물 및 이를 이용한 컨디셔닝... | Conditioning shampoo composition containing le... | 본 발명은 개운죽 잎 및 줄기 추출물을 함유하여 모발의 윤기와 부드러움의 지속력을 ... |
135 | 등록 | 컨디셔닝 샴푸 조성물 | CONDITIONING SAMPOO COMPOSITION | 본 발명은 모발을 청결하고 건강하게 관리할 수 있음은 물론, 모발 주변의 피부에 발... |
300 | 등록 | 홍삼 추출물 함유 모발용 조성물 및 그 제조방법 | Hair Composition Containing Red Ginseng Extrac... | 본 발명은 유효성분으로, 홍삼 추출물; 및 상백피 추출물 및 황금 추출물로 구성된 ... |
224 | 등록 | 막걸리 발효물을 포함하는 샴푸 조성물 및 이의 제조방법 | SHAMPOO COMPOSITION COMPRISING MAKGEOLLI FERME... | 본 명세서에는 막걸리 발효물을 포함하는 샴푸 조성물 및 이의 제조방법이 개시된다. ... |
54 | 공개 | 안마겸용 기능성 샴푸대 | Function Shampoo Chair | 하르가이(Urtica laetevirens Maxim) 추출물, 어성초(Houttu... |
198 | 등록 | 탈모 방지 및 모발 개선 기능을 갖는 샴푸 조성물 | Shampoo composition for preventing hair loss a... | 본 발명은, 약용식물워터를 포함하는 샴푸 조성물에 관한 것으로, 상기 약용식물워터는... |
256 | 등록 | 와송을 이용한 아토피성 피부염 증상 개선용 화장료 조성물 | Cosmetic Composition for Improving Atopic Derm... | 본 발명은 와송을 이용한 화장료 조성물 및 이를 이용한 비누의 제조방법에 관한 것으... |
288 | 등록 | 황칠나무 발효추출물을 함유한 모발용 화장료 조성물 | Hair cosmetic composition containing an extrac... | 본 발명은 모발용 화장료 조성물에 관련되며, 그 조성물에 있어서 (A) 황칠나무 발... |
124 | 등록 | 청국장 샴푸 및 그 제조방법 | Shampoo with Fermented Soybean and Process of ... | 본 발명은 수용성 프로폴리스 발효 추출물, 적하수오 발효 추출물, 측백나무 발효 추... |
260 | 등록 | 암에 대한 방사선 치료 증진용 조성물 | A composition for enhancing the radiotherapy o... | 본 발명은 샴푸진저(Zingiber zerumbet)의 조추출물 또는 그 조추출물의... |
유사도 보기
sims[sim_idx]
array([1. , 0.94207604, 0.93535827, 0.93282792, 0.90077393,
0.8896695 , 0.888722 , 0.88676806, 0.88408099, 0.87945441])