LINUX.ORG.RU

Сообщения SkynetCreator

 

Помогите придумать систему организации и ведения данных (формат записи, базу данных, etc...)

У меня есть фразы вида «заячье вымя» или «красного перца болгарского», их в свою очередь надо нарезать на токены (красный, заяц, вымя, болгария, перец). Резать можно, например, при помощи префикса или корня. К примеру, я хочу задать 2 префикса: «перец» и «перц» и увидеть что будет в результате поиска.

Есть большой словарь (150 метров в сжатом виде), по которому можно пройтись префиксами и увидеть все что будет матчиться, т.е. провести проверку своих префиксов. По слову «перец» будет матчится в том числе слово «имперец» и «перецелован», поэтому это надо как-то руками/глазами отловить и добавить его в блеклист, чтобы это не матчилось.

Суть проблемы в том, что непонятно как все это хранить/организовать. На данный момент не придумалось ничего лучше, чем искать токены в оригинальной фразе и высирать текстовые файлики с правилами для матчинга этих токенов, т.е. в данном примере будет создано 5 файлов: красный.txt, заяц.txt, вымя.txt, болгария.txt, перец.txt, внутри которых изобретается свой синтаксис вида, который бы и хотелось как-то в более человеческий вид оформить:

^перц - префикс
пере[чц] - корень
!перецел - стоп-слово (перецелованный)
!имперец - еще стоп-слово
*черный молотый перец - возможное определение
*черный перец горошком - еще определение
=Специя, добавляемая людьми в пищу для придания пище острого вкуса или особого аромата
=Вид овоща, выращиваемого для салатов или в качестве основы для соусов и приправ
=Что-то, что имеет особенности или свойства перца, к примеру Перечная Мята
+специи, кулинария, пища людей

Предполагается, что по каждому токену будут заданы правила (наверное руками, я не знаю где взять базу синонимов и прочих корней) и проведены тесты пока не надоест. Где-то тут я понимаю, что я начал решать задачу не очень правильно.

Но главная проблема, что тысячи подобных слов в виде txt-файлов слабо поддаются мейнтейну, непонятно насколько каждый токен закончен, где только болванка, а где готовый и отлаженный набор. И все это надо повторить для уровня выше - уже составных фраз вида «черный перец», «красный перец», «заячье вымя». И таких баз должно быть несколько, по разным предметам (пока тренеруюсь на существительных)

Придумало ли человечество что-то такое, где можно было бы все это вести красиво? Или стоит взять mysql и начать велосипедить, а все файлики заменить на таблицы и надеяться, что схема не поменяется? Может быть использовать что-то хипстерское на безсхемной основе? Я не умею в SQL (умею простые запросы, а такое мне непонятно как представить).

Может быть еще уже существуют подобные базы/словари?

 , ,

SkynetCreator
()

Существует ли готовый стемминг + синонимизатор, умеющий делать существительное из прилагательного?

К примеру, у меня есть слово «заячье», при помощи PyMorphy2 я могу преобразовать его к «заячий», а хотелось бы получить слова «заяц» или даже «кролик». В какую сторону направить усилия поиска?

 

SkynetCreator
()

RSS подписка на новые темы