Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
 Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Бюро переводов. Раньше мы решали свои задачи с помощью программ полнотекстового поиска вроде dtsearch. Потом перешли на самописное добро, vb.net. Всё работает , но медленно.
Наша типичная задачка:
- есть таблица базы данных с двумя столбцами. В одном столбце - слово (тип string). В другом столбце- ID файла содержащего это слово и т.п.

Запросом создаем табличку частотности слов, типа "слово- в скольких строках БД встречается".

Если обрабатывать лишь 4000 страниц текста (порядка 250 слов на страницу)- это уже дает порядка 1 000 000 слов (т.е. записей) - и такое уже не мгновенно работает.

А нам хотелось бы обрабатывать хотя бы 40 000 страниц - а это уже 10 млн записей и реально небыстро происходит. (Вообще то у нас под сотни тысяч страниц текстов, но об анализе таких объемов под 100 млн строк в БД , пока даже не задумывались..)

Еще что: НЕ ТРЕБУЕТСЯ работа по сети (всё сейчас происходит на отдельном компьютере), работает один пользователь, может быть сколько угодно много библиотек, сложное развертывание, долгое создание индексов и пр

Вопрос. Какая организация хранения слов даст максимальную производительность на таких задачках- выборках слов с их обсчетом и пр? (Похоже все кто делает full text search используют проприетарные технологии хранения слов- от google До DtSearch.. но нам не хотелось бы так усложнять..)

Кто на таких задачах быстрее - SQLite, JET, Firebird, MS SQL Express и т.п.?

Кстати, 10 млн слов - это всего лишь порядка 200 Мб (если считать макс длину слова 20 байт)- пр таких базах-крошках переход к in memory database ничего не даст, да?

Интересует исключительно скорость выборки. А при прочих равных услвоиях - удобство интеграции с программами сделанными в .NET.
5 янв 12, 14:14    [11861801]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

lemma
Кто на таких задачах быстрее - SQLite, JET, Firebird, MS SQL Express и т.п.?

Та, которую знает нанятый вами программист. То недоразумение, которое на данный момент
выполняет его функции надо перевести на другую работу, более соответствующую его складу ума.

Posted via ActualForum NNTP Server 1.5

5 янв 12, 14:26    [11861861]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Dimitry Sibiryakov,

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

Возможно , мы НЕ ТАК работаем с текстами, как следовало бы. Ок.

Но ваш ответ очень типичен для рашкинских программеров).
Мне, например, приходится много работать с американскими юристами- к ним обращаешься- помогут даже с общими вопросами - ибо у них есть ВИДЕНИЕ и пр. А к местным обратиться- отвечают примерно как вы).

Типа вы нам ТехЗадание поставьте и пр. лепет.
5 янв 12, 14:34    [11861895]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

lemma
Мне, например, приходится много работать с американскими юристами- к ним обращаешься-
помогут даже с общими вопросами - ибо у них есть ВИДЕНИЕ и пр.

Нет, потому что за свои ответы, даже бесполезные, они выставят вам счёт. Если Вы
обратитесь ко мне в официальную техподдержку, я тоже помогу Вам даже с общими вопросами.
За соответствующую плату.

Требуемая мощность железа обратно пропорциональна квалификации вышеупомянутого
программиста. Что Вы и можете наблюдать на собственном примере.

Posted via ActualForum NNTP Server 1.5

5 янв 12, 14:40    [11861929]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Dimitry Sibiryakov,



Анекдот был такой:
- Если на американском форуме задать вопрос- ответят решением.
- Если на израильском форуме задать вопрос- ответят вопросом.
- Если на российском форуме задать вопрос- тебе объяснят , что ты идиот)

Вы прям таки иллюсстрация.
5 янв 12, 14:45    [11861946]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

lemma
Анекдот был такой:

Этот анекдот пересказывают исключительно те, кто не пытался обращаться на американские
форумы. Вопросы сложнее 2+2 там остаются без ответов годами.

Posted via ActualForum NNTP Server 1.5

5 янв 12, 14:52    [11861997]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Dimitry Sibiryakov,

я исхожу исключительно из собственного опыта).

программер из пост-совка может (возможно) выполнить техническую задачу- драйвер там портировать ... Но если задача выходит за рамки примитива- лучше таки общаться с белыми людьми.
5 янв 12, 14:55    [11862007]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30253
lemma
Наша типичная задачка:
- есть таблица базы данных с двумя столбцами. В одном столбце - слово (тип string). В другом столбце- ID файла содержащего это слово и т.п.


количество слов в конкретном языке конечно. Миллиона слов, если я не ошибаюсь, нет ни в одном языке. Так что ваша "база данных" спроектирована неверно. О чем вам и намекнул DS.
Так что, вам нужно или уже готовое решение, или программист.
5 янв 12, 14:59    [11862031]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

lemma
лучше таки общаться с белыми людьми.

Ну так вперёд! Потом расскажете о результатах.

Ваши предшественники отмазывались незнанием английского, но для переводчика это было бы
смешно.

Posted via ActualForum NNTP Server 1.5

5 янв 12, 15:10    [11862073]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
kdv,

Я же писал в посте- "создаем табличку частотности слов,"

то есть - имеем десятки тысяч файлов в формате plain text. Это наши (и предоставленные заказчиками) переводы.

частотность- это сколько раз слово встречается во всех файлах. или в конкретном файле.
----------------------------
пример.
Было до обсчета

вася-IDфайл1
петя-IDфайл1
...
вася-IDфайл2
маша-IDфайл2
...

стало (слово "Вася" встречается 2 раза, "петя"- 1 раз)
вася- 2
петя- 1
---------------------------------------------------------------


Кроме того. При анализе текстов мы отбрасывам "стоп-слова" (предлоги "на", "под", междометия "ух" и пр). Еще и стеммером приводим слова к единой форме.


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

То есть ДО обработки- миллион слов, выковыренных из txt файлов.
После обработки- редко более 20 000 слов (и то там много фамилий, географических названий и пр)- ничего аномального для русского языка у нас нет.
5 янв 12, 15:15    [11862102]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
hvlad
Member

Откуда:
Сообщений: 11554
lemma
я исхожу исключительно из собственного опыта).
Так вперёд на американский форум - в чём проблемы ?

lemma
программер из пост-совка может (возможно) выполнить техническую задачу- драйвер там портировать ... Но если задача выходит за рамки примитива- лучше таки общаться с белыми людьми.
И вы после этого ещё рассчитываете на помощь тут ?

PS вы всерьёз полагаете, что ваша "задача" "выходит за рамки примитива" ?
5 янв 12, 15:26    [11862156]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
"PS вы всерьёз полагаете, что ваша "задача" "выходит за рамки примитива" ?"


А что есть "примитив"?) в моем понимании, это когда есть более-менее устраивающий заказчика алгоритм.

Далее, идут задачи уровнем ниже- копаться в деталях кода. Ассемблер для тех кто ходит в очках с толстыми линзами, в общем.

А в моей задаче нетривиально сделать оценку быстродействия - как время выполнения запроса бубудет меняться с ростом числа слов и пр?

Нетривиально для меня, например. Но раз вы все молчите- значит и для вас.

Ибо если человек не может "на пальцах" что то прикинуть, пояснить где узкое место- он не специалист. А так- постсовковый ходячий интерфейс к информации в MSDN, залитой туда белыми людьми)
5 янв 12, 15:35    [11862193]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

lemma
А в моей задаче нетривиально сделать оценку быстродействия - как время выполнения запроса
бубудет меняться с ростом числа слов и пр?

Это-то как раз тривиально: никак не будет меняться. Потому что создание частотной таблицы
- разовая операция. Далее актуальность информации в ней обычно поддерживается триггерами.
Поэтому запрос к этой таблице будет иметь постоянную скорость.

Posted via ActualForum NNTP Server 1.5

5 янв 12, 15:47    [11862235]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Росгоснанораспилтрест
Member [заблокирован]

Откуда: Главпилорама
Сообщений: 2421
lemma

Ибо если человек не может "на пальцах" что то прикинуть, пояснить где узкое место- он не специалист. А так- постсовковый ходячий интерфейс к информации в MSDN, залитой туда белыми людьми)


Индусы - они... Как бы это... Не совсем белые.
5 янв 12, 15:52    [11862258]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
lemma,

Подобная задача сейчас крутится на ms sql без проблем вообще
вот первых 20 по числу упоминаний:

WordId Spelling Count
----------- -------------------------------------------------- -----------
195309 РОССИЯ 5722368
195355 ЧЕЛОВЕК 4327098
196112 ПУТИН 4266490
195443 ГОД 3753023
195828 МОЧЬ 3445157
195293 ДЕТЬ 3392836
195318 СТАТЬ 2312187
195901 ГОВОРИТЬ 2253791
195730 ЕСТЬ 2191530
198340 ВЫБОРЫ 2156405
196267 БЫТЬ 2142745
196054 СТРАНА 2117816
195259 МЕДВЕДЕВ 2105829
195916 ПАРТИЯ 1983642
195875 ВЛАСТЬ 1932624
195243 ПРЕЗИДЕНТ 1882698
195281 ВРЕМЯ 1872260
195277 СКАЗАТЬ 1849879
195261 НОВЫЙ 1806793
195918 ЕДИНЫЙ 1646604

(20 row(s) affected)


5 янв 12, 15:59    [11862273]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Dimitry Sibiryakov,

"Это-то как раз тривиально: никак не будет меняться. Потому что создание частотной таблицы
- разовая операция. Далее актуальность информации в ней обычно поддерживается триггерами.
Поэтому запрос к этой таблице будет иметь постоянную скорость."


- Отлично! Интересует именно МИНИМИЗАЦИЯ времени выполнения данной "разовой операции". Ибо:


Сегодня мы работаем с одним набором текстов от одного заказчика, завтра - с совсем другим набором.

Но каждый раз перед началом перевода делается некая "переводческая аналитика". //Это скучная наша кухня. Если "на пальцах"- смотрим насколько тексты пересекаются с тем, что мы пранее переводили, доля аббревиатур-чисел в текстах и пр//

В эту "аналитику" входит и то , что мы сейчас делаем запросами к БД- создание итз выковыренных из текстов слов "табличек показывающих с какой частотой встречается слово в данной группе текстов" .

Для каждой группы текстов- СВОЯ табличка частотности. То есть, ранее выполненная работа с ИНЫМИ текстами НИКАК нам не помогает для обсчета НОВОЙ кучи текстов.

Вот и интересуемся- какая БД для конкретного набора текстов создаст "табличку частотности" з аминимальнео время.

PS Можно, конечно, и просто программой пройтись по сырым текстовым файлам- и прямо во время прохода по сырцам сделать такую табличку.
Но такое не годится. Нам нужно много запросов- и хотелось бы все таки делать это максимально стандартными способами- запросами к НЕКОЙ БД, а не писать уникальный код для каждой выборки по словам(.
5 янв 12, 16:04    [11862285]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Росгоснанораспилтрест
lemma
Ибо если человек не может "на пальцах" что то прикинуть, пояснить где узкое место- он не специалист. А так- постсовковый ходячий интерфейс к информации в MSDN, залитой туда белыми людьми)


Индусы - они... Как бы это... Не совсем белые.



- Ну поправим- белые и не совсчем белые, но отбеленные немного)
5 янв 12, 16:06    [11862291]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
lemma, fа вчем проблема? Вы весьма подробно описали, как решать вашу задачу. Мне не очень понятно,в чем тормоза.
Может вам не стоит каждый раз ковырять всю базу текстов заново с нуля при каждом запросе? А подгружать файл в базу по мере его поступления, при подгрузке пересчитывать частотности.
Тут форум технический, уточните проблему - поможем. А на хамов внимания не обращайте.
5 янв 12, 16:07    [11862293]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Andrey Sribnyak,

"Подобная задача сейчас крутится на ms sql без проблем вообще
вот первых 20 по числу упоминаний:"

- Вы делаете упор на "Без проблем".
А для меня ваш ответ не очень информативен, ибо как я писал:

1) Есть набор текстов
2) Надо сделать табличку частотности
3) Работа с КАКОЙ БД МИНИМИЗИРУЕТ (!!!!) время создания таблички подобной той что вы указали.

Ну сделали вы табличку. Так мы и сами можем.
Какая связь вашего ответа с моим постом? Я в нем спрашивал о минимизации времени ее первичного создания.
5 янв 12, 16:09    [11862299]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
.ЛП
Guest
Ggg_old
Тут форум технический

В первую очередь - тут форум "Сравнение СУБД".
Судя по описанию задачи, сравнивать СУБД тут вообще ни к чему. Дмитрий Сибиряков по поводу сравнения и выбора первым же предложением выдал исчерпывающий ответ - "та, которую знает нанятый вами программист". Разве что TJ7 можно ещё порекомендовать, в качестве наилучшего выбора.

А дальше или в форум "Работа", или в форум "Программирование", или в специализированный форум по конкретной СУБД.
5 янв 12, 16:13    [11862313]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

lemma
Для каждой группы текстов- СВОЯ табличка частотности.

Нет, табличка на всех общая. В ней просто есть дополнительное поле "группа текстов".
Почитайте уже какие-нибудь азы проектирования БД...

Posted via ActualForum NNTP Server 1.5

5 янв 12, 16:16    [11862323]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
lemma,

База данных она лишь >>>ХРАНИТ <<< какие-то данные. Минимизировать время для ее заполнения она не в состоянии. Вам же необходима какая-то программная часть которая :
а. Будет разбирать каждый из файлов на составные часть т.е слова
6. Будет проверять есть ли такое слово в словаре
с. В зависимости от предыдущего шага будет либо увеличивать счетчик, либо добавлять новую запись в словарь

Мне не понятна суть проблемы...
5 янв 12, 16:16    [11862325]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Andrey Sribnyak
Мне не понятна суть проблемы...

Суть проблемы выражена словами ТСа "я не программист, а переводчик".

PS: "Беда коль сапоги начнёт тачать пирожник..." (с) Крылов.

Posted via ActualForum NNTP Server 1.5

5 янв 12, 16:19    [11862329]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
hvlad
Member

Откуда:
Сообщений: 11554
lemma
Интересует исключительно скорость выборки

lemma
Вот и интересуемся- какая БД для конкретного набора текстов создаст "табличку частотности" з аминимальнео время.

Кто-то может это расшифровать ?
5 янв 12, 16:35    [11862360]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.  [new]
lemma
Member [заблокирован]

Откуда:
Сообщений: 29
Ggg_old,

"lemma, вчем проблема? Вы весьма подробно описали, как решать вашу задачу. Мне не очень понятно,в чем тормоза."

Спасибо. Проблема, похоже в том, что я не могу сформулировать задачу:

А) Я не программист. Сам могу делать поверхностные вещи, скажем в vb.net. У меня есть более IT-продвинутые сотрудники, но они, увы, исполнители. Поставить цель, написать техзадание, тем более ОБОСНОВАТЬ использование архитектуры и пр- они не могут.

Б) Мой бюджет ограничен- навороченного специалиста я в штат нанять не могу, да и незачем, вроде- работа то проектная.

В) Наверное, идеалом было бы обращение к консалтерам. Но даже с ними как-то не хочется начинать общение с нуля.

Г) Для нас ключевой момент - программа должна максимально быстро выполнять запросы о которых написано выше.
//Можно упомянуть OLAP - на моем дилетантском уровне, при таком подходе из "совсем сырых" цифровых данных делаются некие срезы. Промежуточные расчеты. Используя их, аналитик может делать достаточно сложные запросы - но это будет быстро (!) ибо строятся они не через обращение к исходным данным а к результатам промежуточной обработки. НО УВЫ, ничего похожего на OLAP при работе с текстовыми данными вроде нет///
Поэтому, вроде, тут первичный вопрос о том, в каком виде хранить данные. А именно- выковыренные из исходных текстов слова и пр. (работать нам нужно именно на уровне СЛОВ. Имеющиеся средства полнотекстового поиска большинство наших задач не решают).

Д) Я нигде не смог найти тестов сравнения производительности разных БД. Например, сколько времени занимает создание индекса или некий запрос для 1 млн строк . И т.п.
Плюс сейчас много информации о каких то экзотических для меня вещах типа in- memory database, или базы данных с хранением по столбцам ( Column-oriented DBMS). Все они говорят , что рвут конкурентов).
Плюс все пишут что у Google и пр поисковиков данные хранятся в проприетарном формате.

Е) В общем- избыток информации. Я немного запутался). Упрощаю вопрос.
Есть текстовый файл, plain text. он состоит из строк, в каждой строке- ровно ОДНО слово (макс длина слова 20 байт). Сколько строк? обычно до 10 000 000, но не хотелось бы как то ограничивать себя числом строк..

Нужно сделать табличку частотности. А именно:
Был текстовый файл
-------------
вася
петя
вася
вася
петя
.............
--------------
Стала табличка частотности, сколько раз встречается слово:
вася- 3 раза
петя - 2 раза
---------------------
Вопрос. В какой базе данных такая табличка делается быстрее всего? (то есть нам нужно сначала текстовый файл запихать в некую БД. В лоб по текст-файлам считать не годится)
5 янв 12, 16:36    [11862364]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить