약간 큰 데이터 세트의 빈도 분포를 얻기 위해 NLTK를 사용하는 작은 프로그램이 있습니다. 문제는 수백만 단어가 지나면 시스템의 모든 RAM을 먹기 시작한다는 것입니다. 여기에 코드의 관련 라인을 생각하는 내용은 다음과 같습니다Python NLTK FreqDist() 메모리 사용량 줄이기 k, v를 디스크에 쓴다?
freq_distribution = nltk.FreqDist(filtered_words) # get the frequency distribution of all the words
top_words = freq_distribution.keys()[:10] # get the top used words
bottom_words = freq_distribution.keys()[-10:] # get the least used words
디스크에 키, 값 저장소를 작성하는 방법이 있어야합니다, 나는 얼마나 확실하지 않다. 나는 MongoDB와 같은 문서 저장소에서 멀리 떨어져 있고 순수하게 파이썬 적으로 머물러 있습니다. 누구든지 몇 가지 제안 사항이 있으면 감사하게 생각합니다.
지금 당장 귀하의 게시물을 읽는 중입니다. 다음 시간 동안 내 요구 사항을 충족시킬 수 있는지 알아볼 계획입니다. 나는 당신의 접근법을 많이 좋아합니다. 사실 분석을 문서의 날짜별로 나누면 쿼리의 수준을 고려할 수 있기 때문입니다. 나는 그것이 어떻게 움직이는 지/내가 바꾼 모든 것을 올릴 것이다. – secumind
내 요구 사항에 맞게 메소드를 약간 수정했으나 일반적인 접근 방식이 효과적이었습니다! – secumind