Язык Wolfram Language

Обработка текста и языка

Определение грамматических правил

Создайте свой собственный интерфейс обработки естественного языка, объединив мощные встроенные грамматические лексемы и правила системы Interpreter с Вашими собственными грамматическими лексемами и правилами. Затем разверните интерфейс в облаке Wolfram Cloud для дальнейшего использования с такими функциями, как GrammarApply.

Используйте встроенный интерпретатор типа "City" для создания программы грамматического разбора для списка названий городов с различными разграничителями и разверните их в облаке.

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

Примените программу грамматического разбора к строке, содержащей несколько городов США и возвращающей список соответствующих объектов Entity.

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

Теперь они могут быть обработаны, используя функциональные возможности Wolfram Geo.

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

Добавьте Ваши собственные грамматические лексемы "Route", "Origin" и "Destination".

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

Комплексное применение AnyOrder и FixedOrder позволяет грамматический разбор пункта отправления и пункта назначения в обоих порядках.

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

Родственные примеры

de en es fr ja ko pt-br zh