1

Ich teste Watson Conversation API mit einem möglichen Dialog, den mein Unternehmen erstellen möchte. Wir entwickeln mit brasilianischem Portugiesisch. Angesichts der Portugiesen ist eine reiche Sprache und manchmal können die Benutzer Fehler machen, wir wollen diese möglichen Fehler, vor allem mit besonderen Zeichen und Akzenten vorhersagen.Unterstützt watson conversation intents und entities reguläre Ausdrücke?

Für Probe das Wort produção kann wie von den Benutzern geschrieben werden: produção, producao, produçao, producão. Ist es möglich, einen regulären Ausdruck auf den Absichten und Entitäten zu haben, um etwas wie das folgende Bild zu haben? Manchmal haben wir ein anderes Wort ein Gefühl liek machen produção final, produção geral, produção passada usw.

enter image description here

Eine weitere kurze Frage ist möglich Beispiele auf Absichten zu schaffen, mit Einheiten Wert verschmelzen, so etwas wie @(producao) mit (wie Bild)

Danke

Antwort

3

Sie keine regulären Ausdrücke in Absichten oder Einheiten verwenden können, aber ich glaube, Sie noch in der Lage mit Variationen zu bewältigen sein sollten.

Es gibt derzeit keine eingebaute Tippfehler- oder Akzentnormalisierung, wenn Übereinstimmungsabsichten gefunden werden. Wenn jedoch genügend Funktionen in einem Satz zum Anpassen vorhanden sind, sollte der gelegentliche Tippfehler keine Probleme verursachen. Bei sehr kurzen Beispielen kann es nützlich sein, zusätzliche Beispiele für häufige Fehler hinzuzufügen.

Für Entitäten können Sie Synonyme einschließen, und ich habe das verwendet, um häufige Fehler vor zu enthalten.

Sie sollten nicht versuchen, einen Verweis auf eine Entität direkt in Ihren Absichten aufzunehmen. Zum Beispiel sollten Sie anstelle von Qual a @(producao) einfach Qual a produção zusammen mit anderen Beispielen der gleichen Absicht haben, vielleicht mit verschiedenen Entitäten oder verschiedenen Synonymen für dieselbe Entität. Zum Beispiel könnte ich die folgenden Beispiele für eine # Richtung Anweisungen haben ...

  • Wie komme ich mit dem Auto zum Hotel?
  • Können Sie mir eine Wegbeschreibung zum Hotel auf der Straße geben?
  • Welches ist die nächste Station, wenn ich mit dem Zug reise
  • Welche Buslinie bringt mich zum Hotel?

Zusammen mit Werten wie Auto, Bus, Bahn, Fahrrad, etc. für eine @transport Entität. (Entschuldigung, ich kann kein brasilianisches Portugiesisch angeben!) Es ist nicht notwendig, die Entität/Entitäten, die Sie in einer Absicht erwarten, explizit zu benennen.

Und schließlich können Sie reguläre Ausdrücke in Bedingungen auf Dialog Knoten verwenden, zum Beispiel ...

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

+0

@ felipe-Oriani offenbar ist es nicht currnetly jeder in der Handhabung von Tippfehlern oder Akzent gebaut normalization- I‘ Ich werde meine Antwort aktualisieren –

1

Sie nicht über Akzent kümmern müssen, Plural oder falsch geschriebenes Wort. Watson, LUIS, API.AI usw. nehmen dies als Funktionen und arbeiten für jedes Wort.Zum Beispiel:

Cartão de Crédito>K artão de Crédito> Warenkorb ein o de cre b ito

Alle diese Werke in Ordnung!

2

In diesem Fall, nur für die Ergänzung und mehr Bits des Wissens, vor ein paar Tagen veröffentlicht IBM Watson Conversation eine neue Beta-Version für die Verwendung Patterns.

Mit Mustern in @Entities können Sie reguläre Ausdrücke verwenden.

Im Feld Muster können Sie spezifische Muster für eine Entität definieren Wert. Ein Muster muss als regulärer Ausdruck in das Feld eingegeben werden.

Wie in diesem Beispiel für entity "Contact", die Muster für Telefon, können E-Mail-Werte wie folgt definiert werden:

Beispiele:

  • Localphone: (\d{3})-(\d{4}), z.B. 426-4968

  • fullUSphone: (\d{3})-(\d{3})-(\d{4}), z.B. 800-426-4968

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

Oft, wenn Muster Entitäten verwendet wird, wird es notwendig sein, den Text zu speichern, die das Muster in einem Kontextvariable (oder Aktionsvariable) entspricht, aus Ihrem Dialogbaum.

Stellen Sie sich einen Fall vor, in dem Sie einen Benutzer nach seiner E-Mail-Adresse fragen. Die Dialogknotenbedingung enthält eine ähnliche Bedingung wie @contactInfo:email. Um die vom Benutzer eingegebenen E-Mail als Kontextvariable zuzuordnen, die folgende Syntax verwendet werden, um die Musterübereinstimmung innerhalb der Dialogknotens Antwortabschnittes zu erfassen:

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

Obs .: Der Mustervergleich Motor angestellt Der Conversation-Dienst verfügt über einige Syntaxeinschränkungen, die erforderlich sind, um Leistungsbedenken zu vermeiden, die bei der Verwendung anderer Engines für reguläre Ausdrücke auftreten können. Bemerkenswerterweise Entität Muster enthalten kann nicht:

  • Positive Wiederholungen (beispielsweise x * +)
  • Rückverweise (z.B. \ g1)
  • Bedingte Verzweigungen (z.B. (?(Ltg) true))

Sehen Sie mehr über Defining Entities in Watson Conversation (konzentriert in Schritt 7)