Wolfram 语言

文本和语言处理

定义语法规则

构建自己的自然语言处理界面,将强大的内置语法 token 和 Interpreter 框架规则与自定义的语法 token 和规则相结合. 将界面部署于 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 地理功能对其进行处理.

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

添加自定义的语法 token "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]=

组合使用 AnyOrderFixedOrder 可以对起点和终点进行正确的解析.

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 ru