Je suis en train de former fichier en-NER-location.bin utilise opennlp en Java La chose est que je suis le fichier texte de formation dans le format suivant <START:location> Fontana <END> <START:location> Palo Verde <END> <START:location> Picacho <END>
incapable de former location.bin en utilisant opennlp avec java
et i formé le fichier en utilisant le code suivant
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Collections;
import opennlp.tools.namefind.NameFinderME;
import opennlp.tools.namefind.NameSample;
import opennlp.tools.namefind.NameSampleDataStream;
import opennlp.tools.namefind.TokenNameFinderModel;
import opennlp.tools.tokenize.Tokenizer;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.tokenize.TokenizerModel;
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
import opennlp.tools.util.Span;
public class TrainNames {
@SuppressWarnings("deprecation")
public void TrainNames() throws IOException{
File fileTrainer=new File("citytrain.txt");
File output=new File("en-ner-location.bin");
ObjectStream<String> lineStream = new PlainTextByLineStream(new FileInputStream(fileTrainer), "UTF-8");
ObjectStream<NameSample> sampleStream = new NameSampleDataStream(lineStream);
System.out.println("lineStream = " + lineStream);
TokenNameFinderModel model = NameFinderME.train("en", "location", sampleStream, Collections.<String, Object>emptyMap(), 1, 0);
BufferedOutputStream modelOut = null;
try {
modelOut = new BufferedOutputStream(new FileOutputStream(output));
model.serialize(modelOut);
} finally {
if (modelOut != null)
modelOut.close();
}
}
}
Je suis pas d'erreurs ou des avertissements, mais lorsque je tente d'obtenir un nom de ville d'une chaîne comme celui-ci cnt = "John envisage de se spécialiser en génie électrique en UC Fontana et poursuivre une carrière chez IBM. "; Il renvoie toute la chaîne n'importe qui pourrait me dire pourquoi ... ??
salut j'ai changé le fichier de formation comme vous le suggérez et i inclus 100 phrases containng le nom de la ville et les tagué mais aussi il ne fonctionne pas .... où pensez vous J'ai mal fait – user3649086
essayez de changer votre appel à .train ci-dessus à ceci: TokenNameFinderModel model = NameFinderME.train ("en", "location", sampleStream, null); – markg