Grammatikregeln definieren
Erzeugen Sie Ihre eigene Schnittstelle zur Verarbeitung natürlicher Sprache, indem Sie die leistungsstarken integrierten Grammatiktokens und -regeln des Interpreter-Frameworks mit Ihren eigenen Grammatikregeln kombinieren. Stellen Sie die Schnittstelle anschließend in der Wolfram Cloud zur weiteren Verwendung mit Funktionen wie GrammarApply bereit.
Verwenden Sie den eingebauten "City"-Interpretertyp, um einen Parser für Städtenamen mit unterschiedlichen Delimitern zu erstellen. Stellen Sie den Parser anschließend in der Cloud bereit.
citiesGrammar = CloudDeploy[
GrammarRules[{
cs : DelimitedSequence[GrammarToken["City"], "," | ";" | "and"] :>
cs
}]
]
Wenden Sie den Parser auf einen String, der mehrere US-Städte enthält, an. Eine Liste entsprechender Entity-Objekte wird zurückgegeben.
GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"]
Nun können die Entitäten mit Wolframs geografischen Funktionalitäten bearbeitet werden.
GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"];
GeoListPlot[%, GeoLabels -> Automatic,
GeoBackground -> "CountryBorders", GeoRange -> "Country"]
Fügen Sie Ihre eigenen Grammatiktokens "Route", "Origin" und "Destination" hinzu und definieren Sie Regeln für diese.
routeGrammar = CloudDeploy[
GrammarRules[{GrammarToken["Route"], GrammarToken["Origin"],
GrammarToken["Destination"]},
{
"Route" ->
AnyOrder[start : GrammarToken["Origin"],
end : GrammarToken["Destination"]] :> (start -> end),
"Origin" ->
FixedOrder["from", loc : GrammarToken["City"]] :> loc,
"Destination" ->
FixedOrder["to", loc : GrammarToken["City"]] :> loc
}
]
]
Die kombinierte Verwendung von AnyOrder und FixedOrder erlaubt das korrekte Parsen von Start (Origin) und Ziel (Destination) in beiden Reihenfolgen.
GrammarApply[routeGrammar, "from NYC to LA"]
GrammarApply[routeGrammar, "to LA from NYC"]