2016-07-16 6 views
3

Gibt es Open-Source-Bibliotheken, die wie Amazon Alexa Custom Skills funktionieren, wo Sie es mit einem Intent-Schema und Beispieläußerungen versehen und es wird ein geparstes Tokenized bereitstellen Antwort mit Entitäten, die in der Definition übereinstimmen.Open-Source-Bibliothek zum Parsen von Text für Intent und Entitäten wie Alexa Custom Skills

Hier ist ein Beispiel Alexa Custom Skill Intent-Schema.

https://github.com/amzn/alexa-skills-kit-js/blob/master/samples/ChemistryFlashCards/speechAssets/IntentSchema.json

Beispiel Äußerungen zu trainieren und zu bestimmen, wie Text anzupassen und zu Entitäten Karte:

AnswerIntent the answer is {Answer} 
AnswerIntent my answer is {Answer} 
AnswerIntent is it {Answer} 
AnswerIntent {Answer} is my answer AnswerOnlyIntent {Answer} 

AMAZON.StartOverIntent start game 
AMAZON.StartOverIntent new game 
AMAZON.StartOverIntent start 
AMAZON.StartOverIntent start new game 

Ein weiterer Service ist https://wit.ai/, die Sie Ausdrücke und Token konfigurieren können auf übereinstimmen, gibt es eine Open-Source-Bibliothek, die diese Flexibilität bietet.

+1

Check out https://adapt.mycroft.ai - ich weiß nicht, wie mächtig es ist. –

Antwort

2

Mycroft AI scheint einen netten Stapel von Projekten zu haben, die Funktionalität und Programmierschnittstelle sehr ähnlich zu Amazon Alexa Custom Skills bieten, und Sie können sie selbst hosten und modifizieren, um mehr Flexibilität als Alexa Voice Service zu bekommen (aber das ist auch ein bisschen von einem Nachteil, weil Sie es selbst skalieren müssen).

  • https://docs.mycroft.ai/skill.creation

  • https://mycroft.ai/projects/

    • Mycroft Core - ist die Technologie, die Verarbeitung natürlicher Sprache bindet, Text-to-Speech, Speech-to-Text und leistungsfähige APIs zusammen eine erstellen mächtige Erfahrung, die es Benutzern ermöglicht, ihre intelligenten Geräte und das Internet der Dinge durch Sprachsteuerung zu manipulieren.
    • öffnen STT - Open-Source-Sprache-zu-Text-Modell (scheint, wie sie Hebel andere API für dieses Recht jetzt wie Google Speech sind in Text, Wit.ai und IBM Watson)
    • Adapt Intent Parser - Umwandlung von natürlichem Sprache in maschinenlesbare Datenstrukturen
    • Mimic Text To Speech - Text und liest es laut in hohen Qualität Stimme (nur ein Vorschlag Projekt derzeit noch nicht vorhanden)
0

Es gibt viele OSS-Parsing-Bibliotheken. Die meisten haben tatsächlich viel mehr Flexibilität als Alexa Äußerungsmuster, die nur reguläre Ausdrücke sind.

Sie können aus Bibliotheken auswählen, die auf NLP ausgerichtet sind, z. B. GATE, Stanford Core NLP, OpenNLP und NLTK. Wenn Sie mit großen Dokumentensammlungen arbeiten, ist Apache Lucene (oder Solr, wenn Sie bevorzugen) Dandy (obwohl GATE sie auch unterstützt).

Für etwas leichteres Gewicht können Sie allgemeine Parser Generator verwenden. Es gibt zu viele zu listen (https://en.wikipedia.org/wiki/Comparison_of_parser_generators) aber packrat Parser (http://bford.info/packrat/) wie Antlr sind performant und einfach zu bedienen.

0

Wenn ich dich richtig verstanden habe, möchtest du ein Muster zur Verfügung stellen, das mit möglichen Werten übereinstimmt, und die Bibliothek muss mögliche Äußerungslisten erzeugen. Wenn ja, gibt es ein alexa-app Projekt, mit dem Sie dies neben anderen Funktionen tun können. Es ist unter MIT, also ist es möglich, benötigten Code von dort zu leihen. Beispiel:

app.intent('sampleIntent', 
    { 
     "slots":{"NAME":"LITERAL","AGE":"NUMBER"}, 
     "utterances":[ "my {name is|name's} {names|NAME} and {I am|I'm} {1-100|AGE}{ years old|}" ] 
    }, 
    function(request,response) { ... } 
); 

Mögliche Äußerungen:

my name is John and I am 20 years old 
my name's John and I'm 40 
my name's Taylor and I'm 55 years old 
.... 
0

Vielleicht können Sie versuchen, Rasa-NLU. Es ist ziemlich ähnlich zu MS Luis. Sie können den Text auf strukturierte Daten analysieren wie

{ 
"entities": [ 
    { 
     "endIndex": null, 
     "entity": "hello", 
     "score": null, 
     "startIndex": null, 
     "type": "name" 
    } 
], 
"intents": [ 
    { 
     "intent": "greet", 
     "score": 0.640747175086514 
    }, 
    { 
     "intent": "goodbye", 
     "score": 0.2696910959582717 
    }, 
    { 
     "intent": "FindEmployeeLocation", 
     "score": 0.05672220244026073 
    }, 
    { 
     "intent": "FindEmployee", 
     "score": 0.032839526514953594 
    } 
], 
"query": "hello", 
"topScoringIntent": { 
    "intent": "greet", 
    "score": 0.640747175086514 
} 

Sie Ihr Sprachmodell als auch mit json oder Abschlag Format trainieren. Das Wichtigste ist, dass der Service Open Source ist. Es bedeutet, dass Sie kein zusätzliches Geld für die Verwendung bezahlen müssen. Sie richten einfach Ihren eigenen nlu-Server ein und verwenden ihn dann.

Verwandte Themen