Zusätzliche Sprachen
Im Folgenden finden Sie einige Best Practices für die Entwicklung digitaler Assistenten zur Unterstützung mehrerer Sprachen.
Die Anforderung, dass digitale Assistenten mehrere Sprachen unterstützen, ist sehr häufig und wirkt sich auf verschiedene Bereiche Ihres digitalen Assistenten und der Skillentwicklung aus. Die Unterstützung zusätzlicher Sprachen ist eine Implementierungsaufgabe, die über die Übersetzung von Benutzer- und Botnachrichten hinausgeht und auch in Ihrem Unterhaltungsdesign berücksichtigt werden muss, um regionale und kulturelle Unterschiede zu erfassen.
Sprachunterstützung wird auf Skill-Ebene konfiguriert und implementiert. Dazu gehören die Einstellung für den zu verwendenden Übersetzungstyp und die für den Übersetzungstyp erforderlichen Konfigurationen. Für Skills, die über einen digitalen Assistenten angezeigt werden, muss der digitale Assistent auch so konfiguriert werden, dass er mehrere Sprachen unterstützt.
Übersetzungsservice vs. mehrsprachige NLU
Oracle Digital Assistant bietet zwei Optionen für die Unterstützung mehrerer Sprachen in digitalen Assistenten.
-
Bei der Verwendung eines Übersetzungsservice müssen Sie einen Übersetzungsdienstschlüssel von Google oder Microsoft mit Ihrer Digital Assistant-Instanz konfigurieren. Eingehende Benutzernachrichten werden in die Basissprache übersetzt, die für einen Skill konfiguriert ist. Die Basissprache ist die Sprache, mit der Sie das Modell trainieren, was für Übersetzungsdienste am häufigsten Englisch ist. Der Vorteil der Nutzung von Übersetzungsdiensten besteht derzeit darin, dass sie mehr Sprachen unterstützt als die Unterstützung der Muttersprache.
-
Unterstützung der Muttersprache unterstützt eine geringere Anzahl von Sprachen direkt im Sprachmodell (natürliches Sprachverständnis - NLU), ohne dass ein Übersetzungsservice erforderlich ist. Während die integrierte Spracherkennung ohne weitere sprachspezifische Schulungen ziemlich gut ist, können Sie sie verfeinern, indem Sie Äußerungen für jede Sprache hinzufügen, die Sie unterstützen möchten. Bei Entitys müssen Sie Übersetzungsstrings für die Werte und Synonyme in Wertlistenentitys hinzufügen.
Die Entscheidung, welcher Ansatz verwendet werden soll, hängt von der Anzahl der Sprachen ab, die Sie in Ihrem digitalen Assistentenprojekt unterstützen müssen, dem unmittelbaren Bedarf für jede Sprache und davon, ob die Sprache als nativ unterstützte Sprache vorhanden ist oder nicht.
Es ist nicht möglich, Skills mit Übersetzungsservices mit Skills zu verwenden, die nativen NLU-Support im selben digitalen Assistenten verwenden. Daher sollte beim Erstellen des ersten Skills die Entscheidung getroffen werden, welche Übersetzungsoption für alle Skills in einem digitalen Assistenten verwendet werden soll.
Unsere Empfehlung ist, die native NLU-Sprachunterstützung zu verwenden, wenn möglich, da die Extraktion von Listenentitys besser unterstützt wird und das Verständnis für zusätzliche Sprachen optimiert werden kann, indem Beispieläußerungen für diese Sprache hinzugefügt werden.
Beide Übersetzungsoptionen unterstützen nicht-englische Sprache als Basissprache für das Training Ihrer Intent-Modelle und den Aufbau Ihrer Fähigkeiten.
Resource Bundles überall verwenden
Wir empfehlen die Verwendung von Resource Bundle-Zeichenfolgen für alle Botnachrichten und Prompts. Selbst wenn Sie einen Übersetzungsservice verwenden, um mehrere Sprachen in Ihrem Bot zu unterstützen, verwenden Sie keine Übersetzungsservices für ausgehende Nachrichten: Verwenden Sie immer Resource Bundles und verwenden Sie sie überall.
Warum Resource Bundles
Bei der Entwicklung digitaler Assistenten dreht sich alles um die Persona, die Sie dafür entwickelt haben. Die Persona definiert die Sprache, den Tonfall und die Einstellung eines digitalen Assistenten.
Um sicherzustellen, dass Ihr digitaler Assistent die von Ihnen entworfene Persona übernimmt, müssen Sie die Kontrolle über die ausgehenden Nachrichten des Bots für jede unterstützte Sprache behalten. Resource Bundles stellen einen zentralen Ort dar, an dem Sie Botnachrichten verwalten. So können Sie ganz einfach Konsistenz im Tonfall gewährleisten. Für die Erstellung digitaler Assistenten, die eine zweite Sprache unterstützen, gibt es keine realistische Alternative zu Resource Bundles zur Anzeige von Botnachrichten.
Informationen zu Resource Bundle-Strings
Resource Bundle-Zeichenfolgen werden deklarativ in Oracle Digital Assistant-Skills und digitalen Assistenten erstellt. Sie referenzieren sie aus Unterhaltungen, in Entitys und in Skillkonfigurationseinstellungen mit Apache FreeMarker-Ausdrücken. Um eine Meldungszeichenfolge zu referenzieren, verwenden Sie einen Ausdruck wie den folgenden:
${rb('message_key')}
rb referenziert die Resource Bundle-Definition und sucht nach einer Nachrichten-ID mit dem angegebenen Namen. Im obigen Beispiel wird nach einem Nachrichtenschlüssel mit dem Namen message_key gesucht.
Wenn kein Resource Bundle-Schlüsselname für die Sprache des Benutzers vorhanden ist, wird die für die Standardsprache (Basissprache) definierte Zeichenfolge verwendet. Wenn eine Meldungszeichenfolge für die Standardsprache fehlt, wird während des Laufzeittests eine Ausnahme ausgelöst.
Wenn Sie Daten an eine Nachricht übergeben müssen, die über ein Resource Bundle gedruckt wird, können Sie dies über positionale und benannte Parameter tun.
Positionsparameter: Hello {0}, {1}
Benannter Parameter: Hello {name}, {greeting}
Um Werte zu übergeben, die Sie aus Variablen lesen, die einer Unterhaltung hinzugefügt wurden, verwenden Sie einen Ausdruck wie den unten gezeigten.
Für Positionsparameter: ${rb('message_key',firstname.value, greetingMessage.value)}
Für benannte Parameter: ${rb('message_key','name,greeting',firstname.value, greetingMessage.value)}
Obwohl positionale Parameter einfacher zu verwenden scheinen, empfehlen wir, benannte Parameter zu verwenden, wenn möglich, da sie den Kontext für den Datentyp bereitstellen, der einer Nachricht hinzugefügt wird. Die Kenntnis des Kontextes erleichtert dem Übersetzer das Leben.
Benennungskonvention für Resource Bundle-Schlüsselnamen berücksichtigen
Umfassende Verwendung von Resource Bundles in Ihrem Skill bedeutet, dass sie aus Entitys, dem Dialogablauf sowie aus den Einstellungen für Skills und digitale Assistenten referenziert werden. Um die Suche nach Zeichenfolgenreferenzen in Resource Bundles in Ihrem Skill und digitalen Assistenten zu erleichtern, wird empfohlen, den Schlüsselnamen des Resource Bundles Kontext hinzuzufügen, indem eine Benennungskonvention implementiert wird.
Beispiel: Sie können die folgenden Namen für eine Fehlermeldung, eine Zweideutigkeitsmeldung und Prompts in einer Wertelistenentity verwenden:
-
list.<entity_name>.errorMessage -
list.<entity_name>.disambiguationMessage -
list.<entity_name>.prompt1 -
list.<entity_name>.prompt2
Bei einer Mischentity können Sie eine ähnliche Benennungsstruktur verwenden, aber den Namen des Mischentityelements hinzufügen:
-
cbe.<entity_name>.<bag_item_name>.errorMessage -
cbe.<entity_name>.<bag_item_name>.disambiguationMessage -
cbe.<entity_name>.<bag_item_name>.prompt1 -
cbe.<entity_name>.<bag_item_name>.prompt2
Wenn Sie eine Resource Bundle-Zeichenfolge aus der Eingabeaufforderung eines Dialogablaufstatus referenzieren oder wenn ein Dialogablaufstatus nur eine Benutzernachricht ausgibt, können Sie Folgendes verwenden:
-
<dialog_flow_state_name>
.prompt -
<dialog_flow_state_name>
.message
Bei globalen Elementen wie Paginierung oder Hilfeschaltflächen in einer Komponente "Allgemeine Antwort" können Sie eine Benennungskonvention verwenden, die nicht den Namen eines bestimmten Dialogablaufstatus enthält:
-
button.next -
button.previous -
button.cancel -
button.help
Es gibt keine strenge Regel, ob Sie die Punktnotation wie in den obigen Beispielen, Unterstrichen oder etwas Eigenes verwenden.
Resource Bundles für Stichwörter verwenden
Mit der Komponente "Allgemeine Antwort" können Sie Schlüsselwörter für Aktionselemente definieren, damit der Benutzer sie "virtuell drücken" kann, indem er das Schlüsselwort als Nachricht sendet. Schlüsselwörter sind besonders wichtig, wenn die Benutzeroberfläche es dem Benutzer nicht erlaubt, eine Taste zu drücken (z. B. bei der Verwendung von Nur-Text-Kanälen oder Sprache).
Als sanfte, aber offensichtliche Erinnerung wird "Submit" nicht auf Deutsch, Portugiesisch, Französisch, Arabisch und allen anderen Sprachen, die Sie mit Ihrem Bot unterstützen, als "Submit" bezeichnet. Es ist daher gut zu wissen, dass die Eigenschaft keyword von Aktionspunkten in der Komponente "Gemeinsame Antwort" aus einem Resource Bundle-Schlüssel gelesen werden kann. Die Resource Bundle-Nachricht ist eine durch Komma getrennte Liste der Schlüsselwörter, die Sie verwenden möchten.
ICU-Nachrichtenformat verwenden
Zusätzlich zu benannten Parametern, die Sie einer Resource Bundle-Nachricht hinzufügen, gibt es eine Reihe anderer Optionen, mit denen Sie bestimmte Bedingungen beim Übersetzen von Nachrichten verarbeiten können. Beispiel: Die Nachricht, die Sie für mehrere Artikel drucken, unterscheidet sich normalerweise von der Nachricht, die Sie drucken, wenn ein einzelner Artikel bestellt oder versendet wird.
ICU, die für International Components for Unicode steht, ist eine Sprachformatierungssyntax, die von Nachrichtenpaketen in Oracle Digital Assistant unterstützt wird. Mit dieser Syntax können Sie sehr flexible Nachrichten schreiben, die es einfach machen, sprachspezifische und regionale Unterschiede auf Botnachrichten anzuwenden.
Zunächst kann es ausreichend sein, die ICU-Nachrichtensyntax für die Verarbeitung von Nachrichten mit Singular- und Pluralwertreferenzen und für Nachrichten zu verwenden, die sich aufgrund von Bedingungen wie dem Geschlecht des Benutzers ändern, der mit dem digitalen Assistenten arbeitet.
Auswirkungen der Zweitsprachenunterstützung auf den Bot Persona
Es ist nicht erforderlich, die Persona des digitalen Assistenten für eine bestimmte Sprache zu ändern. Wenn jedoch regionale oder kulturelle Unterschiede eine Änderung der Einstellung, Stimme oder Formulierung der Botpersona erfordern, ist es legitim, diese Änderungen anzuwenden. Das Ziel eines digitalen Assistenten ist es, Benutzer zu erfreuen und einzubinden, was auch bedeutet, dass er sich an regionale Gewohnheiten anpassen muss.
Sie können Resource Bundles im ICU-Format verwenden, um Nachrichten je nach Region zu ändern. Sie können dies tun, indem Sie ein Argument an das Resource Bundle übergeben, um eine Region zu identifizieren, für die Sie die Botpersona anpassen müssen, und das ICU-Nachrichtenformat verwenden, um eine andere Nachricht als die anzuzeigen, die andernfalls angezeigt würde.
Beispiel: Regionale Unterschiede in Nachrichten behandeln
Dieses Resource Bundle-Nachrichtenbeispiel erwartet, dass das Argument region beim Referenzieren des Resource Bundle-Schlüsselnamens übergeben wird. Im Beispiel werden die Werte, die unterschiedlich behandelt werden sollen, als region1 und region2 definiert. Sie können diese Werte beliebig einstellen, z.B. auf einen Ländercode.
{region, select,
region1 {message for region 1}
region2 {message for region 2}
other {message for all other regions}
}Um die Nachricht im Resource Bundle für eine der Regionen zu referenzieren, verwenden Sie den folgenden Ausdruck in der Dialogablauf-, Entity- oder Skillkonfiguration:
${rb('the_key_name','region','<VARIABLE_CONTAINING_REGION_VALUE>.value')}<VARIABLE_CONTAINING_REGION_VALUE> muss durch einen Variablennamen in Ihrem Skill ersetzt werden, der den Wert enthält, für den Sie eine andere Nachricht definiert haben.
Checkliste für zusätzliche Sprachen
- ☑ Entscheiden Sie, ob Sie Übersetzungsservices oder native Sprachunterstützung verwenden, bevor Sie Ihre Fähigkeiten aufbauen.
- ☑ Stellen Sie sicher, dass alle Skills, die Sie einem digitalen Assistenten hinzufügen möchten, denselben Sprachunterstützungstyp verwenden.
- ☑ Verwenden Sie Resource Bundles für alle Prompts und Nachrichten, die von Ihrem Bot angezeigt werden.
- ☑ Verwenden Sie benannte Parameter, wenn Sie dynamische Daten an eine Resource-Bundle-Nachricht übergeben.
- ☑ Verwenden Sie das ICU-Nachrichtenformat für Pluralmeldungen in Nachrichten und für Nachrichten, die sich basierend auf einer Bedingung ändern.
- ☑ Verwenden Sie Resource Bundle-Referenzen beim Erstellen von Schlüsselwörtern.
- ☑ Verwenden Sie das Feld "Annotation" der Resource Bundle-Zeichenfolge, um dem Übersetzer zusätzliche Informationen zur Bedeutung und Verwendung einer Zeichenfolge sowie optional zur Übersetzung der Nachricht bereitzustellen.
- ☑ Verstehen Sie regionale und kulturelle Unterschiede.
Weitere Informationen
- Oracle Design Camp-Video: Internationalisierung (I18n) Conversation Design
- Oracle Design Camp-Video: Mehrsprachige NLU
- Oracle Design Camp-Video: Resource Bundles wie ein Profi verwenden
- TechExchange: Beispielcode für Resource Bundle und ICU-Format
