Визуализировать дерево лингвистического синтаксиса в браузере - PullRequest
10 голосов
/ 05 марта 2012

Ввод либо:

(1) представление дерева в квадратных скобках с помеченными внутренними узлами, такие как:

(S (N John) (VP (V hit) (NP (D the) (N ball))))

с выводом:

enter image description here

(не являются ли строки пунктирными и присутствует ли заголовок, не имеет значения.)

Или ввод может быть:

(2) заключение в скобки для слов без меток, например:

((John) ((hit) ((the) (ball))))

с выводом, аналогичным приведенному выше (на этот раз без внутренних меток, только древовидная структура).

Другой компонентвходные данные - обозначено ли дерево как в (1) или нет, как в (2).


Мой вопрос: Каков наилучший способ (самое быстрое время разработки)визуализировать эти деревья в браузере в JavaScript?Все должно происходить на стороне клиента.

Я представляю себе простой интерфейс с просто текстовым полем (и переключателем, указывающим, является ли он помеченным деревом или нет), который при изменении вызывает дерево крендер (если на входе нет синтаксических ошибок).

Ответы [ 2 ]

9 голосов
/ 09 марта 2012

Я не уверен, какова политика для самостоятельных подключений в stackoverflow.Я прошу прощения, если это нарушает правила.

Вы видели мое решение для этого? mshang.ca / syntree

Это не совсем то, что вы хотите, но вы можете украсть код , если это поможет.

4 голосов
/ 05 марта 2012

На самом деле есть библиотека на стороне сервера для преобразования представления в скобках в дерево, phpsyntaxtree .
Вы можете переопределить их, используя графическую библиотеку javascript, например jsdraw2d , или перевести вас на javascript, используя холст HTML5.

10 лучших библиотек для рисования на JavaScript и холстах

...