매우 일반적인 제목을 위해 유감스럽게 생각하지만 가능한 구체적으로하려고 노력할 것입니다.파이썬에서 사전 병합하기
저는 텍스트 마이닝 응용 프로그램을 만들고 있습니다. 나는 여러 개의 파이썬 사전 (튜플 -> int)에 저장하고있는 ((워드, 코퍼스) -> occurence_count) (모든 것은 정수이다.) 형식의 키 값 쌍을 많이 가지고있다. 이 값은 디스크의 여러 파일에 분산되어 있습니다 (절임). 데이터를 이해하려면 이러한 사전을 집계해야합니다 기본적으로 모든 사전에있는 특정 키의 모든 항목을 찾아 총계를 계산하는 방법을 찾아야합니다.
한 번에 두 개 이상의 사전을로드하는 경우 메모리가 부족하여 처음부터 분리해야했습니다. 시도 할 때 성능 문제가 발생했습니다. mysql은 행 레벨 잠금을 제공하기 때문에 DB (mysql)에 값을 저장하려고합니다. mysql은 행 레벨 잠금을 제공하기 때문에 (이 작업을 병렬화 할 수 있음을 의미하므로) 좋지 않습니다. 삽입 검색어)
내 옵션에는 어떤 것들이 있습니까? 내가 한 번에 하나씩 dicts를 처리 할 수 있도록 부분적으로 디스크 기반 사전을 작성하는 것이 좋은 생각입니까? LRU 교체 전략이 있습니까? 내가 완전히 잊어 버린 어떤 것이 있는가?
감사합니다.
"큰 숫자"를 정의하십시오. "나는 추억이 없다". 정말? 사전에있는 요소의 수와 같은 세부 정보가 없으면 이해하기 힘듭니다. "시도 할 때 성능 문제가 발생했습니다." 뭐라 구요? –
"모든 것이 정수입니다"라고 말하면 단어와 코퍼스는 단어와 코퍼스의 정수 ID입니까? 단어 ID는 전체에서 일관성이 있습니까? – forefinger
모두에게 감사드립니다! 나는 그것을 해결하기 위해 문제를 조금 재정의했다. – fsm