6
votes

Construire votre propre API NLP

Je construis un chatbot et je suis nouveau à NLP.

(Api.ai & Alchemyapi sont trop chers pour mon étui d'utilisation. Et Wit.ai semble être buggy et changer constamment en ce moment.)

Pour les experts du PNL, quelle facilité-pièce puis-je reproduire leurs services localement?

ma vision jusqu'à présent (avec noeud, mais ouvert à Python):

  • Entité Extraction via Stanfordner
  • Intention via LogisticRegresseur de NodenaturalClassificateur
  • Entraînement UI avec texte et validez / invalider les boutons (tous outils de précuiteurs pour cela?)

    Est-ce que des entités et des intentions ont-elles besoin pour un chatbot? Quelle est la qualité de Nodenatural / Stanfordner sera comparée au Service NLP-AS-A-A-A-service? Quels maux de tête je ne vois-je pas?


2 commentaires

Vous avez presque répondu à votre propre question: si ces API que vous avez mentionnées sont trop chères, il est probable que elles fournissent des fonctionnalités qui ne sont pas faciles à mettre en œuvre (au moins de manière optimale). Cependant, vous n'avez probablement pas besoin de toutes les fonctionnalités fournies par elles. Enfin, pourquoi ne pas utiliser la bibliothèque Open Source Python NLP, à savoir NLTK.org ??


@William, oui j'aime NLTK. Mais être nouveau pour Chatbots et NLP en général, j'aimerais savoir ce que je suis. Mon sentiment optimiste est "Oh, ok je vais simplement utiliser des modules NLTK et être fait en dîner!" Je dois manquer quelque chose et je veux savoir ce qui précise.


3 Réponses :


0
votes

regarder Luis.ai (de Microsoft). Cela vous aidera à construire un modèle de languous naturel qui identifie des intentions. Vous pouvez cartographier des intentions d'actions. Il vous permet d'inclure des modèles NLP préconfigurés afin que votre bot puisse déchiffrer de texte et des entités de retour (noms, temps, géographie, etc.) et Luis prend en charge de nombreuses langues. Vous pouvez bien sûr ajouter vos propres entités.

Et puis vous l'entraînez avec des énoncés. Et lorsque les utilisateurs parlent à votre bot, ces énoncés sont stockés en ligne et Luis.ai qui suggéreront d'ajouter certains pour affiner votre modèle via sa fonctionnalité suggérée (cela permet d'améliorer les améliorations supplémentaires sans codage). Maintenant pour le codage ...

Visitez Luis.ai et lorsque vous construisez votre modèle (gratuit), vous pouvez le tester via la console de test ici: https://dev.projectoxford.ai/docs/services puis pouvez utiliser leur cadre de bot; Cependant, je construis moi-même en JQuery / Bootstrap (regardez cela pour voir ce que je consomme ici ici http://onlinebotbuilder.com ) et gérer le JSON du serveur via un poste à l'API de services cognitifs (que vous feriez à Python). Actuellement, ils permettent des énonciations de 10 000 par mois; qui pour le test est beaucoup. Conseil: lors de la création de votre modèle Commencez avec 2 intention de former votre modèle pour identifier ceux-ci. Gardez-le simple, puis développez la portée comme vous allez. J'espère que cela t'aides.


0 commentaires

3
votes

Vous semble avoir fait votre travail à la maison. Comme vous l'avez dit, les choses suivantes vous aideront sur le chemin,

  • Tout algorithme de classification pour identifier l'intention telle que le classificateur LINEARSVC ou LogisticRegrression de Sklearn
  • tout bon outil NER tel que Stanfordner ou CRFSuite. CRFSUITE a facile à utiliser Pthon Eppostic appelé PycRFSuite.
  • Un outil d'analyse de sentiment pour des conversations plus humaines. C'est mieux si vous allez avec Python parce que Python a beaucoup de bibliothèques libres pour la même chose.

    Seul le bénéfice des services tels que WIT.AI ou API.AI est leur fortement formé prêt à utiliser des intentions et des modèles. Vous pourrez également faire une précision similaire si vous êtes en mesure de fournir une quantité décente d'entraînement à votre bot.

    C'est mieux si vous construisez sur certaines bibliothèques OpenSource existantes plutôt que de tout construire à partir de zéro. Veuillez Vérifiez mon projet OpenSource sur github pour wit.ai/adi.ai interface similaire. Codage heureux!


0 commentaires

0
votes

Deux choses à réfléchir sont: comment comptez-vous gérer le côté de la génération des choses? L'extraction d'entité et la classification vont être utiles pour la compréhension des langues naturelles (NLU) des choses, mais la génération peut être délicate en soi.

Une autre chose à penser est que la formation et le développement du pipeline de ces modèles sont souvent un problème distinct formant le déploiement. Le fait que vous souhaitiez utiliser le nœud suggère que vous connaissez déjà du déploiement de logiciels, je pense. Mais rappelez-vous que le déploiement de grands modèles d'apprentissage de la machine dans un pipeline peut être compliqué, et je soupçonne que ces API peuvent offrir des pipelines soigneusement emballés pour vous.


0 commentaires