Defina regras gramaticais
Construa sua própria interface de processamento de linguagem natural, combinando os poderosos elementos e regras gramaticais do framework Interpreter com seus próprios elementos e regras gramaticais. Depois implemente a interface na Wolfram Cloud para ser usada em funções como GrammarApply.
Use o tipo de intérprete integrado "City" para construir um analisador para uma lista de nomes de cidades com diferentes delimitadores e implemente-o na nuvem.

citiesGrammar = CloudDeploy[
GrammarRules[{
cs : DelimitedSequence[GrammarToken["City"], "," | ";" | "and"] :>
cs
}]
]
Aplique o analisador a uma cadeia de caracteres que contenha várias cidades nos Estados Unidos, resultando uma lista de respectivos objetos Entity.

GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"]

Agora eles podem ser processados pelo recurso Wolfram Geo.

GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"];
GeoListPlot[%, GeoLabels -> Automatic,
GeoBackground -> "CountryBorders", GeoRange -> "Country"]

Adicione seus próprios elementos gramaticais "Route", "Origin", e "Destination" e defina regras gramaticais para eles.

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
}
]
]
O uso combinado de AnyOrder e FixedOrder permite análise correta de origem e destino nas duas ordens.

GrammarApply[routeGrammar, "from NYC to LA"]


GrammarApply[routeGrammar, "to LA from NYC"]
