Извините за очень общее название, но я постараюсь быть максимально конкретным.слияние словарей в python
Я работаю над текстовым приложением. У меня есть большое количество пар ключевых значений формы ((word, corpus) -> originence_count) (все - целое число), которое я храню в нескольких словарях python (tuple-> int). Эти значения распространяются на несколько файлов на диске (я их мариновал). Чтобы понять смысл данных, мне нужно объединить эти словари. В принципе, мне нужно найти способ найти все вхождения определенного ключа во всех словарях и добавить их для получения общего количества.
Если я загружаю более одного словаря за один раз, у меня заканчивается память, поэтому я должен был разбить их в первую очередь. Когда я попытался, я столкнулся с проблемами производительности. В настоящее время я пытаюсь сохранить значения в БД (mysql), обрабатывая сразу несколько словарей, поскольку mysql обеспечивает блокировку на уровне строк, что является хорошим (поскольку это означает, что я могу распараллелить эту операцию) и плохой (поскольку он замедляет работу вставки запросов)
Какие у меня варианты? Это хорошая идея написать частично основанный на диске словарь, чтобы я мог обрабатывать dicts по одному за раз? С помощью стратегии замены LRU? Есть ли что-то, чего я совершенно не замечаю?
Спасибо!
Определить «большое количество». «У меня заканчивается память». В самом деле? Без подробностей, таких как количество элементов в словаре, я нахожу это трудным для понимания. «Когда я попытался, я столкнулся с проблемами производительности». Пробовал что? –
Когда вы говорите, что «все является целым числом», вы имеете в виду, что слово и корпус являются целыми идентификаторами слова и корпуса? Являются ли слова идентификаторами согласованными между корпусами? – forefinger
спасибо всем! Я немного пересмотрел проблему, чтобы решить ее. – fsm