Я следую документации для Apache open-nlp
. Я смог понять определение предложений, токенизатор, поиск имен. Но я застрял на Categorizer. Причина, я не могу понять, как создать модель для категоризации.
Я понимаю, что мне нужно создать файл. Формат очень четкий, это должно быть пространство категории и документ в одной строке. Сохраните файл с расширением .train
.
Поэтому я создал следующий файл:
Refund What is the refund status for my order #342 ?
NewOffers Are there any new offers for your products ?
Я дал эту команду-
opennlp DoccatTrainer -model en-doccat.bin -lang en -data en-doccat.train -encoding UTF-8
Он начинает что-то делать, а затем возвращается с ошибкой. Это содержимое командной строки:
Indexing events using cutoff of 5
Computing event counts... done. 2 events
Indexing... Dropped event Refund:[bow=What, bow=is, bow=the, bow=refund, bow=status, bow=for, bow=my, bow=order, bow=#342, bow=?]
Dropped event NewOffers:[bow=Are, bow=there, bow=any, bow=new, bow=offers, bow=for, bow=your, bow=products, bow=?]
done.
Sorting and merging events... Done indexing.
Incorporating indexed data for training...
Exception in thread "main" java.lang.NullPointerException
at opennlp.maxent.GISTrainer.trainModel(GISTrainer.java:263)
at opennlp.maxent.GIS.trainModel(GIS.java:256)
at opennlp.model.TrainUtil.train(TrainUtil.java:184)
at opennlp.tools.doccat.DocumentCategorizerME.train(DocumentCategorizerME.java:162)
at opennlp.tools.cmdline.doccat.DoccatTrainerTool.run(DoccatTrainerTool.java:61)
at opennlp.tools.cmdline.CLI.main(CLI.java:222)
Я просто не могу понять, почему здесь возникает исключение нулевого указателя? Я также пытался увеличить еще две строки, но безрезультатно.
Refund What is the refund status for my order #342 ?
NewOffers Are there any new offers for your products ?
Refund Can I place a refund request for electronics ?
NewOffers Is there any new offer on buying worth 5000 ?
Я нашел этот блог, но и здесь делается то же самое. При попытке его тренировочного файла он работает с шармом. Что не так в моем файле? Как устранить ошибку.
Когда я пробую opennlp DoccatTrainer
, он открывает мне справку, так что путь не проблема. Любая помощь приветствуется.
EDIT: я изменил файл на
Refund What is the refund status for my order #342 ? Can I place a refund request for clothes ?
NewOffers Are there any new offers for your products ? what are the offers on new products or new offers on old products?
Refund Can I place a refund request for electronics ?
NewOffers Is there any new offer on buying worth 5000 ?
и это работает, я подумал, что он должен что-то делать с документом (видимо, должно быть два предложения) и удалил последние две строки.
чтобы сделать это
Refund What is the refund status for my order #342 ? Can I place a refund request for clothes ?
NewOffers Are there any new offers for your products ? what are the offers on new products or new offers on old products?
Но опять же, это терпит неудачу, теперь вопрос сводится к тому, какие данные/формат/документ ему нужны?
Спасибо