cómo acelerar el reconocimiento de NE con stanford NER con python nltk

Primero tokenizo el contenido del archivo en oraciones y luego llamo a Stanford NER en cada una de las oraciones. Pero este proceso es realmente lento. Sé que si lo llamo en todo el contenido del archivo sería más rápido, pero lo llamo en cada oración, ya que quiero indexar cada oración antes y después del reconocimiento de NE.

st = NERTagger('stanford-ner/classifiers/english.all.3class.distsim.crf.ser.gz', 'stanford-ner/stanford-ner.jar')
for filename in filelist:
    sentences = sent_tokenize(filecontent) #break file content into sentences
    for j,sent in enumerate(sentences): 
        words = word_tokenize(sent) #tokenize sentences into words
        ne_tags = st.tag(words) #get tagged NEs from Stanford NER

Esto probablemente se deba a una llamadast.tag() para cada oración, pero ¿hay alguna manera de hacerla correr más rápido?

EDITAR

La razón por la que quiero etiquetar las oraciones por separado es que quiero escribir oraciones en un archivo (como indexación de oraciones) para que, dada la oración etiquetada ne en una etapa posterior, pueda obtener la oración no procesada (también estoy haciendo lematización aquí )

formato de archivo:

(sent_number, orig_sentence, NE_and_lemmatized_sentence)

Respuestas a la pregunta(3)

Su respuesta a la pregunta