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)