Hola Elisa ¿cómo estás?
En primer lugar, (y por si algún otro compañer@ está leyendo esto), hay que cargar los lemas positivos y negativos en dos colecciones distintas, una que se llama "pos_lemmas" y otra que se llama "neg_lemmas". Esto se hace leyendo los archivos de lemas, similar a como se hace al inicio del codigo con el conjunto de datos. La letra del laboratorio no incluye esto ya que solamente define diccionarios vacios. En ese caso, si esas listas de lemas son siempre vacías, ningún tuit va a tener algo distintivo y por lo tanto siempre va a ser un empate, clasificándose como "NONE".
En segundo lugar, el uso del atributo "lemma_" de la clase "token" está recomendado por la biblioteca de spacy como la forma de acceder al lema: https://spacy.io/api/lemmatizer
En la solución que hicimos, que implementa un clasificador funcional con 0,55 de F1 macro, accedemos al lema de la manera que lo recomienda Spacy:
for token in doc: #por cada token detectado por Spacy
>if token.lemma_ in pos_lemmas: #si el lema de ese token está entre los positivos
>>pos_tokens +=1 #sumamos una unidad al contador de lemas positivos en el tuit
Si en tu caso tuviste que meterlo adentro de una lista ([token.lemma_]) debe ser por cómo te quedaron cargados los datos, como decís. La idea era que los lemas del diccionario quedaran cargados en una lista de strings (["palabra1", "palabra2"]) y no como una lista de listas. De esa forma, pueden recorrer la lista de lemmas positivos y negativos, chequeando si el token.lemma_ estaba en una u otra, como se muestra en el código que puse más arriba. Es decir, solamente haciendo un chequeo de si el string token.lemma_ está en una u otra lista. Pero otras soluciones son igual de bienvenidas, y está bueno que experimenten de esa manera.
¡Cualquier duda, a las órdenes!
Santi