Skip to content

LasTshaMAN/synonym_dictionary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект использует инструмент для сборки Maven. Скомпилировать проект можно командой mvn compile, собрать .jar файл командой mvn package (тесты по умолчанию отключены), запустить тесты можно командой mvn test. Проект можно запускать из IDE или с помощью консольной команды.

Конечный результат (тезаурус Русского языка) получается в результате последовательного выполнения друг за другом нескольких задач. Задача, которая будет выполняться при следующем запуске программы, описывается в конфигурационном файле config.json в папке resources проекта.

Описание задач:

  1. «load_contents» - загрузка содержания словаря (словарей), эта задача использует вспомогательный параметр «contexts_for_dictionaries», в котором можно указать Spring-контексты словарей, которые мы хотим загрузить при запуске программы. Если контекстов указано несколько, загрузка будет происходить в несколько потоков.

  2. «load_synonyms» - загрузка связей в словарь (словари), эта задача использует вспомогательный параметр «contexts_for_dictionaries», в котором можно указать Spring-контексты словарей, связи из которых мы хотим загрузить при запуске программы. Если контекстов указано несколько, загрузка будет происходить в несколько потоков. Эта задача полагается на результат задачи «load_contents» для указанного словаря. Загрузку связей можно поставить на паузу, введя в консоль команду «stop». При этом приложение завершится, продолжить загрузку можно снова запустив приложение.

  3. «merge_dictionaries» - задача объединения нескольких словарей в один. Эта задача имеет дополнительный параметр «merge_context» - контекст, в котором указываются словари, которые надо объединить. Предполагается, что все необходимые словари были загружены заранее.

  4. «improve_dictionary» - задача улучшения словаря за счет транзитивных связей. Эта задача имеет дополнительный параметр «improvement_context» - контекст, в котором указывается словарь, который надо улучшить.

  5. «export_dictionary» - задача экспорта данных из словаря в файл в формате JSON. Эта задача имеет два дополнительных параметра – «export_context» и «words», где указываются слова, которые будут экспортированы в файл output.json папки result вместе со своими связями.

  6. «gather_statistics» - задача сбора некоторой статистики.

Последовательность задач для создания тезауруса должна быть такой:

1: Загружаем содержание словарей в базы данных { "task": "load_contents", "contexts_for_dictionaries": [ "loader_context_1.xml", "loader_context_3.xml", "loader_context_4.xml" ] }

2: Загружаем связи для этих словарей в базы данных { "task": "load_synonyms", "contexts_for_dictionaries": [ "loader_context_1.xml", "loader_context_3.xml", "loader_context_4.xml" ] }

3: Сливаем словари в один { "task": "merge_dictionaries", "merge_context": "merge_context.xml" }

4: Используем транзитивность для обогащения словаря { "task": "improve_dictionary", "improvement_context": "improvement_context.xml" }

Каждая задача загружает один или несколько Spring-контекстов. В каждом контексте создается один или несколько DataSource для подключения к базе данных. Я использую в качестве базы данных MySQL. В каждом используемом Spring-контексте необходимо прописать настройки к своему серверу базы данных (путь к серверу, порт, название базы, логин и пароль пользователя, под которым будет происходить работа с базой). Для работы преложения необходимо создать 5 баз данных: по одной для каждого загружаемого словаря, одну, куда будет произведено слияние, и еще одну - финальную, в которую будет записан результат улучшения базы, полученной слиянием. Названия соответствующих баз прописаны в pring-контекстах: dictionary_1, dictionary_3, dictionary_4, merged_dictionary, improved_dictionary. В каждой базе необходимо создать схему используя скрипт database_schema_creation_script.sql файла. Как только базы и схемы в них будут созданы, можно начинать выполнение задач, последовательно изменяя файл config.json от запуска к запуску. Результатом работы будет тезаурус, сохраненный в improved_dictionary базу данных.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages