Поисковая машина старого поколения

P
На сайте с 07.01.2004
Offline
3
2446

Уважаемые, Гуру, мой вопрос скорее из раздела "для чайников", но в соответствующем разделе обсужлается все что угодно кроме самих поисковых технологий.

Я действительно собираюсь написать поисковую машину (на Дельфи) локальных файлов. Прочитав множество информации о технологии я получил некоторую кашу в голове. До сих пор я осуществлял поиск очень просто:

1. Составление индекса текста типа

слово - его точная координата в тексте №1, координата №2 и т.д.

2. Поиск осуществляется по индексу.

3. Переход в контекст по координатам по очереди.

С появлением простейших лематизаторов я стал индексировать только лемы (при этом в пункт 2 я тоже применял лематизатор). Это значительно сократило индекс. Но скорость построения и обработки индекса оставляет желать лучшего.

Какие же есть варианты ускорения данной технологии? Задача проста: поиск одного слова с учетом морфологии и переход в контекст.

Более того, хотелось бы получить адекватный лематизатор, т.е. нужен хороший словарь (где бы его скачать?).

Далее интересует, что делать с хещ таблицей. Какой в ней вообще прок? Если я верно понял, с ее помощью можно значительно ускорить поиск?

С уважением, Павел.

Z
На сайте с 23.03.2004
Offline
0
#1
Как писал Pavelkq
Какие же есть варианты ускорения данной технологии? Задача проста: поиск одного слова с учетом морфологии и переход в контекст.
Более того, хотелось бы получить адекватный лематизатор, т.е. нужен хороший словарь (где бы его скачать?).
Далее интересует, что делать с хещ таблицей. Какой в ней вообще прок? Если я верно понял, с ее помощью можно значительно ускорить поиск?

С уважением, Павел.

С января так никто и не ответил...

Делфи для такой задачи вообще-то весьма неудобен, лучше с++

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

Deoden
На сайте с 26.03.2004
Offline
122
#2

Не ответил не кто, потому что не верит что в одиночку (или даже 2-3 чел) можно создать поисковик то что он его напишет не факт что найдет достаточно мощный сервер (хостин который согласится его обслуживать) а ведь для только старта более мание ходового движка на как минимум 3 хорошо оборудованных сервера надо. Обслуживание их хостинг -службой мне кажется не реальное, то есть они физически должны находится там где и разработчики...

Да если поискать, то в нете есть много (хоть и сырых) движков и над ними работали группы людей. Для такого дела нужны большие капиталовложения...

P.S. Это мое лично мнение не кому не навязываю...

B
На сайте с 02.09.2002
Offline
42
bvd
#3
Как писал Deoden
Не ответил не кто, потому что не верит ...

Я думаю, что никто не ответил потому, что если

человек употребляет слова типа "лема" или "хещ",

или интересуется где взять словарь для лемматизации,

то ему сначала стоит еще немного "прочитать множество информации",

в том числе и на данном форуме.

"истина где-то в деталях..."

K
На сайте с 22.04.2003
Offline
31
Ken
#4

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

Допустим - это будет локальный поисковик в текстовых документах.

2 - шага пройдены. Подключен некий морфологический словарь и стэммер. Создана система индексации слов, для словоформы можно найти список документов где-она встречается. Что следует делать дальше?

B
На сайте с 02.09.2002
Offline
42
bvd
#5
Как писал Ken
Что следует делать дальше?

Может в самом начале озадачиться вопросом - зачем делать

новый поисковик локальный/корпоративный/глобальный?

Если есть ответ на этот вопрос - что-то новое, нужное,

чего не было у других - тогда вопроса "Что следует делать дальше?"

не возникает.

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

Если же хочется просто попрактиковаться в программировании - опять же нет такого вопроса...

K
На сайте с 22.04.2003
Offline
31
Ken
#6

Да конечно! (Я следую теме система старого поколения)

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

Когда система четко находит слова - это прошлый век.

С какими задачами сталкиваются разработчики на следующем шаге?

Z
На сайте с 23.03.2004
Offline
0
#7
Как писал Ken

Когда система четко находит слова - это прошлый век.
С какими задачами сталкиваются разработчики на следующем шаге?

ну так все правильно - прошлый век человеку как раз и нужен. К тому же если четко сделать этот прошлый век, то он будет оч. быстро работать на домашней машине. Впрочем все зависит от целей.

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

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

Ну и в зависимости от квалификации разработчика будут или баги или куча багов и дустом от них не избавишься...

K
На сайте с 22.04.2003
Offline
31
Ken
#8
Как писал zurzmancer

нахождение оптимального сценария работы с системой поиска (включая удобство вывода и последующей работы с найденной информацией)

В результате возникает вопрос: возможен ли такой сценарий (набор сценариев), который бы "точно" передавал смысл искомого документа, обеспечивающий максимальные релевантность и полноту поиска?

Z
На сайте с 23.03.2004
Offline
0
#9
Как писал Ken


В результате возникает вопрос: возможен ли такой сценарий (набор сценариев), который бы "точно" передавал смысл искомого документа, обеспечивающий максимальные точность и полноту поиска?

Вопрос этот слишком общий. Ну и ответ: возможен, но при определенных условиях :)

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

Так что помните что вам нужно и делайте именно то, что поможет этого достичь.

K
На сайте с 22.04.2003
Offline
31
Ken
#10

Спасибо за ответ:)

Наверное, этого достаточно для ПМ старого поколения.

Дальнейшее... за эвристиками сопоставления запросов пользователя с образами документов.

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

Сможет ли определенно большой набор онтологических, семантических связей привести к проблескам в ИИ? Время покажет...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий