Size: a a a

Natural Language Processing

2021 December 21

IG

Ilya Gusev in Natural Language Processing
Выше отмеченный pgsql хороший вариант. Можно ещё в plain jsonl/protobuf/messagepack/parquet хранить, если не очень хочется базу только ради этого поднимать и нужно хранить ещё и эмбеддинги.
источник

ФД

Федор Добрянский... in Natural Language Processing
лови мои два плюса -)
источник

IG

Ilya Gusev in Natural Language Processing
спасибо!
источник

Б

Борис in Natural Language Processing
Мне наверное проще Pg с ним я немного знаком, с текстовыми данными в нём не работал. А вот с остальным либо не знаком совсем, либо имею сильно поверхностное представление. Но всё равно спасибо, на досуге посмотрю и эти варианты.
источник

SS

Sergey Sikorskiy in Natural Language Processing
Попробуйте на sqlite взглянуть. Он embedded, и там полнотекстовый поиск был, кажется, всегда. Если система однопользовательская, то вариант почти идеальный.
источник

A

Anton in Natural Language Processing
А можно поподробнее рассказать?
Я с базами только-только вкатываюсь и сейчас возникают сложности с хранением эмбеддингов и быстрым поиском.
источник

Б

Борис in Natural Language Processing
А что значит "почти идеальный", есть ещё лучше варианты?
источник

SS

Sergey Sikorskiy in Natural Language Processing
Если вы знакомы с оптимизацией баз данных (знаете как подбирать правильно индексы для запросов), то можете попробовать firebirdsql. Это очень маленькая БД (сильно меньше Постгресс), у нее есть embedded версия, с оптимизатором там все очень хорошо, статистику собирает, планы можно посмотреть. Но если подбирать индексы умеете “на глазок”, то sqlite вполне сойдет, с ней проблем вообще никаких нет 🙂
источник

Б

Борис in Natural Language Processing
С базами данных работал, но с текстами в них нет.
источник

SS

Sergey Sikorskiy in Natural Language Processing
Тут вопрос в том, умеете ли вы эти БД оптимизировать ….
источник

SS

Sergey Sikorskiy in Natural Language Processing
sqlite - очень простенькая, но для простых задач ее вполне хватает.
источник

Б

Борис in Natural Language Processing
В целом имею об этом представление, какие бывают индексы, что индексировать что бы быстрее работали джоины и тд это немного умею. Буду пробовать с Pg, раз принципиальной разницы SQLite нет.
источник

Б

Борис in Natural Language Processing
Такого рода задачи пока не приходилось решать. Думал может есть какие то специализированные решения. Взять Pg и прикрутить Эластик мне кажется вполне интересным экспериментом.
источник

Е

Егорка in Natural Language Processing
Блин, вот вы подняли косвенно тему хранения вложений в базе данных. А я точно знаю, что есть специальный вид индекса на основе деревьев, чтобы быстро искать вложения близкие по какой-либо метрике. Вот только нигде теперь найти не могу, как такие деревья называются.
источник

IG

Ilya Gusev in Natural Language Processing
да их вообще-то много, речь скорее всего о k-d деревьях и BSP в целом
источник

IG

Ilya Gusev in Natural Language Processing
annoy на чём-то похожем сделан
источник

IG

Ilya Gusev in Natural Language Processing
и это не единственный способ, есть HNSW, есть faiss
источник

Е

Егорка in Natural Language Processing
Да, k-d деревья. Спасибо большое
источник

SS

Sergey Sikorskiy in Natural Language Processing
Принципиальная разница есть - в случае с sqlite не надо подымать отдельный сервер )
источник

Б

Борис in Natural Language Processing
Pg у меня уже есть :) И я с ним работал. Ещё с MS SQL работал. Про sqlite знаю, слышал, но не работал с ней.
источник