Как хранить словоформы в базе данных?

12
O
На сайте с 29.05.2008
Offline
195
1352

Здравствуйте.

Нужно динамически выводить ингредиенты к рецепту в зависимости от выбранного количества порций.

Например,

1 большое яблоко, 2 средних яблока, 29 маленьких яблок,

1 стакан муки, 2 стакана муки.

При этом, есть таблица с самими ингредиентами и есть таблица `weight` с конвертацией unit => грамм (1 среднее яблоко = 200 грамм).

Где и как лучше хранить словоформы?

Mad_Man
На сайте с 10.11.2008
Offline
162
#1

В гугл "PHP склонение по падежам" и "PHP склонение после числительных". Хранить все падежи не нужно.

O
На сайте с 29.05.2008
Offline
195
#2

Mad_Man, то-есть, вы совершенно уверены, что для 8000 наименований продуктов это можно проделать автоматически, храня только одно название продукта?

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#3

Хранить ничего не нужно: http://phpmorphy.sourceforge.net/dokuwiki/

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
O
На сайте с 29.05.2008
Offline
195
#4

LEOnidUKG, а оно разве работает с количеством? 2 яблока, 1 яблоко?

AlexVenga
На сайте с 10.04.2007
Offline
190
#5

ТС, а вы попробуйте с помощью библиотеки от LEOnidUKG выести на экран все словоформы и пробегитесь по ним глазами - 6000 это не сложно, и поймете что в 99 % случев работает нормально

Антикризисное предложение: [Бурж, AdSense] [NEW] Сайты - каталоги компаний с гарантией трафа [Дорого] (/ru/forum/1006462)
LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#6
ortegas:
LEOnidUKG, а оно разве работает с количеством? 2 яблока, 1 яблоко?

Оно работает со всем если разобраться в документации :)

Для этого оно и создано.

AlexVenga
На сайте с 10.04.2007
Offline
190
#7

Вот вам для примера достаточно экзотичный фрукт

Карамболь онже Старфрут (любимая фкусняшка из того что в России нормального не купить)

Мне тока не понравился вариант "карамболя", по идее Карамболи

O
На сайте с 29.05.2008
Offline
195
#8
Например, система встретив в тексте слово-строку “дели” не знает к какому слову ее отнести:
Дели. “Дели — столица Индии”.
Делить. “Смело дели на два”.
Деть. “Куда вы дели мои носки?”

Судя по статье на habrahabr.ru, какие-то базы слов все-равно нужно использовать. Так зачем искать слово из 200 тысяч, а потом угадывать из совпадений, что имелось в виду, платить 5000 рублей за сомнительный модуль, если можно прописать 3 дополнительных значения для каждого ингредиента? Вроде так будет надежнее и наверное, не медленнее?

Кто понимает алгоритм, поправьте.

RiDDi
На сайте с 06.06.2010
Offline
256
#9

да, всё правильно Вы понимаете

там используются достаточно большие базы парадигм слов, всяких леммов и приставок

морфологический анализ работает много медленнее поиска готового среди 8к

тем более если вы уже будете выбирать основную форму

в Вашем случаи разумно будет создать себе базу с нужными словами, которую заполнить один раз с помощью какого-нибудь морфологического анализатора и в дальнейшем просто брать оттуда

Вебмастер отдыхает на бережках морей. Заработок в интернете - дело техники.
totamon
На сайте с 12.05.2007
Offline
437
#10

ну наверно будет не медленней) сама функция простая достаточно... например

http://habrahabr.ru/post/105428/ дополнительные значения будут выводиться вместе с инградиентом... вопрос в том что базу уже забита и надо добавить 8х3 тысяч словоформ, что достаточно затратно, или она будет только заполняться?

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий