|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Бюро переводов. Раньше мы решали свои задачи с помощью программ полнотекстового поиска вроде 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:14 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaКто на таких задачах быстрее - SQLite, JET, Firebird, MS SQL Express и т.п.? Та, которую знает нанятый вами программист. То недоразумение, которое на данный момент выполняет его функции надо перевести на другую работу, более соответствующую его складу ума. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:26 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Поясню. я- переводчик, не программист. Чтобы нанимать человека со знанием интересующих нас технологий работы с текстом (морфологизация, токенизация и пр) - надо хотя бы в общих чертах понимать перспективы задачи. А может там такое потребуется железо, что это будет просто нерентабельным?) Возможно , мы НЕ ТАК работаем с текстами, как следовало бы. Ок. Но ваш ответ очень типичен для рашкинских программеров). Мне, например, приходится много работать с американскими юристами- к ним обращаешься- помогут даже с общими вопросами - ибо у них есть ВИДЕНИЕ и пр. А к местным обратиться- отвечают примерно как вы). Типа вы нам ТехЗадание поставьте и пр. лепет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:34 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaМне, например, приходится много работать с американскими юристами- к ним обращаешься- помогут даже с общими вопросами - ибо у них есть ВИДЕНИЕ и пр. Нет, потому что за свои ответы, даже бесполезные, они выставят вам счёт. Если Вы обратитесь ко мне в официальную техподдержку, я тоже помогу Вам даже с общими вопросами. За соответствующую плату. Требуемая мощность железа обратно пропорциональна квалификации вышеупомянутого программиста. Что Вы и можете наблюдать на собственном примере. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:40 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Анекдот был такой: - Если на американском форуме задать вопрос- ответят решением. - Если на израильском форуме задать вопрос- ответят вопросом. - Если на российском форуме задать вопрос- тебе объяснят , что ты идиот) Вы прям таки иллюсстрация. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:45 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaАнекдот был такой: Этот анекдот пересказывают исключительно те, кто не пытался обращаться на американские форумы. Вопросы сложнее 2+2 там остаются без ответов годами. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:52 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, я исхожу исключительно из собственного опыта). программер из пост-совка может (возможно) выполнить техническую задачу- драйвер там портировать ... Но если задача выходит за рамки примитива- лучше таки общаться с белыми людьми. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:55 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaНаша типичная задачка: - есть таблица базы данных с двумя столбцами. В одном столбце - слово (тип string). В другом столбце- ID файла содержащего это слово и т.п. количество слов в конкретном языке конечно. Миллиона слов, если я не ошибаюсь, нет ни в одном языке. Так что ваша "база данных" спроектирована неверно. О чем вам и намекнул DS. Так что, вам нужно или уже готовое решение, или программист. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 14:59 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaлучше таки общаться с белыми людьми. Ну так вперёд! Потом расскажете о результатах. Ваши предшественники отмазывались незнанием английского, но для переводчика это было бы смешно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:10 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
kdv, Я же писал в посте- "создаем табличку частотности слов," то есть - имеем десятки тысяч файлов в формате plain text. Это наши (и предоставленные заказчиками) переводы. частотность- это сколько раз слово встречается во всех файлах. или в конкретном файле. ---------------------------- пример. Было до обсчета вася-IDфайл1 петя-IDфайл1 ... вася-IDфайл2 маша-IDфайл2 ... стало (слово "Вася" встречается 2 раза, "петя"- 1 раз) вася- 2 петя- 1 --------------------------------------------------------------- Кроме того. При анализе текстов мы отбрасывам "стоп-слова" (предлоги "на", "под", междометия "ух" и пр). Еще и стеммером приводим слова к единой форме. Поэтому, с учетом того, что сырые данные нами обрабатываются (подсчет числа слов- самый простой пример обработки)- то на выходе, после обработки, таблички частотности слов редко содержат более 20 000 слов. То есть ДО обработки- миллион слов, выковыренных из txt файлов. После обработки- редко более 20 000 слов (и то там много фамилий, географических названий и пр)- ничего аномального для русского языка у нас нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:15 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemma я исхожу исключительно из собственного опыта). Так вперёд на американский форум - в чём проблемы ? lemmaпрограммер из пост-совка может (возможно) выполнить техническую задачу- драйвер там портировать ... Но если задача выходит за рамки примитива- лучше таки общаться с белыми людьми.И вы после этого ещё рассчитываете на помощь тут ? PS вы всерьёз полагаете, что ваша "задача" "выходит за рамки примитива" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:26 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
"PS вы всерьёз полагаете, что ваша "задача" "выходит за рамки примитива" ?" А что есть "примитив"?) в моем понимании, это когда есть более-менее устраивающий заказчика алгоритм. Далее, идут задачи уровнем ниже- копаться в деталях кода. Ассемблер для тех кто ходит в очках с толстыми линзами, в общем. А в моей задаче нетривиально сделать оценку быстродействия - как время выполнения запроса бубудет меняться с ростом числа слов и пр? Нетривиально для меня, например. Но раз вы все молчите- значит и для вас. Ибо если человек не может "на пальцах" что то прикинуть, пояснить где узкое место- он не специалист. А так- постсовковый ходячий интерфейс к информации в MSDN, залитой туда белыми людьми) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:35 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaА в моей задаче нетривиально сделать оценку быстродействия - как время выполнения запроса бубудет меняться с ростом числа слов и пр? Это-то как раз тривиально: никак не будет меняться. Потому что создание частотной таблицы - разовая операция. Далее актуальность информации в ней обычно поддерживается триггерами. Поэтому запрос к этой таблице будет иметь постоянную скорость. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:47 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemma Ибо если человек не может "на пальцах" что то прикинуть, пояснить где узкое место- он не специалист. А так- постсовковый ходячий интерфейс к информации в MSDN, залитой туда белыми людьми ) Индусы - они... Как бы это... Не совсем белые. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:52 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemma, Подобная задача сейчас крутится на ms sql без проблем вообще вот первых 20 по числу упоминаний: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 15:59 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, "Это-то как раз тривиально: никак не будет меняться. Потому что создание частотной таблицы - разовая операция. Далее актуальность информации в ней обычно поддерживается триггерами. Поэтому запрос к этой таблице будет иметь постоянную скорость." - Отлично! Интересует именно МИНИМИЗАЦИЯ времени выполнения данной "разовой операции". Ибо: Сегодня мы работаем с одним набором текстов от одного заказчика, завтра - с совсем другим набором. Но каждый раз перед началом перевода делается некая "переводческая аналитика". //Это скучная наша кухня. Если "на пальцах"- смотрим насколько тексты пересекаются с тем, что мы пранее переводили, доля аббревиатур-чисел в текстах и пр// В эту "аналитику" входит и то , что мы сейчас делаем запросами к БД- создание итз выковыренных из текстов слов "табличек показывающих с какой частотой встречается слово в данной группе текстов" . Для каждой группы текстов- СВОЯ табличка частотности. То есть, ранее выполненная работа с ИНЫМИ текстами НИКАК нам не помогает для обсчета НОВОЙ кучи текстов. Вот и интересуемся- какая БД для конкретного набора текстов создаст "табличку частотности" з аминимальнео время. PS Можно, конечно, и просто программой пройтись по сырым текстовым файлам- и прямо во время прохода по сырцам сделать такую табличку. Но такое не годится. Нам нужно много запросов- и хотелось бы все таки делать это максимально стандартными способами- запросами к НЕКОЙ БД, а не писать уникальный код для каждой выборки по словам(. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:04 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
РосгоснанораспилтрестlemmaИбо если человек не может "на пальцах" что то прикинуть, пояснить где узкое место- он не специалист. А так- постсовковый ходячий интерфейс к информации в MSDN, залитой туда белыми людьми ) Индусы - они... Как бы это... Не совсем белые. - Ну поправим- белые и не совсчем белые, но отбеленные немного) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:06 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemma, fа вчем проблема? Вы весьма подробно описали, как решать вашу задачу. Мне не очень понятно,в чем тормоза. Может вам не стоит каждый раз ковырять всю базу текстов заново с нуля при каждом запросе? А подгружать файл в базу по мере его поступления, при подгрузке пересчитывать частотности. Тут форум технический, уточните проблему - поможем. А на хамов внимания не обращайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:07 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Andrey Sribnyak, "Подобная задача сейчас крутится на ms sql без проблем вообще вот первых 20 по числу упоминаний:" - Вы делаете упор на "Без проблем". А для меня ваш ответ не очень информативен, ибо как я писал: 1) Есть набор текстов 2) Надо сделать табличку частотности 3) Работа с КАКОЙ БД МИНИМИЗИРУЕТ (!!!!) время создания таблички подобной той что вы указали. Ну сделали вы табличку. Так мы и сами можем. Какая связь вашего ответа с моим постом? Я в нем спрашивал о минимизации времени ее первичного создания. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:09 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Ggg_oldТут форум технический В первую очередь - тут форум "Сравнение СУБД". Судя по описанию задачи, сравнивать СУБД тут вообще ни к чему. Дмитрий Сибиряков по поводу сравнения и выбора первым же предложением выдал исчерпывающий ответ - "та, которую знает нанятый вами программист". Разве что TJ7 можно ещё порекомендовать, в качестве наилучшего выбора. А дальше или в форум "Работа", или в форум "Программирование", или в специализированный форум по конкретной СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:13 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaДля каждой группы текстов- СВОЯ табличка частотности. Нет, табличка на всех общая. В ней просто есть дополнительное поле "группа текстов". Почитайте уже какие-нибудь азы проектирования БД... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:16 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemma, База данных она лишь >>>ХРАНИТ <<< какие-то данные. Минимизировать время для ее заполнения она не в состоянии. Вам же необходима какая-то программная часть которая : а. Будет разбирать каждый из файлов на составные часть т.е слова 6. Будет проверять есть ли такое слово в словаре с. В зависимости от предыдущего шага будет либо увеличивать счетчик, либо добавлять новую запись в словарь Мне не понятна суть проблемы... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:16 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Andrey SribnyakМне не понятна суть проблемы... Суть проблемы выражена словами ТСа "я не программист, а переводчик". PS: "Беда коль сапоги начнёт тачать пирожник..." (с) Крылов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:19 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
lemmaИнтересует исключительно скорость выборки lemmaВот и интересуемся- какая БД для конкретного набора текстов создаст "табличку частотности" з аминимальнео время. Кто-то может это расшифровать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:35 |
|
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
|
|||
---|---|---|---|
#18+
Ggg_old, "lemma, вчем проблема? Вы весьма подробно описали, как решать вашу задачу. Мне не очень понятно,в чем тормоза." Спасибо. Проблема, похоже в том, что я не могу сформулировать задачу: А) Я не программист. Сам могу делать поверхностные вещи, скажем в vb.net. У меня есть более IT-продвинутые сотрудники, но они, увы, исполнители. Поставить цель, написать техзадание, тем более ОБОСНОВАТЬ использование архитектуры и пр- они не могут. Б) Мой бюджет ограничен- навороченного специалиста я в штат нанять не могу, да и незачем, вроде- работа то проектная. В) Наверное, идеалом было бы обращение к консалтерам. Но даже с ними как-то не хочется начинать общение с нуля. Г) Для нас ключевой момент - программа должна максимально быстро выполнять запросы о которых написано выше. //Можно упомянуть OLAP - на моем дилетантском уровне, при таком подходе из "совсем сырых" цифровых данных делаются некие срезы. Промежуточные расчеты. Используя их, аналитик может делать достаточно сложные запросы - но это будет быстро (!) ибо строятся они не через обращение к исходным данным а к результатам промежуточной обработки. НО УВЫ, ничего похожего на OLAP при работе с текстовыми данными вроде нет/// Поэтому, вроде, тут первичный вопрос о том, в каком виде хранить данные. А именно- выковыренные из исходных текстов слова и пр. (работать нам нужно именно на уровне СЛОВ. Имеющиеся средства полнотекстового поиска большинство наших задач не решают). Д) Я нигде не смог найти тестов сравнения производительности разных БД. Например, сколько времени занимает создание индекса или некий запрос для 1 млн строк . И т.п. Плюс сейчас много информации о каких то экзотических для меня вещах типа in- memory database, или базы данных с хранением по столбцам ( Column-oriented DBMS). Все они говорят , что рвут конкурентов). Плюс все пишут что у Google и пр поисковиков данные хранятся в проприетарном формате. Е) В общем- избыток информации. Я немного запутался). Упрощаю вопрос. Есть текстовый файл, plain text. он состоит из строк, в каждой строке- ровно ОДНО слово (макс длина слова 20 байт). Сколько строк? обычно до 10 000 000, но не хотелось бы как то ограничивать себя числом строк.. Нужно сделать табличку частотности. А именно: Был текстовый файл ------------- вася петя вася вася петя ............. -------------- Стала табличка частотности, сколько раз встречается слово: вася- 3 раза петя - 2 раза --------------------- Вопрос. В какой базе данных такая табличка делается быстрее всего? (то есть нам нужно сначала текстовый файл запихать в некую БД. В лоб по текст-файлам считать не годится) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 16:36 |
|
|
start [/forum/topic.php?fid=35&msg=37603050&tid=1552604]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 147ms |
0 / 0 |