주제 분석을 수행하기 위해 tf-idf 입력에 대해 NMF 분해를 수행합니다.저장된 W 행렬을 사용하여 분류를위한 행렬 분해 적용
def decomp(tfidfm, topic_count):
model = decomposition.NMF(init="nndsvd", n_components=topic_count, max_iter=500)
H = model.fit_transform(tfidfm)
W = model.components_
return W, H
이, 모델 장기 과제에 대한 주제로 구성된 정의 및 H, 문서 주제에 할당 매트릭스
지금까지 너무 좋아, 내가 문서를 분류하는 H를 사용할 수 있습니다 W 반환 용어 빈도를 통한 관련성을 토대로 용어 목록과의 연관성을 토대로합니다.
나는 내가 나중에 다시 적용 할 수 있습니다 디스크에 주제 기간-연결을 저장하려는- 그리고 여기에 설명 된 방법을 채택은 [https://stackoverflow.com/questions/8955448] 그래서 무엇을
W.
의 스파 스 매트릭스 reperesentation를 저장 지금하고 싶은 것은 주제 정의 행렬 W 만 고정하는 동일한 프로세스를 수행하는 것입니다.설명서에서 호출 매개 변수에 W를 다음과 같이 행을 설정할 수있는 것으로 보입니다.
def applyModel(tfidfm,W,topic_count):
model = decomposition.NMF(init="nndsvd", n_components=topic_count, max_iter=500)
H = model.fit_transform(X=tfidfm, W=W)
W = model.components_
return W, H
그리고 시도해 보았습니다. 하지만 작동하지 않는 것 같습니다.
다른 크기의 어휘를 사용하여 W 행렬을 컴파일 한 다음 applyModel
함수에 입력하여 테스트 한 결과 행렬의 모양을 정의해야합니다 (또는 내가 말하고자하는 것은 그것이 내가 의도 한 것입니다) W 모델에 의해, 그러나 이것은 사실이 아닙니다.
이 질문의 간단한 버전은 다음과 같습니다. 행렬 분해에서 생성 된 주제 모델을 저장하여 원래 생성했던 것과 다른 문서 세트를 분류하는 데 사용할 수있는 방법은 무엇입니까? W V 및 주어진
다른 측면에서, V = WH 있다면, 어떻게 돌아갈 수 H?
물론! 수학은 다시 이깁니다. 행렬 곱셈/역행렬을 수행하여 H를 얻는 해답을 게시 할 것입니다. 적용 할 애플리케이션에 대해 의미있는 결과를 얻는 것처럼 보입니다. 나는 곧 답을 표시 하겠지만 추가 답변을 요청하기 위해 열어두고 싶습니다 - 나는 scikit으로 구운 것을 기대하고 이미 뭔가가 있다면 프로세스를 복제하고 싶지 않습니다. –