2016-04-09 19 views
1

Ich probiere OpenNLP Satzerkennungstool aus. Der Text befindet sich in einer Datei - para3.txt. Inhalt:Satzerkennung mit OpenNLP

Bob went to London Mary came from Paris Now everything is fine. 

ich dies mit folgendem Befehl renne:

opennlp SentenceDetector ../models/en-sent.bin < para3.txt 

ich die Ausgabe wie folgt aus:

Bob went to London Mary came from Paris Now everything is fine. 

Im Idealfall würde ich drei Sätze als Ausgabe gesehen haben:

Bob went to London. 
Mary came from Paris. 
Now everything is fine. 

Jetzt, wenn ich tr y für andere Sätze, bei denen "Voller Stopp" oder "Periode" vorhanden ist, ist die Satzerkennung in Ordnung. Ein Mensch hätte geahnt, dass es drei Sätze im Text gibt, aber wie schafft man es mit OpenNLP? Welche Tools von NLP könnten hier helfen ??? Was ist die nächste Stufe der Satzerkennung?

+0

Die meisten trainierten Modelle für Satz-Chunking versuchen zwischen Punkten zu unterscheiden, die als Punkte oder Akronyme, Titel usw. erscheinen. Sie haben einen sehr speziellen Fall, für den Sie am ehesten eine spezielle Technik anwenden oder eine neue trainieren müssen Modell. –

Antwort

0

Dies scheint tatsächlich ein fehlerhafter Text zu sein. Sie können Chucking-Informationen verwenden, um sie mithilfe einiger Heuristiken in Sätze aufzuteilen.

+1

Ja, ich stimme zu. Aber mein Punkt war genau das - um missgebildeten Text zu behandeln ... –

2

Sie sollten Ihr Modell trainieren, um diese Art von Satz zu erkennen, d. H. Satzdetektor-Training wie in der Dokumentation angegeben. erstellen Sie Ihre Trainingsdatei en-sent.train: Beispiel Trainingsdatei. Die einzige Voraussetzung ist, dass jeder Satz in einer separaten Zeile in der Trainingsdatei wie unten aufgeführt ist.

Satz 1

Satz 2

Satz 3

......

......

dann Befehlszeilenschnittstelle:

opennlp SentenceDetectorTrainer -model en-sent_trained.bin -lang en -data en-sent.train -encoding UTF-8 

dies wird eine Modelldatei geben: en-sent_trained.bin

jetzt diese .bin-Datei verwenden, anstatt en-sent.bin

hoffe, das hilft!

+0

Danke! Werde es ausprobieren. –