Используя необязательный, нестандартный параметр mmap='r'
при загрузке KeyedVectors
, вы специально запросили экземпляр, который поддерживался представлением файла на диске только для чтения ('r'
), который не
Затем, используя True
в качестве необязательного аргумента, не являющегося аргументом по умолчанию для вызова .init_sims(replace=True)
, вы запросили предварительный расчет единично-нормированных векторов, которые заменяет исходные значения. Вы не можете перезаписать значения в представлении только для чтения, отсюда и ошибка.
В зависимости от того, что вы действительно хотите сделать, что не ясно, выполните хотя бы одно из:
- полностью исключите аргумент
mmap
: вы получите обычный KeyedVectors
в памяти, который вы можете изменить любым способом, пока он находится в памяти, а затем можете сохранить его позже. (но вы можете не захотеть сохранить единично-нормированную версию, когда у вас уже есть необработанный ненормированный набор - вы всегда можете единично-нормализовать необработанные векторы, но вы не можете go в другую сторону.) - исключите от
True
до .init_sims()
: этот шаг затем создаст второй массив с нормированными единицами значения, не пытаясь записать в необработанный массив - измените аргумент
mmap
, чтобы разрешить чтение и запись - вы, вероятно, не захотите этого делать.