2016-12-08 2 views
0

Ich versuche, mit Opennlp am Dokumentklassifizierer zu arbeiten. Aber ich habe eine harte Zeit mit der Trainingsdatei. Ich erhalte den folgenden Fehler während opennlp die Datei liest:OpenNLP-Fehler beim Analysieren der Trainingsdatei für die Dokumentkategorisierung

Indexing events using cutoff of 5 

    Computing event counts... done. 17 events 
    Indexing... Dropped event greetings:[bow=hello] 
Dropped event greetings:[bow=hi] 
Dropped event greetings:[bow=salam] 
Dropped event internet_problem:[bow=internet] 
Dropped event internet_problem:[bow=no, bow=data] 
Dropped event internet_problem:[bow=data, bow=not, bow=working] 
Dropped event internet_problem:[bow=not, bow=able, bow=to, bow=open, bow=website] 
Dropped event internet_problem:[bow=browsing, bow=issue] 
Dropped event balance_problem:[bow=balance] 
Dropped event balance_problem:[bow=usage] 
Dropped event balance_problem:[bow=bill, bow=amount] 
Dropped event balance_problem:[bow=billed] 
Dropped event voice_problem:[bow=signals] 
Dropped event voice_problem:[bow=call] 
Dropped event voice_problem:[bow=voice] 
Dropped event voice_problem:[bow=call, bow=drop] 
Dropped event voice_problem:[bow=not, bow=connecting] 
done. 
Sorting and merging events... Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
    at java.util.ArrayList.rangeCheck(ArrayList.java:653) 
    at java.util.ArrayList.get(ArrayList.java:429) 
    at opennlp.tools.ml.model.AbstractDataIndexer.sortAndMerge(AbstractDataIndexer.java:89) 
    at opennlp.tools.ml.model.TwoPassDataIndexer.<init>(TwoPassDataIndexer.java:105) 
    at opennlp.tools.ml.AbstractEventTrainer.getDataIndexer(AbstractEventTrainer.java:74) 
    at opennlp.tools.ml.AbstractEventTrainer.train(AbstractEventTrainer.java:91) 
    at opennlp.tools.ml.model.TrainUtil.train(TrainUtil.java:53) 
    at opennlp.tools.doccat.DocumentCategorizerME.train(DocumentCategorizerME.java:204) 
    at com.nlp.CategoryTrainUtil.trainModel(CategoryTrainUtil.java:39) 
    at com.nlp.Boot.main(Boot.java:12) 

Meine Trainingsdatei wie folgt aussieht:

greetings hello 
greetings hi 
greetings salam 
internet_problem internet 
internet_problem no data 
internet_problem data not working 
internet_problem not able to open website 
internet_problem browsing issue 
balance_problem balance 
balance_problem usage 
balance_problem bill amount 
balance_problem billed 
voice_problem signals 
voice_problem call 
voice_problem voice 
voice_problem call drop 
voice_problem not connecting 

Ich bin nicht, was bekomme ich vielleicht verpasst haben.

Antwort

1

die erste Zeile sagt Indexing events using cutoff of 5

was wahrscheinlich bedeutet, dass Sie mindestens 5 Beispiele jeweils für die Klassifizierung geben. Also, geben Sie zwei weitere Beispiele für greeting und die anderen, wo nicht 5 in Ihren Trainingsdaten sind.

Alternativ können Sie Ihren Cutoff auf 3 verringern, wenn Sie nicht genügend Trainingsdaten haben, aber dies wird Ihnen keine guten Ergebnisse liefern.

Hoffe, das hilft!

Verwandte Themen