选区树解析器(语言学分析 API)
Parser for Constituency Tree (Linguistics Analysis API)
我正在使用 Microsoft 的语言学 API。我正在尝试从返回的树中提取特定的标记。我在任何文档中都没有看到任何类型的用于遍历树的解析器...
我考虑过的一种方法是使用 Stanford NLP 解析器,但它似乎对我的需要来说有点矫枉过正。
是否有我可以使用的现有解析器?
这是返回的示例数据。例如,我可以用什么来提取 "NNP" (Tom)
[{
"analyzerId": "4FA79AF1-F22C-408D-98BB-B7D7AEEF7F04",
"result": [ ["NNP",",","NNP","."], ["WRB","VBP","PRP","NN","."] ] },
{
"analyzerId": "22A6B758-420F-4745-8A3C-46835A67C0D2",
"result":["(TOP (S (NNP Hi) (, ,) (NNP Tom) (. !)))","(TOP (SBARQ (WHADVP (WRB How)) (SQ (VP (VBP are)) (NP (PRP you)) (NN today) (. ?))))"] }]
在以下位置找到我的解析器到树(和往返)源代码:
https://github.com/BSalita/Woundify/blob/master/WoundifyShared/ParseHelpers.cs
ParseHelpers 是 Woundify 项目中的一个文件。该项目的功能之一是演示调用和使用来自所有领先 AI 服务提供商(Microsoft、Google、HPE、IBM、Wit、Hound 等)的 API。
我编辑了 command.cs 文件中的用法片段:
foreach (Newtonsoft.Json.Linq.JToken s in arrayOfResults)
{
ConstituencyTreeNode root = ParseHelpers.ConstituencyTreeFromText(s.ToString());
text = ParseHelpers.TextFromConstituencyTree(root); // roundtrip
if (text != s.ToString()) // original and roundtrip must compare equal
throw new FormatException();
string words = ParseHelpers.WordsFromConstituencyTree(root);
string[] printLines = ParseHelpers.FormatConstituencyTree(root);
foreach (string p in printLines)
Console.WriteLine(p);
}
我正在使用 Microsoft 的语言学 API。我正在尝试从返回的树中提取特定的标记。我在任何文档中都没有看到任何类型的用于遍历树的解析器...
我考虑过的一种方法是使用 Stanford NLP 解析器,但它似乎对我的需要来说有点矫枉过正。
是否有我可以使用的现有解析器?
这是返回的示例数据。例如,我可以用什么来提取 "NNP" (Tom)
[{
"analyzerId": "4FA79AF1-F22C-408D-98BB-B7D7AEEF7F04",
"result": [ ["NNP",",","NNP","."], ["WRB","VBP","PRP","NN","."] ] },
{
"analyzerId": "22A6B758-420F-4745-8A3C-46835A67C0D2",
"result":["(TOP (S (NNP Hi) (, ,) (NNP Tom) (. !)))","(TOP (SBARQ (WHADVP (WRB How)) (SQ (VP (VBP are)) (NP (PRP you)) (NN today) (. ?))))"] }]
在以下位置找到我的解析器到树(和往返)源代码:
https://github.com/BSalita/Woundify/blob/master/WoundifyShared/ParseHelpers.cs
ParseHelpers 是 Woundify 项目中的一个文件。该项目的功能之一是演示调用和使用来自所有领先 AI 服务提供商(Microsoft、Google、HPE、IBM、Wit、Hound 等)的 API。
我编辑了 command.cs 文件中的用法片段:
foreach (Newtonsoft.Json.Linq.JToken s in arrayOfResults)
{
ConstituencyTreeNode root = ParseHelpers.ConstituencyTreeFromText(s.ToString());
text = ParseHelpers.TextFromConstituencyTree(root); // roundtrip
if (text != s.ToString()) // original and roundtrip must compare equal
throw new FormatException();
string words = ParseHelpers.WordsFromConstituencyTree(root);
string[] printLines = ParseHelpers.FormatConstituencyTree(root);
foreach (string p in printLines)
Console.WriteLine(p);
}