저는 Python 및 Gensim을 처음 사용합니다. 현재 gensim
(http://radimrehurek.com/gensim/tut1.html)에있는 자습서 중 하나를 통해 작업하고 있습니다. 사전 내장 취득을 시작하기 전에모든 텍스트를로드하지 않고 사전 작성
# collect statistics about all tokens
>>> dictionary = corpora.Dictionary(line.lower().split() for line in open('mycorpus.txt'))
1) 파일 mycorpus.txt
완전히 메모리에로드 : 나는이 코드 라인에 대한 두 가지 질문이 있습니다?
Similarly, to construct the dictionary without loading all texts into memory
하지만 난 내 활동 모니터에서 RAM 사용을 모니터링 할 때, 파이썬 프로세스는 3 기가 파일 (I 프로세스 중간에 사망)에 대한 1 기가 조회수 : 튜토리얼은 명시 적으로 어떤을 말한다. 이것은 3 기가의 텍스트 파일에 대한 사전이 훨씬 더 작을 것이라고 가정 할 때 이상합니다. 누군가 나를 위해이 점을 명확히 할 수 있습니까?
2) 각 행을 읽는 동안 할 수 있도록이 행을 어떻게 다시 코딩 할 수 있습니까? 진행 상황을 보려면 화면에 인쇄하고 싶습니다. 내 시도는 다음과 같습니다.
i = 1
for line in f:
if i % 1000 == 0:
print i
dictionary = corpora.Dictionary([line.lower().split()])
i += 1
사전은 모든 줄마다 다시 초기화되므로이 기능이 작동하지 않습니다.
나는 이것이 매우 n00b 문제라는 것을 알고 있습니다. 당신의 도움과 인내심에 감사드립니다.
1) 자신의 코퍼스의 모든 문서에 대한 관련 단어 수? 나는. 문서 당 정보가 손실되고 집계 정보 만 남아 있습니다. – mchangun
@mchangun - 아마도 가능합니다. 나는'corpora.Dictionary'에 대해서는 전혀 모른다. 나는 그것이 정규 사전과 대략 동일하다고 가정했다. – mgilson