주제 모델링을 수행하기위한 R 패키지 / LDA :`topicmodels` 및`lda` [폐쇄]


29

두 개의 R 패키지 만 Latent Dirichlet Allocation 을 수행 할 수있는 것 같습니다 .

하나는 ldaJonathan Chang이 저술 한 것입니다 . 다른 하나는 topicmodelsBettina Grün과 Kurt Hornik 이 저술했습니다.

성능, 구현 세부 사항 및 확장 성 측면에서이 두 패키지의 차이점은 무엇입니까?

답변:


26

구현 : topicmodels 패키지는 Blei et al.의 주제 모델을위한 GSL C 및 C ++ 코드에 대한 인터페이스를 제공합니다. 및 Phan et al. 초기에는 Gibbs Sampling에 Variational EM을 사용합니다. http://www.jstatsoft.org/v40/i13/paper를 참조 하십시오 . 이 패키지는 tm 패키지의 유틸리티와 잘 작동합니다.

lda 패키지는 GSL 라이브러리의 모델과 유사한 여러 모델에 대해 축소 된 Gibbs 샘플러를 사용합니다. 그러나 Blei et al.이 아니라 패키지 작성자 자체에 의해 구현되었습니다. 따라서이 구현은 일반적으로 VEM 알고리즘이 적용되는 이러한 모델 변형을 소개하는 원본 논문에서 제안 된 추정 기술과는 다릅니다. 반면에 패키지는 다른 패키지보다 더 많은 기능을 제공합니다. 이 패키지는 텍스트 마이닝 기능도 제공합니다.

확장 성 : 확장 성과 관련하여 주제 모델 코드는 본질적으로 C 및 C ++로 작성된 다른 주제 모델 코드를 인터페이스하도록 확장 될 수 있습니다. lda 패키지는 저자가 제공 한 특정 구현에 더 의존하는 것처럼 보이지만 Gibbs 샘플러는 자체 주제 모델을 지정할 수 있습니다. 확장 성 문제가 아닌 경우 전자는 GPL-2에 따라 라이센스가 부여되고 후자는 LGPL에 따라 라이센스가 부여되므로 확장해야 할 사항에 따라 달라질 수 있습니다 (GPL-2는 오픈 소스 측면에서 더 엄격합니다. 즉, 사용할 수 없습니다) 독점 소프트웨어).

성능 : 나는 여기서 당신을 도울 수 없습니다. 나는 지금까지 토픽 모델 만 사용했습니다.

결론 :
개인적으로 나는 topicmodels잘 문서화되어 있으므로 위의 JSS 논문을 참조하십시오. 저는 저자를 신뢰합니다 (Grün은 flexmix를 구현했으며 Hornik은 R 핵심 멤버입니다).


7
먼저, topicmodels가 훌륭한 패키지라고 확신하며 문서화가 매우 잘되어 있음에 동의합니다. LDA 패키지의 저자를 "신뢰"하는 것과 관련하여 Jonathan Chang은 저의 박사 과정 학생이며 그의 코드를 완전히 신뢰합니다. 그는 뛰어난 소프트웨어 엔지니어이자 학자입니다. 그의 패키지는 쉽고, 대규모 컬렉션으로 확장이 쉽고, R에서 결과를 탐색하는 것이 좋습니다. (문서의 희소 행렬 표현에 관심이 있습니다.) LDA는 관계형을 포함한 다른 모델을 구현합니다. 주제 모델, 감독 된 LDA (GLM 포함) 및 혼합 멤버십 확률 블록 모델.

무게를 for 주셔서 감사합니다. lda패키지가 훌륭 하다고 확신하지만 lda코드가 열등 하다는 것을 의미하지는 않았습니다 . 나는 개인적인 인상을 남겼습니다 (문서가 약간 부주의 해 보였습니다). 2 년 전부터 답변을 약간 편집 했으므로 (CRAN 페이지의 오타가 여전히 남아 있으므로 수정하는 것이 좋지만 전자 메일이 손실 된 것으로 보입니다).
Momo

두 패키지에 대해 많은 경험이 있고 일반적인 주제에 대해 가장 많이 알고 있다고 생각합니다. 두 패키지의 장단점을 나열하는 답변을 제공하는 방법은 무엇입니까? 나는을 사용하지 않았기 lda때문에 경험적으로 평가할 수 없었다. 이를 통해 OP와 다른 모든 사람에게 도움이 될뿐만 아니라 의도하지 않은 불의를 바로 잡을 수 있습니다. 감사!
Momo

1
나는 또한 두 가지를 모두 시도했고 lda패키지에 더 많은 옵션이 포함되어 있음을 발견했습니다 . 그러나 데이터를 모델에 맞추기 위해 데이터를 형식화하는 방법을 이해하기는 어렵습니다. topicmodels패키지는 잘 작동 tm그동안 패키지 lda패키지를 만드는 방법을 명확하지 않다 목록을 요청합니다.
Omri374 December

12

+1 topicmodels . @Momo의 답변은 매우 포괄적입니다. 패키지 또는 파이썬을 사용하여 topicmodels쉽게 만들 수있는 문서 용어 행렬로 입력 을 취합니다 tm. lda패키지 (Blei의 LDA-C 기준) 입력의 난해한 양식을 사용하고 내가 사용 운이 없었 한 내장으로 변환 DTM에 기능 lda패키지 형식합니다 (LDA 문서는 모모 노트로, 매우 가난하다).

나는 원시 텍스트가 시작되면 몇 가지 코드가 그것을 사전을-처리 tm및 통해 풋을 topicmodels(사전에 주제의 최적의 수를 발견하고 출력 작업 포함) 여기 . topicmodels처음 오시는 분에게 유용 할 수 있습니다 .


3
이미 사용하지 않는 사람들을 위해 TM을 하고, 함께 플레이하고 싶은 LDA , JFreq는 또한 LDA-C 선호하는 형식으로 일반 텍스트를 넣습니다.
공역 사전

JFreq에 대해 잘 알고 있지만, 이전에는 보지 못했습니다. 팁 고마워!
Ben

1
방금 패키지에서 동일한 read_dtm_Blei_et_al기능을 하는 기능을 발견했습니다 tm.
Ben

3

Molly Roberts, Brandon Stewart 및 Dustin Tingley의 R STM (Structural Topic Model) 패키지도 훌륭한 선택입니다. tm 패키지 위에 구축되어 문서 수준 공변량 정보가 포함 된 주제 모델링을위한 일반적인 프레임 워크입니다.

http://structuraltopicmodel.com/

STM 패키지에는 주제 수를 결정하기위한 일련의 방법 (그리드 검색) 및 측정 (의미 적 일관성, 잔차 및 독점)이 포함됩니다. 토픽 수를 0으로 설정하면 모델이 최적의 토픽 수를 결정하게됩니다.

stmBrowser 패키지는 주제에 대한 외부 변수의 영향을 시각화하기위한 훌륭한 데이터 시각화 보완 기능입니다. : 2016 년 대선 논쟁과 관련이 예제 참조 http://alexperrier.github.io/stm-visualization/index.html을 .


0

나는 3 개의 라이브러리 중 3 개의 라이브러리를 모두 사용했습니다. 주제 모델, lda, stm; 모든 사람들이 n 그램으로 작업하는 것은 아닙니다. topicmodels 라이브러리는 추정치가 좋고 n 그램에서도 작동합니다. 그러나 누군가가 유니 그램으로 작업한다면 실무자는 stm을 선호 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.