java - spanish - pos tags stanford
formato xml en stanford pos tagger (1)
he etiquetado 20 oraciones y este es mi código:
public class myTag {
public static void main(String[] args) {
Properties props = new Properties();
try {
props.load(new FileReader("D:/tagger/english-bidirectional-distsim.tagger.props"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MaxentTagger tagger = new MaxentTagger("D:/tagger/english-bidirectional-distsim.tagger",props);
//==================================================================================================
try (BufferedReader br = new BufferedReader(new FileReader("C:/Users/chelsea/Desktop/EN/EN.txt")))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
String tagged = tagger.tagString(sCurrentLine);
System.out.println(tagged);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
este es el resultado:
img http://i59.tinypic.com/2w5pp4o.png
como puedes ver en el nodo de oraciones, tiene un atributo Id y aquí es constante = 0, lo que no debería ser. Espero el valor = 0,1,2,3,4, ... no entiendo lo que está mal con mi código
El etiquetador de POS de Stanford (estrictamente hablando, separador de oraciones que se aplica antes del anotador de POS) genera identificadores para oraciones por texto de entrada. Entonces, le pides a tagger
que etiquete sCurrentLine
consta de una oración, este texto se divide en oraciones, en realidad, solo una, con id = 0; luego pides etiquetar otro texto - sCurrentLine
de la siguiente iteración - y de nuevo es la única oración y por lo tanto es la primera oración con id = 0; y así.
Por lo tanto, si quieres identificadores correctos, primero crea todo el texto y luego tagger
al tagger
. Sin embargo, si su texto de entrada ya está dividido por oraciones, será mejor dejarlo tal como está (y generar identificadores usted mismo en el ciclo, si los necesita).