Клиент-серверное приложение по поиску потерянных вещей представляет собой систему, состоящую из трёх частей: парсер, сервер, клиент.
В настоящее время проблема поиска решается с помощью различных специализированных сервисов: различные бюро находок, сайты, множество сообществ в социальных сетях. Однако их разрозненность не позволяет эффективно решать задачу совмещения объявлений. Человек попросту не знает куда ему обратиться. Именно поэтому было приято решение разработать систему, которая будет объединять все (или какой-то круг) такого рода сервисов. Однако, у объявлений нет стандарта, поэтому в каждой системе они хранятся по-своему. В большинстве это никак не структурированное изложение проблемы на русском языке.
Главная проблема на пути понимания машинами естественных языков заключается в том, что их грамматика и семантика слабо поддаются формализации. Кроме того, от языков программирования их отличает присутствие многозначности.
Однако определенные результаты в этой области есть: машину можно научить находить нужные объекты в тексте на естественном языке, находить между ними связи и представлять необходимые данные в формализованном виде для дальнейшей обработки.
Данная дисциплина носит название “Извлечение именованных сущностей” (англ. - Named Entity Recognition) или в более широком смысле “Извлечение фактов”, когда между именованными сущностями анализируются взаимосвязи, и является одной из ключевых задач систем автоматической обработки текста.
Целью этой работы является разработка такого лингвистического парсера, а также клиентского, для работы с пользователями, и серверного приложения для обеспечения сбора, и анализа объявлений. Первой клиентской платформой выбран Android, так как имеет самую большую аудиторию пользователей. Для ускорения разработки в серверной части используется python с фреймворком django.
В результате выполнения данной работы был спроектирован и разработан программный комплекс для поиска потерянных вещей на основе лингвистического анализа объявлений.
Также были достигнуты следующие промежуточные результаты:
• проведён анализ предметной области и задачи разбора объявления на русском языке;
• разработаны правила лингвистического разбора и реализованы в программе на основе Томита-парсера;
• разработан сервер и база данных для сбора, хранения, анализа отдачи данных;
• разработано клиентское приложение на платформе Android.
Разработанный программный комплекс был протестирован и полностью соответствует требованиям технического задания.
Достоинства разработанного сервиса:
• принимает объявления в любом формате;
• клиент на платформе с самой большой аудиторией;
• надёжны и статичный разбор (система не обучается, правила не меняются)
В качестве направлений дальнейшего развития можно выделить увеличение эффективности правил разбора парсера, увеличение гибкости правил совмещения объявлений, разработка клиентских приложений для других платформ.
1. Антонова А.Ю., Соловьев А.Н. (2013) Использование метода условных случайных полей для обработки текстов на русском языке - Компьютерная лингвистика и интеллектуальные технологии
2. Пуксант А.С., Черняк Е.Л. (2016) Извлечение именованных сущностей из текстов на русском языке - Выпускная Квалификационная работа НИУ ВШЭ
3. Томита-парсер. Документация. URL: https://tech.yandex.ru/tomita/doc/dg/concept/about-docpage/ (дата обращения: 26.06.2017)
4. Как использовать Томита-парсер в своих проектах. Практический курс. URL: https://habrahabr.ru/company/yandex/blog/225723/ (дата обращения: 26.06.2017)
5. Извлечение фактов из текста. Томита-парсер Яндекса. URL: http://vas3k.ru/blog/354/ (дата обращения 26.06.2017)
6. Лингвистическое обеспечение САПР [Электронный курс] // База и Генератор Образовательных Ресурсов. МГТУ им. Н.Э. Баумана. 03.06.2008. URL: http://bigor.bmstu.ru/?cnt/?doc=LO-SAPR/base.cou (дата обращения 26.06.2017)
7. Package Index // Android Developers [Электронный ресурс]. URL: https://developer.android.com/reference/packages.html (дата обращения 26.06.2017)
8. VK SDK // Разработчикам [Электронный ресурс]. URL: https://vk.com/dev/SDK(дата обращения 26.06.201 )
9. SDK для Android // Facebook для разработчиков [Электронный ресурс]. URL: https://developers.facebook.com/docs/android(дата обращения 26.06.2017)
10. Шилдт Г. Java 8. Полное руководство. Вильямс, 2015