2014-12-01 3 views
2

내 용어 - 문서 행렬은 numpy 행렬 형식이며, 용어 - 문서 행렬을 나타내는 사전이 있습니다.Gensim LDA 모델에 용어 - 문서 행렬 전달

Gensim의 LDA 모델에이 두 가지를 쉽게 전달할 수있는 방법이 있습니까?

tdMatrix = np.load('tdmatrix.npy') 
dictionary = cPickle.load(open('dictionary.p', 'r')) # stores term represented by each column 

어떻게 든 gensim.models.ldamodel.LDA로 전달할 수 있습니까?

답변

1

저는 Gensim이 거의 동일한 구조를 사용하여 단어 코퍼스를 표현한다고 생각하지만, 기본 사전이나 질의없는 배열이 호환되지 않을 것이라고 생각합니다. Gensim의 API에는 다양한 형식을 수용 할 수있는 몇 가지 "corpusreaders"가 나열되어 있지만 다른 도구 키트의 데이터를 가져 오기 위해 빌드 된 것 같습니다. 아마도 귀하의 경우 가장 쉬운 해결책은 매트릭스와 사전을 분리 된 문자열 목록으로 사용하여 문서를 재구성하는 것입니다. 그런 다음 목록을 Gensim의 단어 모음집으로 변환하고 마지막으로 tutorials과 같이 LDA로 변환하십시오.

이 접근법에는 Gensim의 사전 처리 기능과 낮은/높은 주파수의 필터 단어를 적용 할 수 있다는 이점이 있습니다.

1

2D numpy (또는 심지어 scipy.sparse.csc) 배열을 gensim corpus로 처리하려면 내장 된 matutils.Scipy2Corpus 함수를 사용하십시오.

+0

예상되는 형식과 관련된 모든 문서가 있습니까? 예를 들어, 약 18GB의 디스크에 저장된 희소 csc 행렬이 있습니다. 컬럼은 다른 용어이며, 행은 주어진 용어에 대해 0이 아닌 계수가있는. 서입니다. "* 2Corpus"함수는 csc 수락을 설명하지만 문서가 열 차원이거나 열 차원이어야하는 경우 명확하지 않습니다. – ely