Я пытаюсь обучить POS-тегер opennlp, который будет помечать слова в предложении в соответствии с моим конкретным словарным запасом. Например:
После обычной POS-маркировки:
предложение: NodeManager/NNP failed/VBD to/TO start/VB the/DT server/NN
После использования моей модели тегов постов:
предложение: NodeManager/АГЕНТ не удалось/ДРУГОЙ/ДРУГОЙ запуск/ДРУГОЙ/ДРУГОЙ сервер/ОБЪЕКТ
где АГЕНТ, ДРУГОЕ, ОБЪЕКТ — теги, которые я определил.
так что в основном я определяю свой собственный словарь тегов. И хочу, чтобы теггер POS использовал мою модель.
когда я проверил документацию Apache для этого
я нашел код ниже
POSModel model = null;
InputStream dataIn = null;
try {
dataIn = new FileInputStream("en-pos.train");
ObjectStream<String> lineStream = new PlainTextByLineStream(dataIn, "UTF-8");
ObjectStream<POSSample> sampleStream = new WordTagSampleStream(lineStream);
model = POSTaggerME.train("en", sampleStream, TrainingParameters.defaultParams(), null, null);
}
catch(IOException e)
{
e.printStackTrace();
}
finally {
if (dataIn != null) {
try {
dataIn.close();
}
catch (IOException e) {
// Not an issue, training already finished.
// The exception should be logged and investigated
// if part of a production system.
e.printStackTrace();
}
}
}
здесь, когда они открывают FileInputStream для en-pos.train, я предполагаю, что этот en-pos.train представляет собой файл .bin, как и все те, которые они использовали раньше, но он просто настроен. может кто-нибудь сказать мне, как получить файл .bin для него?
или где en-pos.train ? что именно? как его создать?
я извлек bin-файл, который они обычно используют
en-pos-maxent.bin. у него есть файл xml, в котором мы определяем словарь тегов, файл модели и файл свойств. я изменил их в соответствии со своими потребностями, но моя проблема заключается в создании файла .bin из содержимого.