análise de palavras e pontuação de um arquivo python

Eu estou fazendo uma palavra por palavra análise de uma sentença como
"Hey lá !! Este é um excelente filme ???"

Eu tenho muitas frases como acima. Eu tenho um enorme arquivo de conjunto de dados como mostrado abaixo, onde eu tenho que fazer uma pesquisa rápida se essa palavra existir. Se isso acontecer, faça a análise e armazene em um dicionário, como obter a pontuação do arquivo da palavra, a pontuação da última palavra da frase, a primeira palavra da frase e assim por diante.

sentença [i] => Ei ai !! Este é um excelente filme ??? sentença [0] = Ei, frase [1] = lá !! sentença [2] = Isto e assim por diante.

Aqui está o 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)

Aqui está o arquivo (mais de 4000 palavras neste arquivo):

#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

Eu queria saber se existe uma maneira melhor de fazer o acima? Definindo melhor maneira: mais rápido, menos código e elegante. Eu sou novo em python, então eu sei que este não é o melhor código. Eu tenho cerca de 4 arquivos através dos quais eu tenho que ir e verificar a pontuação, portanto, quero implementar essa função da melhor maneira possível.

questionAnswers(2)

yourAnswerToTheQuestion