J'ai un problème dans lequel j'essaye de reconnaître l'entité de nom de nombre d'un texte employant Stanford, dans le cas où j'ai par exemple 20 millions Il récupère comme ceci "Nombre": ["20 -5 "," million-6 "], Comment puis-je optimiser la réponse pour que 20 millions se rejoignent? et Comment puis-je ignorer le numéro d'index comme (5,6) dans l'exemple ci-dessus? J'utilise le langage Java.Reconnaissance d'entité de nom de numéro dans Stanford
public void extractNumbers(String text) throws IOException {
number = new HashMap<String, ArrayList<String>>();
n= new ArrayList<String>();
edu.stanford.nlp.pipeline.Annotation document = new edu.stanford.nlp.pipeline.Annotation(text);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
for (CoreLabel token : sentence.get(CoreAnnotations.TokensAnnotation.class)) {
if (!token.get(CoreAnnotations.NamedEntityTagAnnotation.class).equals("O")) {
if (token.get(CoreAnnotations.NamedEntityTagAnnotation.class).equals("NUMBER")) {
n.add(token.toString());
number.put("Number",n);
}
}
}
}
Vous pourriez vouloir développer un peu. Quel modèle de nerin avez-vous utilisé? Quelle langue utilisez-vous? Aussi un extrait de code pour nous montrer exactement ce que vous avez fait aiderait aussi. – entrophy
@entrophy J'ai édité la question :) –
quel objet de la classe est 'pipeline' ici. Comme dans quel pipeline de Stanford utilisez-vous. – entrophy