В русском языке, в отличии от английского, выделение основы слова является непростой задачей. Исторически, она решается при помощи составления больших подробных морфологических словарей, воспользоваться которыми не всегда удобно и возможно. Наш проект реализует алгоритм нахождения основы для заданного исходного слова, что позволяет экономить своё время и нервы.
Название продукта | Вид приложения | Поддержка русского языка | Поддержка других языков | Примитивные тесты | Язык программирования |
---|---|---|---|---|---|
Online Snowball stemmers demo | online | + | + | + | JavaScript |
Стемминг текста | online | + | + | - | PHP |
Stemming-ru | exe | + | - | + | C++ |
Ошибки в тестах у программы Стемминг текста основаны на том, что она использует не только алгоритм стемминга, но и лемматизатор, для приведения слов к базовой форме.
Продукт предназначен для работы на персональном компьютере. Системные аппаратные средства, используемые программой, должны быть представлены персональным компьютером с уровнем процессора не ниже Intel Celeron 1Ghz, и количеством оперативной памяти не ниже 520 Mb.
Для корректной работы программы требуется операционная система Windows 8 64 Bit или более поздние версии операционных систем Windows. Также, необходимо наличие свободной оперативной памяти, минимум 520 Mb, и не меньше 25 Mb свободно памяти на жёстком диске.
При разработке программного продукта использовались:
- Библиотеки языка программирования С++
- Среда программирования Microsoft Visual Studio Community 2017 версия 15.1 (26403.7) Release
- Автоматическое построение документации путём использования doxygen
- Проверка стиля и синтексиса итогового продукта с помощью Cpp Check Code Analysis Tools ver. 1.82.
- Разработка тестов для проверки функциональности продукта при помощи QT ver 5.7.0
- Расход памяти: О(n), где n - это длина слова. Так как мы считываем только одно слово из файла, запоминаем его, выполняем стемминг и забываем это слово.
- Производительность: О(n), где n - это длина слова.
- Надежность: Наш проект ничего не ломает. Даже в самом худшем случае, во время возникновения системной ошибки, повреждён может быть только выходной файл проекта.
- Рыночная ниша: Несмотря на довольно небольшой возраст проекта, он обладает большим потенциалом, и мы надеемся, что в скором времени он сможет занять достойное месро среди общеизвестных аналогов.
В качестве входных данных проект поддерживает текстовые файлы в кодировке UTF-8, содержащие информацию на русском языке. Поддерживаемый формат файлов: .txt. Размер принимаемых файлов ограничивается объёмом оперативной памяти используемого устройства.
После того как программа обработает все полученные данные при помощи алгоритма стемминга Портера, пользователю будет предоставлен файл формата csv, заполненный результатами работы программы, записанными на русском языке.
Для установки продукта необходимо скачать себе на персональный компьютер архив, содержащий проект, и распаковать его в отдельную папку на диске или на сам диск. После этого продукт готов к использованию пользователем.
Для запуска продукта необходимо в командной строке после ссылки на консольное приложение ввести через пробел два аргумента: имя входного файла (любого текстового формата) и имя выходного файла (формата csv).
В нашем программном продукте реализован интерфейс командной строки, так как нет действий, требующих явного взаимодействия пользователя и программы. Вся работа алгоритма скрыта от пользователя. Ему доступны только входной и выходной файлы.
Для автоматического генерирования документации было использовано средство встроенного документирования doxygen. В документации располагаются описания и комментарии к файлам исходного кода, классам, методам классов.
Создание и просмотр документации первый способ:
- Загрузите проект в виде архива Stemming-ru-master.zip на персональный компьютер, распакуйте архив и расположите его в корневом каталоге рабочего диска
- С помощью doxywizard откройте файл Doxyfile
- Необходимо, чтобы в Source code directory был указан путь к исходному коду программы
- Запустите doxygen во вкладке Run
- Просмотреть полученную документацию в браузере можно, нажав Show HTML output
Сборка и просмотр документации второй способ:
- Загрузите проект в виде архива Stemming-ru-master.zip на персональный компьютер, распакуйте архив и расположите его в корневом каталоге рабочего диска
- Откройте командную строку
- cd <путь к проекту>
- doxygen Doxyfile
- Откройте созданную папку index в каталоге проекта
Сборка проекта возможна с использованием утилиты CMake. Для сборки проекта введите следующую команду:
cmake <root_repository_folder>
При реализации проекта были созданы и использованы два класса:
- Класс, отвечающий за получение стема слова, то есть реализующий алгоритм.
- Класс, работающий с входным файлом. Этот же класс производит запись полученного результата в выходной файл.
Для тестирования стиля и синтаксиса кода поректа на C++ мы использовали утилиту cppcheck. Для проверки корректности работы проекта были использованы тесты, написанные при помощи инструмента QTest и утилиты QT VS Tools, с использованием библиотеки QT ver 5.7.0. При тестировании подается на вход текстовый файл, который содержит слово и его стем. Чтобы добавить/удалить тестируемые слова необходимо изменить текстовый файл в папке Test_data. Запуск тестовых функций происходит с помощью макроса QTEST_MAIN(). Тесты запускаются автоматически при компиляции проекта. Прежде чем запустить тестовое приложение, убедитесь, что выставлена корректная PATH-переменная QTDIR. Для запуска тестового приложения из командной строки, необходимо поменять в свойствах тестового проекта рабочий каталог на OutDir.
Для выполнения данного проекта была использована информация из следующих источников:
- Russian stemming algorithm
- Стеммер Портера для русского языка, 2010
- Павел Пересторонин, Стеммер Портера для русского языка, 2015