1

Je teste API de conversation Watson avec une boîte de dialogue possible mon entreprise veut créer. Nous développons avec le portugais brésilien. Étant donné que le portugais est une langue riche et parfois les utilisateurs peuvent faire des erreurs, nous voulons prédire ces erreurs possibles, principalement avec des caractères spéciaux et des accents.Est-ce que les intentions et les entités de conversation watson supportent les expressions régulières?

Pour exemple, le mot produção peut être écrit par les utilisateurs comme: produção, producao, produçao, producão. Est-il possible d'avoir une expression régulière sur les intentions et les entités pour avoir quelque chose comme l'image ci-dessous? Parfois, nous avons un autre mot pour faire un liek sens produção final, produção geral, produção passada, etc.

enter image description here

Une autre question rapide, il est possible de créer des exemples sur les intentions de fusionner avec les valeurs des entités, en utilisant quelque chose comme @(producao) (comme l'image)?

Merci

Répondre

3

Vous ne pouvez pas utiliser des expressions régulières dans les intentions ou entités mais je pense que vous devriez toujours être en mesure de faire face aux variations.

Il n'y a actuellement aucune prise en charge des fautes de frappe ou de la normalisation des accents lors de la correspondance des intentions, mais s'il y a suffisamment de caractéristiques dans une phrase, la faute de frappe occasionnelle ne devrait pas poser de problème. Pour de très courts exemples, il peut être utile d'ajouter des exemples supplémentaires pour des erreurs courantes.

Pour les entités, vous pouvez inclure des synonymes et j'ai utilisé que pour inclure des erreurs communes avant.

Vous ne devriez pas essayer d'inclure une référence à une entité directement dans vos intentions. Par exemple, plutôt que Qual a @(producao) vous devriez juste avoir Qual a produção, ainsi que d'autres exemples de la même intention, peut-être avec des entités différentes, ou différentes synonymes de la même entité. Par exemple, je pourrais avoir les exemples suivants pour une intention #directions ...

  • Comment me rendre à l'hôtel en voiture?
  • Pouvez-vous me donner des directives à l'hôtel par la route?
  • Quelle est la station la plus proche si je voyage en train
  • Quelle ligne de bus me conduira à l'hôtel? Avec des valeurs telles que voiture, bus, train, bicyclette, etc. pour une entité @transport.

(Désolé, je ne peux pas donner un exemple de portugais brésilien!) Il n'est pas nécessaire de nommer explicitement l'entité/les entités que vous vous attendez à trouver dans une intention.

Et enfin, vous pouvez utiliser des expressions régulières dans des conditions sur les nœuds de dialogue, par exemple ...

input.text.matches('produ[cç][aã]o')

+0

@ apparemment il felipe-oriani n'est pas currnetly tout construit dans le traitement des fautes de frappe ou accent normalization- I » ll mettra à jour ma réponse –

1

vous ne avez pas besoin à vous soucier de l'accent, mot pluriel ou mal orthographié. Watson, LUIS, API.AI et ainsi de suite prennent cela comme caractéristiques et fonctionne pour chaque mot.Par exemple:

Cartão de Crédito>K ARTAO de Crédito> panier un o de cre b ito

Toutes ces belles œuvres!

2

Dans ce cas, juste pour le complément et plus de bits de connaissance, il y a quelques jours, IBM Watson Conversation a publié une nouvelle version bêta à utiliser Patterns. Avec les motifs dans @Entities, vous pouvez utiliser des expressions régulières.

Le champ Motifs vous permet de définir des motifs spécifiques pour une entité . Un motif doit être entré comme une expression régulière dans le champ.

Comme dans cet exemple, pour l'entité "ContactInfo", les modèles pour téléphone, les valeurs de messagerie peuvent être définies comme suit:

Exemples:

  • LOCALPHONE: (\d{3})-(\d{4}), par exemple 426-4968

  • fullUSphone: (\d{3})-(\d{3})-(\d{4}), par exemple, 800-426-4968

  • email: \b[A-Za-z0-9._%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,}\b, par exemple [email protected]

souvent lors de l'utilisation des entités de motif, il sera nécessaire de stocker le texte qui correspond au modèle dans une variable de contexte (ou variable d'action), à partir de votre arbre de dialogue. Imaginez un cas où vous demandez à un utilisateur son adresse e-mail. La condition de nœud de dialogue contiendra une condition similaire à @contactInfo:email. Pour affecter le courriel indiqué par l'utilisateur comme une variable de contexte, la syntaxe suivante peut être utilisée pour capturer le match de motif à l'intérieur de la section de réponse du nœud de dialogue:

{ 
    "context" : { 
     "email": "@contactInfo.literal" 
    } 
} 

Obs Le moteur correspondant de modèle employé par Le service de conversation a certaines limitations de syntaxe, qui sont nécessaires afin d'éviter les problèmes de performances qui peuvent se produire lors de l'utilisation d'autres moteurs d'expressions régulières. En particulier, les modèles d'entités ne peuvent pas contenir:

  • répétitions positives (par exemple, x *) +
  • (par exemple, des backreferences \ g1)
  • branches conditionnelles (par exemple, (?(Cond) true))

En savoir plus sur Defining Entities dans Conversation Watson (concentré à l'étape 7)