Ich muss etwas NLP in meinem aktuellen Modul implementieren. Ich suche eine gute Bibliothek, die mir hier helfen kann. Ich bin auf 'LingPipe' gestoßen, konnte aber nicht vollständig nachvollziehen, wie man es benutzt.
Grundsätzlich müssen wir eine Funktion implementieren, mit der die Anwendung Kundenanweisungen (Lieferanweisungen) entschlüsseln kann, die in einfachem Englisch eingegeben wurden. Z.B:
- Wird morgen um 12:00 Uhr abholen
- Lieferung nach dem 10. Juni anfordern
- Bitte nicht vor Mittwoch senden
- Fügen Sie der Bestellung 10 weitere Einheiten XYZ hinzu
Antworten:
LingPipe ist sehr schön und gut dokumentiert. Sie können auch einen Blick darauf werfen:
Das letzte könnte speziell für Sie von Interesse sein, obwohl ich nicht weiß, ob es leicht verfügbare Java-Implementierungen gibt (und vielleicht ist das sowieso eine zu große Waffe für Ihr Problem :-)
Pauls Idee, ein DSL zu verwenden, ist wahrscheinlich einfacher und schneller zu implementieren und für Ihre Kunden zuverlässiger zu verwenden. Ich würde auch empfehlen, dies zuerst zu untersuchen.
quelle
Ich denke, ob Sie NLP verwenden oder nicht, hängt möglicherweise von den spezifischen Anforderungen für Ihr System ab. Ist es erforderlich, dass Freiform-Englisch akzeptiert wird, oder werden nur bestimmte Anweisungen akzeptiert? Es ist möglicherweise einfacher, eine domänenspezifische Sprache zu erstellen , die das unterstützt, was Ihre Benutzer vermitteln müssen, als eine vollständige semantische Analyse von Freiformtext durchzuführen.
Im Java-Bereich unterstützt Groovy das Erstellen von DSLs .
quelle
Für andere JVM-Sprachen siehe
quelle