Add resize_vectors method to Vocab

This commit is contained in:
Matthew Honnibal 2016-10-21 01:44:50 +02:00
parent 8ce8803824
commit 7ab03050d4
1 changed files with 15 additions and 1 deletions

View File

@ -9,7 +9,7 @@ import bz2
from os import path
import io
import math
import json
import ujson as json
import tempfile
from .lexeme cimport EMPTY_LEXEME
@ -129,6 +129,20 @@ cdef class Vocab:
"""The current number of lexemes stored."""
return self.length
def resize_vectors(self, int new_size):
'''
Set vectors_length to a new size, and allocate more memory for the Lexeme
vectors if necessary. The memory will be zeroed.
'''
cdef hash_t key
cdef size_t addr
if new_size > self.vectors_length:
for key, addr in self._by_hash.items():
lex = <LexemeC*>addr
lex.vector = <float*>self.mem.realloc(lex.vector,
new_size * sizeof(lex.vector[0]))
self.vectors_length = new_size
def add_flag(self, flag_getter, int flag_id=-1):
'''Set a new boolean flag to words in the vocabulary. The flag_setter
function will be called over the words currently in the vocab, and then