Тема 2.
Лекция 2. Информационный поиск. NLP. Определения. Примеры.
Вопрос 1. «найти все пьесы Шекспира, в которых встречаются слова Брут и Цезарь, и не встречается слово Кальпурния».
Варианты:
1) последовательный поиск (перебор) – grepping (в Unix есть команда grep)
однако:
2) составить индекс документа
2.1) индекс вида «термин - документ». Если известен весь словарь (например, словарь пьес Шекспира), то этот индекс будет таков:
|
Отелло
|
Юлий Цезарь
|
Гамлет
|
Антоний и Клеопатра
|
Брут
|
0
|
1
|
1
|
1
|
Цезарь
|
1
|
1
|
1
|
1
|
Кальпурния
|
0
|
1
|
1
|
0
|
…
|
…
|
…
|
…
|
…
|
Тогда ответ на Вопрос1 вычисляется как булевская операция над векторами
Вектор_для_Брут AND Вектор_для_Цезарь AND NOT Вектор_для_Кальпурния
0111 AND 1111 AND NOT 0110 = 1111 AND 0111 AND 1001 = 0001
Для того, чтобы оценить эффективность системы информационного поиска, пользователь обычно желает знать два основных статистических показателя, характеризующих результаты, возвращенные системой поиска:
precision – точность – какая доля результатов является релевантной по отношению к информационной потребности
recall – полнота – какая доля релевантных документов из коллекции возвращена.
Хранение матриц «термин-документ» для коллекций реального размера не представляется разумным, т.к. такая матрица будет очень разреженной.
2.2) хранить только «единицы» матрицы «термин-документ»
Создание инвертированного списка: «термин» - «список документов, где встречается этот термин», а зачастую и место в документе, где появляется этот термин (т.н. posting)
Все термины тогда объединяются в словарь (vocabulary, dictionary). Списки – односвязные или массивы переменной длины (ArrayList).
Брут -2-3-4
Цезарь – 1-2-3-4
Кальпурния – 2-3
Процесс поиска в инвертированном списке: находим первое слово из запроса, находим список его словопозиций, находим второе слова из запроса, берем его список словопозиций, находим пересечение этих двух списков.
2.3) Ранжированный поиск (ranked retrieval models)
Например: модель векторного пространства
Этапы построения инвертированного индекса:
Проблемы 2 этапа:
- определение кодировки документа, типа документа (xml, pdf, doc, rtf) – эвристики, анализ метаданных, указания пользователя
- определение структурных единиц документа – частей документа, имеющих достаточный размер, но не слишком больших – глав, пунктов, подпунктов.
- подготовка лексем – последовательностей символов, представляющих семантическую единицу для обработки, удаление знаков препинания.
«стоп-слово» - неиндексируемый токен
McDonalds – «Mc» «Donalds» или «MC Donalds”
-
подготовка терминов: аббревиатуры, адреса, почтовые индексы, названия фирм...
-
нормализация лексем:
USA или U.S.A.
– либо приведение к одной лексеме,
- либо установление эквивалентностей между ненормализованными лексемами
-
стемминг (приблизительный) и лемматизация (точный)
organize, organising, organizing, organizes
Алгоритм Портера (1980).
Фразовые запросы.
«Stanford University» как одно целое
Подход 1: двухсловный индекс:
рассматривать все пары соседних слов как потенциальные фразы.
варианты – три соседних слова...
Однако пара – наиболее оптимальный на практике
Подход 2: координатный индекс
Проблема: размер координатного индекса зависит не от размера корпуса документов, а от количества словоупотреблений в корпусе документов.
Выход: комбинирование двухсловного и координатного индексов
Достарыңызбен бөлісу: |