140 likes | 313 Views
Эффективное создание текстовых индексов. Веретенников Александр. CLB дерево. Веретенников А. Б., Лукач Ю. С. Еще один способ индексации больших массивов текстов. Известия Уральского государственного университета. Серия «Компьютерные науки», 2006. CLB- дерево. B- дерево.
E N D
Эффективное создание текстовых индексов Веретенников Александр
CLB дерево • Веретенников А. Б., Лукач Ю. С. Еще один способ индексации больших массивов текстов. Известия Уральского государственного университета. Серия «Компьютерные науки», 2006.
CLB-дерево B-дерево Таблица для слов из словаря … … … Вспомогательные таблицы
CLB-индекс Атрибуты документов CLB-дерево Настройки и информация об остальных компонентах CLB-дерево Репозитарий … Индекс похожих документов CLB-дерево
Система индексирования Распознавание кодировки Морфология Модуль поддержки форматов файлов Модуль репозитария Модуль атрибутов документов Ядро COM сервер
Архивы и документы RTF Модули DLL PDF Модуль поддержки форматов CHM Модули JAVA (JNI) … ZIP
Форматы файлов • RTF, PDF, CHM, HTML • ZIP, CAB, RAR, 7Z, ARJ, TAR, … • UNICODE, UTF8, CP1251, ASCII, KOI8
Теоретические результаты • d – доля известных слов в текстах, т. е. тех, которые входят в словарь • R – текущее количество слов в CLB-дереве • H– размер страницы B-дерева, • K – размер кластера.
Теоретические результаты • Теорема 1: Вставка N слов в CLB-индекс потребует O(d∙N/K + (1-d)∙N∙(1+ logH((1-d)∙(R+N)))) обращений к внешней памяти.
Теоретические результаты • Теорема 2: Поиск фразы из N слов в CLB-индексе потребует O(N∙(logH((1-d)∙R) + occ/K) обращений к внешней памяти, где occ – количество вхождений данных слов в текстах.
Теоретические результаты • Поиск с помощью инвертированных файлов O(N∙(occ/K)), у нас O(N∙(logH((1-d)∙R) + occ/K), но N∙(logH((1-d)∙R) – мало по сравнению с N∙(occ/K)
Эксперименты • 25 гигабайт текста (300 000 файлов) индексируется за 3 часа 3 млрд. слов. 3,6 млрд. форм слов. E6700, 2гб RAM. 21,5 гб чистого текста.
Эксперименты • 75 гигабайт текста (600 000 файлов) индексируется за 10 часов 9,8 млрд. слов 12,3 млрд. форм слов P4, 2гб RAM. 70 гб чистого текста.
Литература • Prywes, N. S., Gray, H. J. The organization of a Multilist-type associative memory. IEEE Trans. on Communication and Electronics, 68 (1963), 488-492. • Ferragina, P., Grossi, R. The string B-tree: a new data structure for string search in external memory and its applications. Journal of the ACM, 46, 2 (1999), 236-280. • Bayer, R., McCreight, E. Organization and maintenance of large ordered indexes. Acta Informatica 1, 3 (1972), 173-189. • Веретенников А. Б., Лукач Ю. С. Еще один способ индексации больших массивов текстов. Известия Уральского государственного университета. Серия «Компьютерные науки», 2006. • Лукач Ю. С. Быстрый морфологический анализ флективных языков. Международная алгебраическая конференция: К 100-летию со дня рождения П. Г. Конторовича и 70-летию Л. Н. Шеврина. Тез. докл. Екатеринбург: Изд-во Урал. ун-та, 2005, с. 182-183.