-
-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DTM 모델의 토픽넘버링과 관련하여 문의드립니다. #178
Comments
안녕하세요 @tkddnd0214 >>> mdl.docs[0].get_words() # 0번 doc이 가지고 있는 단어 분포.
[('block', 0.06128782033920288), ('build', 0.0597362294793129), ('experi', 0.03258339688181877), ('neural', 0.02172226458787918), ('network', 0.020170675590634346), ('simul', 0.012412723153829575), ('structur', 0.011636927723884583), ('user', 0.011636927723884583), ('nontermin', 0.010085337795317173), ('provid', 0.010085337795317173)]
# neural network simulation과 관련된 문서인듯합니다.
>>> mdl.docs[0].get_topics() # 0번 doc이 가지고 있는 토픽 분포
[(4, 0.8371965289115906), (0, 0.02513703890144825), (7, 0.024353954941034317), (9, 0.02200469933450222), (6, 0.01887235790491104), (3, 0.016523100435733795), (2, 0.01495693065226078), (8, 0.01495693065226078), (5, 0.014173844829201698), (1, 0.011824589222669601)]
# 4번 토픽이 대부분을 차지하고 있는 것을 볼 수 있음
>>> mdl.docs[0].timepoint # 0번 doc의 timepoint는 5
5
>>> mdl.get_topic_words(4, timepoint=5) # 토픽 4번의 timpoint=5일때의 단어 분포를 보면 다음과 같습니다
[('network', 0.028920229524374008), ('learn', 0.01488775946199894), ('train', 0.010986631736159325), ('neural', 0.008942276239395142), ('input', 0.006898850202560425), ('unit', 0.006708481349050999), ('model', 0.006247314158827066), ('weight', 0.005994639825075865), ('task', 0.0059022968634963036), ('system', 0.005719301290810108)]
# 이 토픽은 아마 neural network training과 관련된 단어들이 모여있는 토픽인듯하네요. 보시다시피 get_topics()으로 doc 0의 상위 토픽은 #4임을 알아낼 수 있었고, #4가 실제로 어떤 내용을 나타내는지를 get_topic_words()로 조회해보면, neural network training과 관련된 주제임을 알 수 있었습니다. 그리고 doc 0의 실제 내용을 보니 이와 일치하는 것도 확인할 수 있었구요. 토픽 넘버링이 다르게 된다는게 어떤 의미인지 잘 모르겠는데, 이에 대해서 자세히 설명해주시면 확인해보도록 하겠습니다~ 그리고 두번째로 질문해주신 pyLDAvis를 이용한 DTM 모델 시각화는, timepoint별로 모델을 나눠서 시각화하면 가능할거 같네요. 다음 예제 코드에 시각화 관련 코드를 추가했으니 참고하시면 되겠습니다. Lines 44 to 61 in 073c443
|
안녕하십니까
tomotopy의 dtm모델을 돌리다가 문의사항이 있어 글을 올립니다.
모델을 훈련시킨 후,
훈련에 사용된 문서들이 어느 토픽에 분류가 되었는지 확인하고자
DTModel.docs[i].get_topics를 활용하여 각 문서가 어떤 토픽으로 분류가 되었는지 확인하였습니다.
그 이후, tomotopy.label와 DTModel.get_topic_words를 이용하여
각 토픽에 대해 자동라벨링과 각 시점 별 토픽에 포함되는 단어들을 확인해 보았는데요.
이때 DTModel.docs[i].get_topics을 사용했을 때 나오는 토픽 넘버링과
tomotopy.label와 DTModel.get_topic_words를 이용했을 때 나오는 토픽 넘버링이 다르게 되는 것 같아 해당 사항에 대해 확인하고 싶어 연락드립니다.
(ex. DTModel.docs[i].get_topics 에서의 0번 토픽 -> tomotopy.label와 DTModel.get_topic_words의 2번 토픽
DTModel.docs[i].get_topics 에서의 1번 토픽 -> tomotopy.label와 DTModel.get_topic_words의 13번 토픽 등)
DTModel.docs[i].get_topics을 사용했을 때 나오는 토픽 넘버링과 tomotopy.label와 DTModel.get_topic_words를 이용했을 때 나오는 토픽 넘버링이 일치하는 것인지, 일치하지 않다면 코드를 조정하여 일치시킬 방안이 있는지 문의드립니다.
ps. 추가로 DTModel의 결과물로 각 시점에 대해 gensim 패키지의 pyLDAvis 시각화를 할 수 있는지 문의드립니다.
The text was updated successfully, but these errors were encountered: