useyourmind

useyourmind - web application framework for NLP

Веб-фреймворк для работы с естественным языком

Структура приложения

/

Модули приложения:

/doc

Документация в формате markdown

/data

Файлы данных пользователей

/lib

Модули внешних библиотек подключаемых объектов:

/morph

Связи.dat - файл данных морфологии

/resource

Файлы веб-интерфейса

Для запуска локально на своем компьютере необходимо:

Скачать последнюю версию useyourmind: https://github.com/vasvl123/useyourmind/releases

Под Windows:

Установить библиотеку .Net версии не ниже 4.5

Перейти в папку useyourmind и выполнить команду: useyourmind.exe starter.os

Открыть в браузере ссылку: http://localhost:8888

Под Linux:

Установить пакет mono-complete не ниже 5.2.

Перейти в папку useyourmind и выполнить команду: mono useyourmind.exe starter.os

Открыть в браузере ссылку: http://localhost:8888

Запустить в режиме сайта на порту 8080: mono useyourmind.exe starter.os site 8080

Демонстрация работы фреймворка: https://onesharp.net/

Описание:

Модуль starter.os запускает процессы webserver.os, dataserver.os, morphserver.os. Отдельные процессы showdata.os запускается для каждого пользовательского соединения. Каждый процесс использует отдельный TCP порт для обмена данными.

Веб-сервер (модуль webserver.os) может запускается в локальном режиме, или в режиме веб-сайта. По умолчанию принимает подключения на порту 8888.

Файл контейнера данных (.sdb) содержит заголовки и файлы данных. Доступ к файлам данных осуществляется через отдельный процесс - сервер данных (dataserver.os). Сервер обрабатывает запросы ассинхронно, отдавая результаты по мере выполнения запросов.

Файл данных *.sd - это текстовый файл, каждая строка которого хранит один узел DOM. Свойства узлов хранятся в виде пары ключ - значение, разделенные символом табуляции. Код узла соответствует номеру строки в файле. Узел загружается в память в виде структуры, содержащей стандартные свойства: Код, Имя, Значение, и ссылки на другие узлы: Соседний, Дочерний, Атрибут, Старший, Родитель.

Модуль процесса пользователя (showdata.os) хранит текущее состояние сеанса, производит обработку запросов пользователя, содержит редактор структуры данных. Редактор запускается в отдельном окне из главного меню программы. Для изменения структуры данных нужно выбрать нужный узел и выполнить с ним действия. Узлы можно создавать, удалять, копировать, вырезать и вставлять, изменять имя и значение. Имя узла - его тип - определяет, как он будет обрабатываться внутренним интерпретатором (в модуле pagedata.os).

Модуль интерпретатора формирует представление данных для отображения в браузере. Имя узла опреляет каким образом он будет обработан интерпретатором.

Результат (в виде обычного HTML) передается браузеру и загружается в определяемый идентификатором узел DOM страницы. Для работы с DOM используется библиотека JQuery. В качестве шаблона используется CoreUI и BootStrap 4.

Сервер морфологии (morphserver.os) выполняет поиск грамматических форм слов и их связей в предложении. Для доступа к иерархическому справочнику Связи.dat используется модуль treedb.os. Скачать архив справочника по ссылке: https://onesharp.net/resource/Связи.dat.zip Формируется скриптом morph5.os (не быстро) Используется словарь OpenCorpora http://opencorpora.org/files/export/dict/dict.opcorpora.txt.zip

Демо: https://onesharp.net/opencorpora

Структура справочника Связи.dat

Иерархия элементов:

0 (начало файла)

2 (лемма)
| КодСимвола 1
| | КодСимвола 2
| | | КодСимвола ...
| | | | 1 (разделитель) - связь грамматических форм
| | | | | | ПозицияЛеммы (р.2)
| | | | | | | ПозицияСвязи (р.3)

1 (форма)
| КодСимвола 1
| | КодСимвола 2
| | | КодСимвола ...
| | | | 1 (разделитель) - соответствие начальной форме
| | | | | ПозицияЛеммы (р.2)
| | | | | | Позиция н.ф. (р.1)
| | | | | | | Позиция леммы н.ф. (р.2)
| | | | 2 (разделитель) - связь понятий
| | | | | | ПозицияФормы (р.1)
| | | | | | | ПозицияСвязи (р.3)
| | | | | | | | Символ + или -

3 (отношения)
| КодСимвола 1
| | КодСимвола 2
| | | КодСимвола ...

https://onesharp.net/tree

Интерпретатор useyourmind.exe https://github.com/vasvl123/onesharp.net Является форком проекта OneScript https://github.com/EvilBeaver/OneScript

В настоящее время ведется работа по портированию фреймворка на C# в рамках проекта onesharp.net