Análisis de palabras y puntuación de un archivo python.
Estoy haciendo un análisis palabra por palabra de una oración como
"Oye, ¿esta es una excelente película?"
Tengo muchas oraciones como la de arriba. Tengo un archivo de conjunto de datos enorme como se muestra a continuación, donde tengo que hacer una búsqueda rápida si esa palabra existe. Si lo hace, entonces haga un análisis y guárdelo en un diccionario, como obtener la puntuación del archivo de la palabra, la puntuación de la última palabra de la oración, la primera palabra de la oración y así sucesivamente.
oración [i] => ¡Hola! Esta es una excelente pelicula ??? oración [0] = ¡Hey, oración [1] = allí !! oración [2] = Esto y así sucesivamente.
Aquí está el código:
def unigrams_nrc(file):
for line in file:
(term,score,numPos,numNeg) = re.split("\t", line.strip())
if re.match(sentence[i],term.lower()):
#presence or absence of unigrams of a target term
wordanalysis["unigram"] = found
else:
found = False
if found:
wordanalysis["trail_unigram"] = found if re.match(sentence[(len(sentence)-1)],term.lower()) else not(found)
wordanalysis["lead_unigram"] = found if re.match(sentence[0],term.lower()) else not(found)
wordanalysis["nonzero_sscore"] = float(score) if (float(score) != 0) else 0
wordanalysis["sscore>0"] = (float(score) > 0)
wordanalysis["sscore"] = (float(score) != 0)
if re.match(tweet[len(sentence)-1],term.lower()):
wordanalysis["sscore !=0 last token"] = (float(score) != 0)
Aquí está el archivo (más de 4000 palabras en este archivo):
#fabulous 7.526 2301 2
#excellent 7.247 2612 3
#superb 7.199 1660 2
#perfection 7.099 3004 4
#terrific 6.922 629 1
#magnificent 6.672 490 1
#sensational 6.529 849 2
#heavenly 6.484 2841 7
#ideal 6.461 3172 8
#partytime 6.111 559 2
#excellence 5.875 1325 6
@thisisangel 5.858 217 1
#wonderful 5.727 3428 18
elegant 5.665 537 3
#perfect 5.572 3749 23
#fine 5.423 2389 17
excellence 5.416 279 2
#realestate 5.214 114 1
bicycles 5.205 113 1
Quería saber si hay una mejor manera de hacer lo anterior? Definiendo mejor manera: Más rápido, menos código y elegante. Soy nuevo en Python, así que sé que este no es el mejor código. Tengo alrededor de 4 archivos a través de los cuales tengo que revisar el puntaje, por lo que quiero implementar esta función de la mejor manera posible.