GrammarEngineApi

An extndend version of the original Russian Grammatical Dictionary and Thesaurus C# API from solarix.ru.


Keywords
chunking, lemmatization, lemmatizer, machine-learning, morphological-analyser, morphological-analysis, nlp, nlp-library, nlp-parsing, part-of-speech-tagger, russian-morphology, syntax-parser
License
MIT
Install
Install-Package GrammarEngineApi -Version 1.1.57

Documentation

API ГрамматичСского Бловаря Русского Π―Π·Ρ‹ΠΊΠ°

Набор инструмСнтов ΠΈ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с русской словарной Π±Π°Π·ΠΎΠΉ ΠΈ морфологичСской модСлью для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ NLP Π·Π°Π΄Π°Ρ‡ Π½Π° русскоязычных тСкстах доступСн Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для встраивания Π² ΠΊΠΎΠ΄ Π½Π° C/C++, C#, Python, Delphi.

Установка ΠΈ компиляция зависимостСй

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ устанавливаСм liblbfgs:

cd ~
wget https://github.com/downloads/chokkan/liblbfgs/liblbfgs-1.10.tar.gz
tar -xvzf liblbfgs-1.10.tar.gz
cd liblbfgs-1.10
./configure
make
sudo make install

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ устанавливаСм crfsuite:

cd ~
wget https://github.com/downloads/chokkan/crfsuite/crfsuite-0.12.tar.gz
tar -xvzf crfsuite-0.12.tar.gz
cd crfsuite-0.12
./configure
make
sudo make install

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ sqlite3 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка "Unable to locate the sqlite3 library"):

sudo apt-get install sqlite3 libsqlite3-dev

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Boost C++:

sudo apt-get install libboost-all-dev

Установка ncurses, которая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚:

sudo apt-get install libncurses-dev

Π‘Π±ΠΎΡ€ΠΊΠ° грамматичСского словаря с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CMake

Для сборки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ компилятор C++, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ стандарт 11. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ VisualStudio 2015 ΠΏΠΎΠ΄ Windows ΠΈ gcc 5.4.0 Π² Ubuntu 16.04. ВсС части ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄Π°Π²Π½ΠΎ Π½Π΅ провСрялся ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π”Π°Π»Π΅Π΅ инструкция ΠΏΠΎ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ubuntu.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ build Π² ΠΊΠΎΡ€Π½Π΅ исходников, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚ΡƒΠ΄Π°:
mkdir build & cd build
  1. ЗапуститС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ makefile'ΠΎΠ²:
cmake ..
  1. ЗапуститС ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ:
make

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 20 ΠΌΠΈΠ½ΡƒΡ‚ всС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ so'шки Π±ΡƒΠ΄ΡƒΡ‚ собраны ΠΈ скопированы Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ exe64 ΠΈ lib64. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ сборкС словаря (см. Π΄Π°Π»Π΅Π΅).

Π‘Π±ΠΎΡ€ΠΊΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠŸΠ°Ρ€ΡΠ΅Ρ€Π° вынСсСна Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ страницу.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Compiler для сборки Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ словаря

Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π½ΡƒΠΆΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ (ΠΏΠ΅Ρ€Π΅)ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€Π½ΡƒΡŽ Π±Π°Π·Ρƒ ΠΈΠ· исходных тСкстов с описаниСм ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ синтаксиса ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΠΎΠ΄ Windows с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MS VisualStudio 2015

Π’ ΠΏΠ°ΠΏΠΊΠ΅ exe64 Π²Ρ‹Π»ΠΎΠΆΠ΅Π½ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ compiler.exe, собранный для MS Windows, Π½ΠΎ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MS VisualStudio 2015. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ для сборки Π»Π΅ΠΆΠΈΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ ...\src\demo\ai\solarix\ygres\compiler\ygres_msvc2005

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ стоят ссылки Π½Π° исходныС тСксты Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Boost, Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π»ΠΈΠ±ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники Boost ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΡƒ со скомпилированными Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции получится исполнимый Ρ„Π°ΠΉΠ» compiler.exe Π² ΠΏΠ°ΠΏΠΊΠ΅ ...\src\exe64

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΠΎΠ΄ Ubuntu

Если ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ сборка ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CMake Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ созданный Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ makefile.

Π‘Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ ...\src\demo\ai\solarix\ygres\compiler.

ΠŸΠ΅Ρ€Π΅Π΄ сборкой создайтС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

mkdir /tmp/ygres

ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ настройку Π² Ρ„Π°ΠΉΠ»Π΅ makefile.linux64

Π—Π°Ρ‚Π΅ΠΌ запуститС сборку:

./build.sh

Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π² ΠΏΠ°ΠΏΠΊΠ΅ exe64 появится исполнимый Ρ„Π°ΠΉΠ» compiler.

ВСстовая сборка пустого словаря

Для быстрой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности компилятора запуститС сборку пустого словаря с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта empty.sh Π² ΠΏΠ°ΠΏΠΊΠ΅ .../src/scripts/dictionary.

Π’ ΠΏΠ°ΠΏΠΊΠ΅ .../src/bin-linux64 появятся Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… diction.bin, lexicon.db ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π‘Π±ΠΎΡ€ΠΊΠ° пустого словаря ΠΏΠΎΠ΄ Windows выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта empty.cmd, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ записаны Π² bin-windows64.

Π‘Π±ΠΎΡ€ΠΊΠ° русской словарной Π±Π°Π·Ρ‹

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты с описаниСм ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΠΈ, лСксики ΠΈ синтаксиса русского языка находятся Π² ΠΏΠ°ΠΏΠΊΠ΅ .../src/dictionary.src.

Для сборки русской словарной Π±Π°Π·Ρ‹ достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт russian.sh ΠΈΠ»ΠΈ russian.cmd Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ .../src/scripts/dictionary. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 30 ΠΌΠΈΠ½ΡƒΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin-windows64 ΠΈΠ»ΠΈ bin-linux64 появятся Ρ„Π°ΠΉΠ»Ρ‹ словаря.

Π‘Π±ΠΎΡ€ΠΊΠ° английской словарной Π±Π°Π·Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языковых Π±Π°Π·

Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ находятся Ρ‚Π°ΠΊΠΆΠ΅ исходныС тСксты для сборки английской, французской, японской ΠΈ китайской словарных Π±Π°Π·. Для получСния Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ словаря Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ скрипт Π² ΠΏΠ°ΠΏΠΊΠ΅ .../src/scripts/dictionary:

english.cmd ΠΈΠ»ΠΈ english.sh
french.cmd
japanese.cmd
chinese.cmd

ΠœΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠ°Ρ модСль японского языка сдСлана Π² расчСтС Π½Π° использованиС с парсСрами Ρ‚ΠΈΠΏΠ° Cabocha ΠΈΠ»ΠΈ KNP.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Lexicon

Π­Ρ‚Π° консольная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сборки словарной Π±Π°Π·Ρ‹, описанной Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅. Запустив Π΅Π΅, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ слова ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска Π² лСксиконС словарной Π±Π°Π·Ρ‹.

Если Π²Ρ‹ запускаСтС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ lexicon ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ exe64, Ρ‚ΠΎ ΠΎΠ½Π° ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ попытаСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin-windows64 ΠΈΠ»ΠΈ bin-linux64, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ dictionary.xml Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π² этом случаС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Lexicon ΠΏΠΎΠ΄ Windows с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MS VisualStudio 2015

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ для сборки Π»Π΅ΠΆΠΈΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ src\demo\ai\solarix\lexicon

По ΠΏΠΎΠ²ΠΎΠ΄Ρƒ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Boost - см. пояснСния для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Compile Π²Ρ‹ΡˆΠ΅.

Π’ ΠΏΠ°ΠΏΠΊΠ΅ exe64 Π»Π΅ΠΆΠΈΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ исполнимый Ρ„Π°ΠΉΠ» Lexicon.exe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я собрал ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии исходников ΠΏΠΎΠ΄ Win64.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Lexicon Π² Ubuntu

НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /tmp/lexicon.

ПослС этого Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src/demo/ai/solarix/lexicon/ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ./build.sh

ПослС окончания сборки появится исполнимый Ρ„Π°ΠΉΠ» lexicon

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Syntax

Π­Ρ‚Π° консольная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° являСтся ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ синтаксичСского парсСра. Она позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ прСдлоТСния, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ парсинг, Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ остановки Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… Ρ€Π°Π·Π±ΠΎΡ€Π°, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст выполнСния синтаксичСского ΠΏΡ€Π°Π²ΠΈΠ»Π°.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Syntax Π² Ubuntu

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с исходниками ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Syntax src/demo/ai/solarix/syntax ΠΈ запускаСм ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ:

./build.sh

ПослС компиляции появится Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ syntax.

Если ΠΏΡ€ΠΈ запускС ./syntax появится сообщСниС, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ crfsuite***.so, Ρ‚ΠΎ скорСС всСго ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ такая ΠΊΠΎΠΌΠ°Π½Π΄Π°:

export LD_LIBRARY_PATH=/usr/local/lib

ПослС запуска ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½ΠΎ:

eek@ubuntu:~/Solarix/GrammarEngine/src/demo/ai/solarix/syntax$ ./syntax  
Solarix SYNTAX parser debugger ver. 14.15.11192 Standard Linux 4.10.0-32-generic x86_64  (build date Sep  6 2017)  
Loading dictionary from ../../../../bin-linux64/dictionary.xml... ok  
Enter #help to read online help.  

: кошка Π»ΠΎΠ²ΠΈΡ‚ ΠΌΡ‹ΡˆΠ΅ΠΉ  
BEGIN  Π»ΠΎΠ²ΠΈΡ‚ ( кошка, ΠΌΡ‹ΡˆΠ΅ΠΉ )   END  

Команда #tree Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ синтаксичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ:

: \#tree  
Π»ΠΎΠ²ΠΈΡ‚ ( Π“Π›ΠΠ“ΠžΠ› ΠΠΠšΠ›ΠžΠΠ•ΠΠ˜Π•:Π˜Π—ΠͺΠ―Π’ Π’Π Π•ΠœΠ―:ΠΠΠ‘Π’ΠžΠ―Π©Π•Π• Π›Π˜Π¦Πž:3 Π§Π˜Π‘Π›Πž:Π•Π” ~ΠœΠžΠ”ΠΠ›Π¬ΠΠ«Π™ ΠŸΠ•Π Π•Π₯ΠžΠ”ΠΠžΠ‘Π’Π¬:ΠŸΠ•Π Π•Π₯ΠžΠ”ΠΠ«Π™ ΠŸΠΠ”Π•Π–:Π’Π˜Π ΠŸΠΠ”Π•Π–:Π’Π’ΠžΠ  ΠŸΠΠ”Π•Π–:ДАВ Π’Π˜Π”:ΠΠ•Π‘ΠžΠ’Π•Π Π¨ ~Π’ΠžΠ—Π’Π ΠΠ’ΠΠžΠ‘Π’Π¬ )  
β”‚β”‚                                                                                                                                                              
β”‚β””β”€ΠΌΡ‹ΡˆΠ΅ΠΉ ( Π‘Π£Π©Π•Π‘Π’Π’Π˜Π’Π•Π›Π¬ΠΠžΠ• ΠŸΠΠ”Π•Π–:Π’Π˜Π Π§Π˜Π‘Π›Πž:МН Π ΠžΠ”:ЖЕН ΠžΠ”Π£Π¨:ΠžΠ”Π£Π¨ ΠŸΠ•Π Π•Π§Π˜Π‘Π›Π˜ΠœΠžΠ‘Π’Π¬:ДА ΠŸΠΠ”Π•Π–Π’ΠΠ›:Π ΠžΠ” )                                                                
β”‚                                                                                                                                                               
β””β”€β”€ΠΊΠΎΡˆΠΊΠ° ( Π‘Π£Π©Π•Π‘Π’Π’Π˜Π’Π•Π›Π¬ΠΠžΠ• ΠŸΠΠ”Π•Π–:ИМ Π§Π˜Π‘Π›Πž:Π•Π” Π ΠžΠ”:ЖЕН ΠžΠ”Π£Π¨:ΠžΠ”Π£Π¨ ΠŸΠ•Π Π•Π§Π˜Π‘Π›Π˜ΠœΠžΠ‘Π’Π¬:ДА ΠŸΠΠ”Π•Π–Π’ΠΠ›:Π ΠžΠ” )                                                                 
:   

C API грамматичСского словаря

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π² API с описаниями ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° страницС.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

API словаря Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ динамичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° solarix_grammar_engine.dll Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows ΠΈΠ»ΠΈ solarix_grammar_engine.so для Linux.

Для сборки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MS VisualStudio 2015 ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Grammar_Engine_Pro2005.sln Π² ΠΏΠ°ΠΏΠΊΠ΅ .../src/demo/ai/solarix/engines ΠΈ запуститС компиляция. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ .../src/lib64 появится Ρ„Π°ΠΉΠ» solarix_grammar_engine.dll.

Для компиляции ΠΏΠΎΠ΄ Ubuntu запуститС скрипт build.sh Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования C API грамматичСского словаря

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° C++ находится Π² ΠΏΠ°ΠΏΠΊΠ΅ .../src/demo/ai/solarix/Grammar_Engine/SimpleGREN.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ парсСр

ΠŸΠ°Ρ€ΡΠ΅Ρ€ - консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая ΡƒΠΌΠ΅Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Π°ΡΡ‚Π΅Ρ€Π΅Ρ‡Π½ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ (part-of-speech tagging), синтаксичСский Ρ€Π°Π·Π±ΠΎΡ€ с построСниСм Π΄Π΅Ρ€Π΅Π²Π° (dependency parsing) ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… (chunking). Бборочная инфструкция ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС порядка запуска вынСсСно Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ страницу. Π’Π°ΠΊΠΆΠ΅ доступно описаниС Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.