Existe-t-il une bonne bibliothèque de traitement du langage naturel [fermé]

90

J'ai besoin d'implémenter un peu de PNL dans mon module actuel. Je recherche une bonne bibliothèque qui peut m'aider ici. Je suis tombé sur «LingPipe» mais je n'ai pas pu suivre complètement comment l'utiliser.
Fondamentalement, nous devons implémenter une fonctionnalité où l'application peut déchiffrer les instructions client (instructions de livraison) tapées en anglais clair. Par exemple:

  • Retrait à midi demain
  • Demander une livraison après le 10 juin
  • Merci de ne pas envoyer avant mercredi
  • Ajouter 10 unités supplémentaires de XYZ à la commande
Vini
la source

Réponses:

78

LingPipe est très agréable et bien documenté. Vous pouvez également consulter:

Le dernier en particulier pourrait vous intéresser, même si je ne sais pas s'il existe des implémentations Java facilement disponibles (et peut-être que c'est peut-être trop gros pour votre problème de toute façon :-)

L'idée de Paul d'utiliser un DSL est probablement plus facile et plus rapide à mettre en œuvre, et plus fiable à utiliser pour vos clients. Je recommanderais moi aussi d’examiner cela en premier.

n3rd
la source
1
J'ai présenté mon rapport sur la base des contributions que j'ai recueillies de ce forum et d'autres endroits sur le net. J'ai également suggéré les autres options que vous avez suggérées et le Biz a décidé de garder cela en suspens (commence maintenant la R&D pour trouver le meilleur candidat possible).
Vini
1
Si vous comparez LingPipe et d'autres que vous avez énumérés, lequel préférez-vous? Je pose cette question non spécifique uniquement pour la question de @ Winnie, je la pose à des fins générales.
kamaci
1
Découvrez MALLET: mallet.cs.umass.edu
Samik R
11

Je pense que le choix d'utiliser ou non la PNL dépendra des exigences spécifiques de votre système. Est-il obligatoire d'accepter l'anglais de forme libre ou est-ce que seul un certain ensemble d'instructions sera accepté? Il peut être plus facile de créer un langage spécifique à un domaine qui prend en charge ce que vos utilisateurs doivent transmettre que de faire une analyse sémantique complète du texte de forme libre.

Dans l'espace Java, Groovy prend en charge la création de DSL .

Paul Morie
la source
Voici quelques lignes du document d'exigence: «.. et l'utilisateur devrait pouvoir entrer une note ou une instruction spéciale en anglais ordinaire. Le système doit ensuite analyser l'instruction utilisateur et remplir les champs pertinents (le cas échéant) de la commande avec les valeurs correctes. "
Vini
10
C'est une exigence assez vague. Par exemple, la note doit-elle être grammaticalement correcte? Je ne sais pas si les parties qui ont proposé les exigences connaissent l'état de la PNL, mais le problème qu'elles ont décrit est essentiellement la compréhension de la lecture, ou la compréhension du langage naturel, qui est l'un des problèmes décrits comme `` le saint graal »de la PNL. Il est peu probable que vous trouviez un package qui puisse simplement `` faire cela '' pour vous - il est probablement beaucoup plus réaliste de donner à l'utilisateur une interface utilisateur dans laquelle il peut spécifier un nombre limité d'instructions spéciales.
Paul Morie