Gensim: TypeError: doc2bow espera una matriz de tokens Unicode en la entrada, no una sola cadena

Estoy empezando con alguna tarea de python, estoy enfrentando un problema mientras uso gensim. Estoy tratando de cargar archivos de mi disco y procesarlos (dividirlos y minúsculas ())

El código que tengo está abajo:

dictionary_arr=[] for file_path in glob.glob(os.path.join(path, '*.txt')): with open (file_path, "r") as myfile: text=myfile.read() for words in text.lower().split(): dictionary_arr.append(words) dictionary = corpora.Dictionary(dictionary_arr) 

La lista (dictionary_arr) contiene la lista de todas las palabras en todo el archivo, luego uso gensim corpora.Diccionario para procesar la lista. Sin embargo me enfrento a un error.

 TypeError: doc2bow expects an array of unicode tokens on input, not a single string 

No puedo entender cuál es un problema, un poco de orientación sería apreciado.

En dictionary.py, la función de inicialización es:

 def __init__(self, documents=None): self.token2id = {} # token -> tokenId self.id2token = {} # reverse mapping for token2id; only formed on request, to save memory self.dfs = {} # document frequencies: tokenId -> in how many documents this token appeared self.num_docs = 0 # number of documents processed self.num_pos = 0 # total number of corpus positions self.num_nnz = 0 # total number of non-zeroes in the BOW matrix if documents is not None: self.add_documents(documents) 

Función add_documents Construye un diccionario a partir de una colección de documentos. Cada documento es una lista de fichas:

 def add_documents(self, documents): for docno, document in enumerate(documents): if docno % 10000 == 0: logger.info("adding document #%i to %s" % (docno, self)) _ = self.doc2bow(document, allow_update=True) # ignore the result, here we only care about updating token ids logger.info("built %s from %i documents (total %i corpus positions)" % (self, self.num_docs, self.num_pos)) 

Por lo tanto, si inicializa el Diccionario de esta manera, debe pasar documentos pero no un solo documento. Por ejemplo,

 dic = corpora.Dictionary([a.split()]) 

esta bien

Diccionario necesita una cadena tokenized para su entrada:

 dataset = ['driving car ', 'drive car carefully', 'student and university'] # be sure to split sentence before feed into Dictionary dataset = [d.split() for d in dataset] vocab = Dictionary(dataset)