powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
25 сообщений из 126, страница 5 из 6
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603751
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, любезный
Или слушайте что вам говорят те, к кому вы обратились за советом, или прекращайте пудрить тут всем мозги (тем более - в такой хамской манере)
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603752
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyМне это напоминает грекса чем-то
На твоё предложение выложить проект - съехал (допустим побоялся/постеснялся/долго чистить БД от компромата/ещё чего).
Если проигнорирует и мое выдать скрипт и свои показатели скорости, но продолжит спорить по остальным репликами - можно записывать в тролли и закрывать топик...
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603753
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойlockyМне это напоминает грекса чем-то
На твоё предложение выложить проект - съехал (допустим побоялся/постеснялся/долго чистить БД от компромата/ещё чего).
Если проигнорирует и мое выдать скрипт и свои показатели скорости, но продолжит спорить по остальным репликами - можно записывать в тролли и закрывать топик...
Да давно уже можно записывать в тролли
другое дело - сознательные, или такой и есть :)
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603755
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

"Зато верите в то, что 1) кто-то из присутствующих назовёт вам СУБД по вашей формулировке задачи.
2) Это будет правда;
3)) Это вам поможет наиболее эффективно решить задачу...
У каждого свои закидоны... "




- хм.
а почему нет то? это что-коммерческая тайна, или требует немыслимого напряжения ума?
есть спорткар, джип , карьерный самосвал и ваз-2107.

Я спрашиваю "на чем оптимальнее довезти мешок цемента на дачу". Ответ- на автовазе.
И в чем в такой постановкем вопроса подвох?
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603756
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tipa_shekspirАнатоЛой,

"Зато верите в то, что 1) кто-то из присутствующих назовёт вам СУБД по вашей формулировке задачи.
2) Это будет правда;
3)) Это вам поможет наиболее эффективно решить задачу...
У каждого свои закидоны... "




- хм.
а почему нет то? это что-коммерческая тайна, или требует немыслимого напряжения ума?
есть спорткар, джип , карьерный самосвал и ваз-2107.

Я спрашиваю "на чем оптимальнее довезти мешок цемента на дачу". Ответ- на автовазе.
И в чем в такой постановкем вопроса подвох?
Подвох в том, что дача - на острове, моста нет, навигация открывается в марте
какой к черту автоваз?
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603758
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

--------------
вот ведь, ебанашки одномерные тута собрались).
ау, кодеры пещерные!
на улице начало января. я у своих друзей в Подмосковье (это , кстати, и по ip пробивается).
делать нечего- погода плохая- вот про то что актуально и написал).

какие "коды" , вам, тупорыликам надо то?!)


А) есть 1 млн строк в формате Plain text (строка- это то что отделено \r\n)
Б) каждая строка- слово. То есть string длиной до 20 байт, скажем.
В) всё это добро перегнать в БД. И сделать запрос (выше уже много раз писал какой)

- "коды" им подавай. ребят - ну нельзя ж быть такими тупыми то, а?)
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603761
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tipa_shekspir,

хм. И у вас проблемы с задачей в вашей постановке?
Тогда я просто теряюсь.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603762
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tipa_shekspir, смысл по айпи пробивать. Пробивать нужно сразу по хлебалу.
Ты полагаешь, что кто-то уже проводил испытания твоего примера на 2 десятках СУБД? И он здесь есть? И даже скажет тебе ответ?
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603763
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ув. шекспир. Нет простого ответа на ваш вопрос. Я так понимаю, что мои заметки лемму вы не читали, во всяком случае реакции на нее не последовало. Так вот, я там писал, что очень важен у субд нормальный оптимизатор, плюс СУБД должна нормально поддерживать статистику распределения данных в колонках. Это нужно для оптимизатора, что-бы он вверно оценивал вероятности распределения величин в колонках и соответственно выбирал наиболее оптимальный план. Нет метрики, лучшести оптимизатора, есть некий у всех практический опыт насколько часто и в каких ситуациях оптимизатор может промахнуться. Соответсвенно насколько быстро у вас сделается некая выборка сильно завиит от выбранного плана выполнения запроса сервером. Это важно. СУБД это не просто читалка блоков данных с диска, там есть множество алгоритмов выполнения одной и той-же задачи и выбр алгоритма может зависеть от текущего состояния сервера, т.е. не всегда можно предсказать как будет выполнятся конкретный запрос. Так-же есть еще понятие, насколько субд умеет выполнять один и тот-же запрос на нескольких процессорах одновременно. Не все запросы параллелятся, но если этот механизм работает, то почему бы и нет.
Если у вас БД влезет в оперативку, то вообще супер. Если нет, то ставьте RAID - в юбом случае это будет полезно как для производительности, так и для надежности.
И еще, есть еще такие СУБД, которые упрощенно называют колоночными (collumn oriented), они очень быстро работают на агрегации/подсчет данных в колонках. Может в вашем случае это даст за счет другой модели хранения данных сущесвенный прирост по сравнению с обычными СУБД. Но эти колоночные субд либо очень дороги (sybase IQ) либо деланные небольшими усилиями небольших фирм и как они работают в реальности - хз. Да и спецов по ним немного.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603765
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky,

"хм. И у вас проблемы с задачей в вашей постановке?
Тогда я просто теряюсь. "

- Ты не теряйся -бодрись! ты ж не на экзамене у такого ж слабоумного как ты). еще раз:


А. есть 1 млн объектов - "слов" (string, длиной до 20 байт, разделоены \r\n\)

Б. их надо прегнать в БД. время перегона, время формирования индексов и пр стандартных в таких случаях действий - несущественно

В. делаем запрос. показывает частотность. сколько раз встречается слово

Г. Рассматриваем ВСЕ БД поддержитвающих sql запросы. Вопросы лицензионности, стоимости пока не рассматриваем. Сети нет. Пользователь один. ОС- windows, любая.
Единственное ограничение- эта БД должна более менее логично (просто. эффективно) работать с visual studio (.net).

Д. требьуется указать Бд делающую такой запрос за мин время.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603766
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tipa_shekspirlocky,

"хм. И у вас проблемы с задачей в вашей постановке?
Тогда я просто теряюсь. "

- Ты не теряйся -бодрись! ты ж не на экзамене у такого ж слабоумного как ты). еще раз:


А. есть 1 млн объектов - "слов" (string, длиной до 20 байт, разделоены \r\n\)

Б. их надо прегнать в БД. время перегона, время формирования индексов и пр стандартных в таких случаях действий - несущественно

В. делаем запрос. показывает частотность. сколько раз встречается слово

Г. Рассматриваем ВСЕ БД поддержитвающих sql запросы. Вопросы лицензионности, стоимости пока не рассматриваем. Сети нет. Пользователь один. ОС- windows, любая.
Единственное ограничение- эта БД должна более менее логично (просто. эффективно) работать с visual studio (.net).

Д. требьуется указать Бд делающую такой запрос за мин время.
Dictionary<string,int> - для данной постановки задачи наиболее подходящий вариант
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603767
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

"tipa_shekspir, смысл по айпи пробивать. Пробивать нужно сразу по хлебалу.
Ты полагаешь, что кто-то уже проводил испытания твоего примера на 2 десятках СУБД? И он здесь есть? И даже скажет тебе ответ? "



- нет , я не считаю что кто то проводил тестинг моего примера.

но я считаю, что с вероятностью примерно 1% на этом формуе есть не му**к а человек с приличным образованием и некривыми руками.
Который знает что такое логика, интерполяция, прогнозирование и пр. Это чел может пообщаться со мной в понятном мне ключе.

к тебе, тупорылику, это не относится)
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603768
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tipa_shekspirА...
Д. требьуется указать Бд делающую такой запрос за мин время.
Сколько денег даёшь?
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603769
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если кратко, то среди существующих СУБД дя вашей задачи нет какой-то такой СУБД, со встроенным убер-алгоритмом, который бы давал какой-то заметный всем результат.
Если кратко: посмотрите MSSQL как весьма дружелюбный к пользователю приличный сервер. Ну и я не могу не посоветовать попробовать Sybase SA, как дружелюбный неплохой сервер с приличным оптимизатором. Но а вообще сгодится все, mysql только не берите.
Ну и универсальная вундер-вафля-субд : oracle. Умеет все, но требует квалификации.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603774
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ggg_old,

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


"Если кратко: посмотрите MSSQL как весьма дружелюбный к пользователю приличный сервер. "
- конечно. мы простые. мы виндусятники. Но вот такой более узкий вопрос. если брать линейку - локальные файлы mdb, ms sql express, ms sql - отличается ли у них скорость на таких запросах?
я ведь как рассуждаю- у многопользовательских вещей типа ms sql могут быть НЕКИЕ ОГРАНИЧЕНИЯ по производительности в пользу СТАБИЛЬНОСТИ.
например по забираемой памяти. А у однопользовательской access такого ограничения может и не быть? как полагаете -будут ли между ними СУЩЕСТВЕННАЯ разница по скорости ( всё что меньше 20% -это не разница. эжто ерунда и погрешность)






Ну и я не могу не посоветовать попробовать Sybase SA, как дружелюбный неплохой сервер с приличным оптимизатором. Но а вообще сгодится все, mysql только не берите.
- спааибо. будет чем заняться...

Ну и универсальная вундер-вафля-субд : oracle. Умеет все, но требует квалификации.
- много про них говорят. но ни у кого из знакомых не видел, увы, в отличие от ms sql И т.п.
Тесты бы посмотреть. Казалось бы чего проще- делать сложный запрос и посмотреть время ваыполшнения. Но ораклы и пр ведь под иное заточены. Под большое число одновременных запросов и пр. Нам скорее embedded database надо. Десктопные локальные однопользовательсие...
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603775
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,
"сколько денег даешь"

хм. посмотрел твои посты по профилю. у тебя там дельфи и информикс.
это неинтересно.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603776
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSupertipa_shekspirТак что бан непонятен.если Вам родители в детстве что-то не объяснили, мне сейчас это делать бесполезно

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

Если на этом примере проинтерполировать SPb и "Подмосковье", культурность регионов просто таки сильно разная...
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603777
мне кажется понятно что хочет автор топика и какова логика

тк тема форума
Сравнение СУБД
то предполагается что здесь люди которые повидали не одну а две, три, а может и четыре различных базы данных
и он хочет чтобы его запрос каждый на своей базе прогнал
таким образом каждый сделает по немногу а в сумме получится ответ по многим бд

те надо сделать так
1 создать общий txt файл
2 выложить его здесь
3 создать общий запрос
4 выложить его здесь
5 каждый желающий скачает это все
6 каждый желающий запустит это все у себя (предварительно зальет в бд текст и запрос)
7 чтобы как-то привязаться к общему знаменателю можно сравнивать время выполнения на тестовой базе и на эталонной базе
8 за эталонную взять SqlExpress как всем доступную и всем известную для чистоты надо чтобы был тот же билд релиз и тд
9 сравнить во сколько раз дольше или быстрее выполняется запрос на тестовой базе в сравнении с эталонной
10 выложить результаты сюда

смысла конечно никакого
зато мы компетентно ответим на вопрос
какая бд на заданных данных и на заданном запросе быстрее
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603778
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

да. пост-ленинград -это редкостная помойка. даже хуже чем москва.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603779
Ой, как тут интересно ...
проблема в чем, где тормозящие запросы и код?

не будет нормальных вопросов - не будет ответов.

ради спортивного интереса:
книги брал тут -> http://alltxt.org.ua/article.php?id=060
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
iconv -f CP1251 "Вишневый сад.txt"                                     >"Вишневый сад.utf8"
iconv -f CP1251 "Дядя Ваня.txt"                                        >"Дядя Ваня.utf8"
iconv -f CP1251 "Иванов.txt"                                           >"Иванов.utf8"
iconv -f CP1251 "Короткие пьесы.txt"                                   >"Короткие пьесы.utf8"
iconv -f CP1251 "Леший.txt"                                            >"Леший.utf8"
iconv -f CP1251 "Рассказы 1887 г..txt"                                 >"Рассказы 1887 г..utf8"
iconv -f CP1251 "Рассказы и повести 1888 - 1891 гг..txt"               >"Рассказы и повести 1888 - 1891 гг..utf8"
iconv -f CP1251 "Рассказы и повести 1892 - 1894 гг..txt"               >"Рассказы и повести 1892 - 1894 гг..utf8"
iconv -f CP1251 "Рассказы и повести 1894 - 1897 гг..txt"               >"Рассказы и повести 1894 - 1897 гг..utf8"
iconv -f CP1251 "РАссказы и повести 1898 - 1903 гг..txt"               >"РАссказы и повести 1898 - 1903 гг..utf8"
iconv -f CP1251 "Рассказы и юморески 1884-1885 гг. Драма на охоте.txt" >"Рассказы и юморески 1884-1885 гг. Драма на охоте.utf8"
iconv -f CP1251 "Рассказы и юморески 1885 - 1886 гг..txt"              >"Рассказы и юморески 1885 - 1886 гг..utf8"
iconv -f CP1251 "Рассказы, повести, юморески 1880 - 1882 гг..txt"      >"Рассказы, повести, юморески 1880 - 1882 гг..utf8"
iconv -f CP1251 "Рассказы, юморески 1883 - 1884 гг..txt"               >"Рассказы, юморески 1883 - 1884 гг..utf8"
iconv -f CP1251 "Три Сестры.txt"                                       >"Три Сестры.utf8"
iconv -f CP1251 "Чайка.txt"                                            >"Чайка.utf8"
Код: java
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package book.word;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
import java.io.File;
import java.io.FileNotFoundException;

public class BooksWords {

    public static Connection connection;

    public static void InitConnection() throws ClassNotFoundException, SQLException {

        Class.forName("org.h2.Driver");
        Class.forName("org.postgresql.Driver");

        connection = DriverManager.getConnection("jdbc:h2:mem:test", "sa", "");
        //connection = DriverManager.getConnection("jdbc:postgresql:postgres", "postgres", "");

        try {

            connection.prepareStatement("drop table if exists book_word;").execute();
            connection.prepareStatement("drop table if exists word;").execute();
            connection.prepareStatement("drop table if exists book;").execute();

            //connection.prepareStatement("drop sequence if exists sq_book;").execute();
            //connection.prepareStatement("drop sequence if exists sq_word;").execute();

            connection.prepareStatement("drop sequence sq_book;").execute();
            connection.prepareStatement("drop sequence sq_word;").execute();
        } catch (SQLException e) {
        }

        connection.prepareStatement("create sequence sq_book;").execute();
        connection.prepareStatement("create table book (id int not null default nextval('sq_book'), book varchar not null);").execute();
        connection.prepareStatement("alter table book add constraint pk_book primary key (id);").execute();
        connection.prepareStatement("create unique index ak_book on book (book);").execute();



        connection.prepareStatement("create sequence sq_word;").execute();
        connection.prepareStatement("create table word (id int not null default nextval('sq_word'), word varchar not null);").execute();
        connection.prepareStatement("alter table word add constraint pk_word primary key (id);").execute();
        connection.prepareStatement("create unique index ak_word on word (word);").execute();


        connection.prepareStatement("create table book_word (bookid int not null, wordid int not null, cnt int);").execute();
        connection.prepareStatement("alter table book_word add constraint pk_book_word primary key (bookid, wordid);").execute();
        connection.prepareStatement("alter table book_word add constraint fk_book_word_book foreign key (bookid) references book (id);").execute();
        connection.prepareStatement("alter table book_word add constraint fk_book_word_word foreign key (wordid) references word (id);").execute();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // TODO code application logic here
        InitConnection();

        ResultSet rs;

        WordFrequency("/tmp/b&w/Вишневый сад.utf8");
        WordFrequency("/tmp/b&w/Дядя Ваня.utf8");
        WordFrequency("/tmp/b&w/Иванов.utf8");
        WordFrequency("/tmp/b&w/Короткие пьесы.utf8");
        WordFrequency("/tmp/b&w/Леший.utf8");
        WordFrequency("/tmp/b&w/Рассказы 1887 г..utf8");
        WordFrequency("/tmp/b&w/Рассказы и повести 1888 - 1891 гг..utf8");
        WordFrequency("/tmp/b&w/Рассказы и повести 1892 - 1894 гг..utf8");
        WordFrequency("/tmp/b&w/Рассказы и повести 1894 - 1897 гг..utf8");
        WordFrequency("/tmp/b&w/РАссказы и повести 1898 - 1903 гг..utf8");
        WordFrequency("/tmp/b&w/Рассказы и юморески 1884-1885 гг. Драма на охоте.utf8");
        WordFrequency("/tmp/b&w/Рассказы и юморески 1885 - 1886 гг..utf8");
        WordFrequency("/tmp/b&w/Рассказы, повести, юморески 1880 - 1882 гг..utf8");
        WordFrequency("/tmp/b&w/Рассказы, юморески 1883 - 1884 гг..utf8");
        WordFrequency("/tmp/b&w/Три Сестры.utf8");
        WordFrequency("/tmp/b&w/Чайка.utf8");


        rs = connection.prepareStatement(
                "select 'к-во слов, которые присутствуют во всех книгах' as t, count(*) as c from word where id in (select wordid from book_word group by wordid having count(*)=(select count(*) from book))"
                + " union all "
                + "select 'к-во слов, которые встречаются только один раз', count(*) from word where id in (select wordid from book_word group by wordid having sum(cnt)=1)"
                + " union all "
                + "select 'к-во слов, всего', sum(cnt) from book_word"
                + " union all "
                + "select 'к-во слов, уникальных', count(*) from word").executeQuery();

        System.out.print("\n");

        while (rs.next()) {
            System.out.printf("%-20s%10d\n", rs.getString(1), rs.getInt(2));
        }

        if (connection != null) {
            connection.close();
            connection = null;
        }
    }

    //http://www.dcs.bbk.ac.uk/~keith/isd11/resources/workedExamples/ch10.pdf
    /**
    This program prints the frequencies of all words in "Alice in Wonderland".
     */
    private static void WordFrequency(String _file) throws SQLException {
        Map<String, Integer> frequencies = new TreeMap<String, Integer>();

        Scanner in;
        try {
            in = new Scanner(new File(_file));
            while (in.hasNext()) {
                String word = clean(in.next());

                // Get the old frequency count

                Integer count = frequencies.get(word);

                // If there was none, put 1; otherwise, increment the count

                if (count == null) {
                    count = 1;
                } else {
                    count = count + 1;
                }

                frequencies.put(word, count);
            }
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }

        // Print all words and counts

        PreparedStatement insertBook, insertWord, insertBookWord, selectWord;
        ResultSet generatedKeys;


        insertBook = BooksWords.connection.prepareStatement("insert into book (id, book) values (default, ?)", Statement.RETURN_GENERATED_KEYS);
        insertBook.setString(1, _file);
        insertBook.execute();
        generatedKeys = insertBook.getGeneratedKeys();
        int bookID = 0;
        while (generatedKeys.next()) {
            bookID = generatedKeys.getInt(1);
        }
        generatedKeys.close();

        insertBook.clearParameters();
        insertBook.close();


        insertWord = BooksWords.connection.prepareStatement("insert into word (word) select ? where not exists (select id from word w where w.word = ?)", Statement.RETURN_GENERATED_KEYS);
        selectWord = BooksWords.connection.prepareStatement("select id from word where word = ?");
        insertBookWord = BooksWords.connection.prepareStatement("insert into book_word (bookid, wordid, cnt) values (?, ?, ?)");

        int wordID = 0;
        for (String key : frequencies.keySet()) {

            insertWord.setString(1, key);
            insertWord.setString(2, key);
            insertWord.execute();
            generatedKeys = insertWord.getGeneratedKeys();

            if (generatedKeys.next()) {
                wordID = generatedKeys.getInt(1);

            } else {
                selectWord.setString(1, key);
                generatedKeys = selectWord.executeQuery();
                if (generatedKeys.next()) {
                    wordID = generatedKeys.getInt(1);
                } else {
                    //
                }
            }

            insertBookWord.setInt(1, bookID);
            insertBookWord.setInt(2, wordID);
            insertBookWord.setInt(3, frequencies.get(key));
            insertBookWord.execute();

            //System.out.printf("%-20s%10d\n", key, frequencies.get(key));
        }
        //BooksWords.connection.
    }

    private static String clean(String s) {
        String r = "";
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (Character.isLetter(c)) {
                r = r + c;
            }
        }
        return r.toLowerCase();
    }
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
time java -jar Book\&Word.jar

к-во слов, которые присутствуют во всех книгах       545
к-во слов, которые встречаются только один раз     48752
к-во слов, всего       1265500
к-во слов, уникальных    102084

real    0m6.878s
user    0m10.980s
sys     0m0.315s
p.s.
на жабе не пишу, что-то клямка упала
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603780
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tipa_shekspirАнатоЛой,
"сколько денег даешь"

хм. посмотрел твои посты по профилю. у тебя там дельфи и информикс.
это неинтересно.
А как же логика и прогнозирование?
Почему думаешь, что работу буду делать я? :)
И сколько денег даёшь за наводку на данный топик за каждого человека из упомянутых 1% с нужным тебе "образованием"?
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603781
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ответ для "ничего не понял,"-

"мне кажется понятно что хочет автор топика и какова логика

тк тема форума
Сравнение СУБД
то предполагается что здесь люди которые повидали не одну а две, три, а может и четыре различных базы данных"
- не а. Четыре это вроде до фига.
Я считаю, что если чел чему то учился и у него не кривые руки -ему нет необходимости пробовать тыщу клонов. Он попробовал некое подмножество.может для самых мудрых достаточно пары ms sql И какой нипбудь firebird, а об остальном он судит экспертно. интреполируя и пр


и он хочет чтобы его запрос каждый на своей базе прогнал
- я такого не хочу. за такое деньги платить надо. я пару слов в ответ на мой вопрос прошу.


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



те надо сделать так
1 создать общий txt файл
2 выложить его здесь
3 создать общий запрос
4 выложить его здесь
5 каждый желающий скачает это все
6 каждый желающий запустит это все у себя (предварительно зальет в бд текст и запрос)
7 чтобы как-то привязаться к общему знаменателю можно сравнивать время выполнения на тестовой базе и на эталонной базе
8 за эталонную взять SqlExpress как всем доступную и всем известную для чистоты надо чтобы был тот же билд релиз и тд
9 сравнить во сколько раз дольше или быстрее выполняется запрос на тестовой базе в сравнении с эталонной
10 выложить результаты сюда

- хм. грубо говоря железо разное. у вас более шустрая память иль еще что.это может влять на SqlExpress и тестируемую БД по разному... и это перекорежет всю картинку и сделает бессмысленной затею0


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

зато мы компетентно ответим на вопрос
какая бд на заданных данных и на заданном запросе быстрее
- ну ну. типа пошутили? вы б не позорились, товарисч. дураком кажетесь.
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603782
tipa_shekspir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой,

А как же логика и прогнозирование?
- так я тебе и ответил. ты ж - дельфи. А носитель сего по определению неинтересен в качестве эксперта, прогнозера и пр.


Почему думаешь, что работу буду делать я? :)
- не думаю. меньше всего мне хочется связывваться с хламом.


И сколько денег даёшь за наводку на данный топик за каждого человека из упомянутых 1% с нужным тебе "образованием"?
- тебе ничего не дам. за общение с такими как ты - ты мне должден доплачивать за душевные травмы.

пойми, однобайтный. ты хороший чел наверное но как эксперт в данном вопросе неинтересен. ничего личного
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603784
ничего я не пошутил

как иначе узнать на вопрос только померять и тогда узнать

как узнать кто победит в футбольном матче?
досмотреть матч до конца
а не читать статистику прошлых встреч
читать как сыграны были игры неделю две назад
...
Рейтинг: 0 / 0
Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
    #37603785
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моя душа не вынесла окончательно
...
Рейтинг: 0 / 0
25 сообщений из 126, страница 5 из 6
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Помогите с выбором БД для анализа текстов -до сотен тысяч страниц.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]