在浏览器中渲染语言语法树

dsg*_*dsg 10 javascript rendering nlp linguistics

输入是:

(1)带有标记内部节点的树的括号表示,例如:

(S (N John) (VP (V hit) (NP (D the) (N ball))))
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

(线是否为虚线以及标题是否存在并不重要.)

或输入可能是:

(2)对没有标签的单词进行包围,例如:

((John) ((hit) ((the) (ball))))
Run Code Online (Sandbox Code Playgroud)

输出与上面相同(这次没有内部标签,只有树形结构).

输入的另一个组成部分是树是标记为(1)还是未标记为(2).


我的问题:在javascript中在浏览器中呈现这些树的最佳方式(最快的开发时间)是什么?一切都应该发生在客户端.

我想象一个简单的界面只有一个文本框(和一个单选按钮,指定它是否是标记的树),当更改时,触发树渲染(如果输入没有任何语法错误).

msh*_*ang 9

我不确定stackoverflow上的自插件策略是什么.如果违反规则我会道歉.

你有没有看到我的解决方案?mshang.ca/syntree

这不完全是你想要的,但如果有帮助,你可以自由地窃取代码.

  • 这太棒了.除了方括号作为成分标记之外,你能否接受括号括号?例如:我希望能够使用`(S(NP This)(VP(V is)(^ NP a wug)))`来渲染示例树. (2认同)

Kha*_*rul 4

实际上有一个服务器端库可以将括号表示转换为树, phpsyntaxtree您可以使用jsdraw2d
等 javascript 图形库重新实现它们,或者使用 HTML5 画布在 javascript 上滚动。

10 个最佳 Javascript 绘图和画布库