Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
78 / 78 / 35
Регистрация: 08.09.2013
Сообщений: 397
1

Как организовать базу данных словаря

07.03.2018, 14:06. Показов 980. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Стоит задача посчитать количество уникальных слов, которые использовали русские писатели и разделить их по частям речи.

В итоге должно получится так:
Глаголов 51264684 шт.
Прилагательных 56487787 шт.

Вопросы:
1) как организовать базу данных, чтобы поиск совпадений слов занимал минимальное количество времени?
2) как отличить словоформы? (например: слова "писатель" и "писателем" - это одно и тоже слово, два раза записывать его не имеет смысла, потому что нужны только уникальные слова).
3) может есть уже готовые базы данных со словами и словоформами (а еще лучше с синонимами), чтобы я мог посмотреть как у них организована структура? дайте ссылку, где можно скачать

_

Лучшее, что я смог придумать, это создать отдельную таблицу для каждой части речи, и в ней первая строка - это мог бы быть префикс в виде буквы, чтобы было проще искать.
Например так:

Таблица "Глаголы"
ID:1 | word_prefix: л | word: лететь | root: лет | wordforms: -еть, -ать, -ят

Первый индекс по word_prefix, второй по word. Должно же быстро работать?
Но в одной только книжке Война и Мир 500 тыс слов. А что будет, если я загружу в базу 1000 книжек? Поиск станет очень медленным.

Посоветуйте, пожалуйста, как организовать базу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2018, 14:06
Ответы с готовыми решениями:

Как правильно организовать базу данных
Пишу сайт-портфолио. Помогите как правильно организовать базу данных. Хочу сделать примерно так:...

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

Как можно организовать базу данных?
Здравствуйте, до меня все не доходит, как можно хранить вот такие данные Например: есть сотрудник...

Организовать базу данных, как приложение без интерфейса Access
Доброго времени суток. Есть готовая база данных (с формами, запросами, отчетами). Есть эргономичная...

9
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
07.03.2018, 14:45 2
ставьте postgresql и юзайте их full text search
0
78 / 78 / 35
Регистрация: 08.09.2013
Сообщений: 397
07.03.2018, 16:16  [ТС] 3
Цитата Сообщение от полудух Посмотреть сообщение
ставьте postgresql и юзайте их full text search
А чем он отличается от такого же поиска в mysql или другой базы данных? объясните, пожалуйста
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
07.03.2018, 16:18 4
в mysql нет FTS
0
78 / 78 / 35
Регистрация: 08.09.2013
Сообщений: 397
07.03.2018, 16:22  [ТС] 5
Цитата Сообщение от полудух Посмотреть сообщение
в mysql нет FTS
а это что тогда? https://dev.mysql.com/doc/refm... earch.html
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
07.03.2018, 16:27 6
рукожопный закос
0
78 / 78 / 35
Регистрация: 08.09.2013
Сообщений: 397
07.03.2018, 16:30  [ТС] 7
Цитата Сообщение от полудух Посмотреть сообщение
рукожопный закос
Понятненько

А по структуре таблицы посоветуете что-нибудь? Например как хранить 1 млрд слов так, чтобы можно было за 0,01 сек найти нужное?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
07.03.2018, 16:33 8
Для более точного определения количества слов в русском языке используются классические виды словарей. Чаще всего обращаются к таким видам собраний русскоязычных словоопределений: БАС – Большой Академический словарь насчитывает 131 257 слов. Словарь В. И. Даля – более 200 тысяч слов.
0
78 / 78 / 35
Регистрация: 08.09.2013
Сообщений: 397
07.03.2018, 16:48  [ТС] 9
Цитата Сообщение от полудух Посмотреть сообщение
Для более точного определения количества слов в русском языке используются классические виды словарей. Чаще всего обращаются к таким видам собраний русскоязычных словоопределений: БАС – Большой Академический словарь насчитывает 131 257 слов. Словарь В. И. Даля – более 200 тысяч слов.
Ну я же не об этом спрашивал

Я хочу знать как сделать максимально быстрый поиск по таблице, если слов будет 1 млрд
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
07.03.2018, 16:56 10
в таблицах принято мерить кол-вом строк, если вы говорите про слова, то ассоциации со словарём
делать как обычно: отдельную индексированную колонку под tsvector, индексы (GIN/GiST), разбивать на актуальные/неактуальные данные, анализировать explain analyze и править архитектуру/запросы
остальное сам FTS сделает
0
07.03.2018, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2018, 16:56
Помогаю со студенческими работами здесь

Запись из файла в Базу данных (как организовать структура кода)
Из файла построчно считывается текст. Далее текст разбивается на отдельные значения и заносится в...

Организовать базу данных, как приложение без интерфейса Access
Создал базу данных. Теперь необходимо организовать базу данных, как приложение без интерфейса...

Подскажите как организовать базу данных из файла в котором есть иерархия
Привет! Есть файл xml c древовидной структурой. <?xml version="1.0" encoding="UTF-8"?> <menu>...

Где скачать базу данных англо-русских и русско-английских слов для словаря (приложения на Андроид)?
И как её засунуть в программу

Как организовать базу данных проект/задачи/ссылки на задачи?
Требуется сделать чтобы с задачами были связаны ссылки. Я сделал состав таблиц с позиции как я...

Организовать простую базу данных
Помогите пожалуйста Требуется организовать простую базу данных. База хранит све-дения о жителях...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru