78 / 78 / 35
Регистрация: 08.09.2013
Сообщений: 397
|
|
1 | |
Как организовать базу данных словаря07.03.2018, 14:06. Показов 980. Ответов 9
Метки нет (Все метки)
Стоит задача посчитать количество уникальных слов, которые использовали русские писатели и разделить их по частям речи.
В итоге должно получится так: Глаголов 51264684 шт. Прилагательных 56487787 шт. Вопросы: 1) как организовать базу данных, чтобы поиск совпадений слов занимал минимальное количество времени? 2) как отличить словоформы? (например: слова "писатель" и "писателем" - это одно и тоже слово, два раза записывать его не имеет смысла, потому что нужны только уникальные слова). 3) может есть уже готовые базы данных со словами и словоформами (а еще лучше с синонимами), чтобы я мог посмотреть как у них организована структура? дайте ссылку, где можно скачать _ Лучшее, что я смог придумать, это создать отдельную таблицу для каждой части речи, и в ней первая строка - это мог бы быть префикс в виде буквы, чтобы было проще искать. Например так: Таблица "Глаголы" ID:1 | word_prefix: л | word: лететь | root: лет | wordforms: -еть, -ать, -ят Первый индекс по word_prefix, второй по word. Должно же быстро работать? Но в одной только книжке Война и Мир 500 тыс слов. А что будет, если я загружу в базу 1000 книжек? Поиск станет очень медленным. Посоветуйте, пожалуйста, как организовать базу
0
|
07.03.2018, 14:06 | |
Ответы с готовыми решениями:
9
Как правильно организовать базу данных Подскажите как правильно организовать базу данных Как можно организовать базу данных? Организовать базу данных, как приложение без интерфейса Access |
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 |
А чем он отличается от такого же поиска в 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 |
а это что тогда? 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 |
Ну я же не об этом спрашивал
Я хочу знать как сделать максимально быстрый поиск по таблице, если слов будет 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 | |
07.03.2018, 16:56 | |
Помогаю со студенческими работами здесь
10
Запись из файла в Базу данных (как организовать структура кода) Организовать базу данных, как приложение без интерфейса Access Подскажите как организовать базу данных из файла в котором есть иерархия Где скачать базу данных англо-русских и русско-английских слов для словаря (приложения на Андроид)? Как организовать базу данных проект/задачи/ссылки на задачи? Организовать простую базу данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |