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"]
