Définissez des règles de grammaire
Créez votre propre interface de traitement du langage naturel, en combinant les puissants éléments et règles de grammaire intégrés du cadre Interpreter avec vos propres éléments et règles de grammaire personnalisés. Déployez ensuite l'interface dans Wolfram Cloud pour une utilisation ultérieure dans des fonctions telles que GrammarApply.
Utilisez le type d'interprète intégré "City" afin de construire un analyseur syntaxique pour une liste de noms de villes avec différents délimiteurs et déployez-le dans le cloud.
![Click for copyable input](assets.fr/define-grammar-rules/In_107.png)
citiesGrammar = CloudDeploy[
GrammarRules[{
cs : DelimitedSequence[GrammarToken["City"], "," | ";" | "and"] :>
cs
}]
]
Appliquez l'analyseur syntaxique à une chaîne de caractères contenant plusieurs villes des États-Unis, en renvoyant une liste d'objets Entity respectifs.
![Click for copyable input](assets.fr/define-grammar-rules/In_108.png)
GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"]
![](assets.fr/define-grammar-rules/O_70.png)
Ils peuvent maintenant être traités par la fonctionnalité géographique de Wolfram.
![Click for copyable input](assets.fr/define-grammar-rules/In_109.png)
GrammarApply[citiesGrammar, "Saint Louis; New York, LA and Dallas"];
GeoListPlot[%, GeoLabels -> Automatic,
GeoBackground -> "CountryBorders", GeoRange -> "Country"]
![](assets.fr/define-grammar-rules/O_71.png)
Ajoutez vos propres mots-clés grammaticaux "Route", "Origin" et "Destination" et définissez des règles pour chacun d'entre eux.
![Click for copyable input](assets.fr/define-grammar-rules/In_110.png)
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
}
]
]
L'utilisation combinée d'AnyOrder et FixedOrder permet une analyse correcte de l'origine et de la destination dans les deux ordres.
![Click for copyable input](assets.fr/define-grammar-rules/In_111.png)
GrammarApply[routeGrammar, "from NYC to LA"]
![](assets.fr/define-grammar-rules/O_73.png)
![Click for copyable input](assets.fr/define-grammar-rules/In_112.png)
GrammarApply[routeGrammar, "to LA from NYC"]
![](assets.fr/define-grammar-rules/O_74.png)