Wolfram Language

Text- und Sprachverarbeitung

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.

In[1]:=
Click for copyable input
citiesGrammar = CloudDeploy[ GrammarRules[{ cs : DelimitedSequence[GrammarToken["City"], "," | ";" | "and"] :> cs }] ]
Out[1]=

Wenden Sie den Parser auf einen String, der mehrere US-Städte enthält, an. Eine Liste entsprechender Entity-Objekte wird zurückgegeben.

In[2]:=
Click for copyable input
GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"]
Out[2]=

Nun können die Entitäten mit Wolframs geografischen Funktionalitäten bearbeitet werden.

In[3]:=
Click for copyable input
GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"]; GeoListPlot[%, GeoLabels -> Automatic, GeoBackground -> "CountryBorders", GeoRange -> "Country"]
Out[3]=

Fügen Sie Ihre eigenen Grammatiktokens "Route", "Origin" und "Destination" hinzu und definieren Sie Regeln für diese.

In[4]:=
Click for copyable input
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 } ] ]
Out[4]=

Die kombinierte Verwendung von AnyOrder und FixedOrder erlaubt das korrekte Parsen von Start (Origin) und Ziel (Destination) in beiden Reihenfolgen.

In[5]:=
Click for copyable input
GrammarApply[routeGrammar, "from NYC to LA"]
Out[5]=
In[6]:=
Click for copyable input
GrammarApply[routeGrammar, "to LA from NYC"]
Out[6]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh