Концепции информационного поиска
Отчет по практике - Компьютеры, программирование
Другие отчеты по практике по предмету Компьютеры, программирование
/p>
При значении ?1 - на полноте.
Обычно используется сбалансированная F-мера, т.е. ?=1 или ?=
Когда значения двух чисел отличаются, среднее гармоническое ближе к их минимуму, чем среднее арифметическое или геометрическое. Например, если 1 из 10000 документов релевантен, мы можем получать 100% полноты, извлекая все документы. Среднее арифметическое будет 50%, а гармоническое - 0,02%.
Полнота, точность и F-мера являются мерами, основанными на множествах (например, неупорядоченный набор документов). В ранжированных поисковых системах значения P и R связаны с позицией в рейтинге. Оценка производится путем вычисления точности, как функции от полноты. Если (k+1)-ый найденный документ релевантен, то R(k+1) > R(k), а P(k+1) > P(k). Если (k+1)-ый найденный документ нерелевантен, то R(k+1) = R(k), но P(k+1) < P(k). Чтобы удалить колебания, используется интерполированная точность.
Рисунок 3. Пример графика зависимости точности от полноты. Красным цветом обозначен график интерполированной точности.
Одиннадцатиточечная интерполированная средняя точность (11-point interpolated average precision). Измеряется точность на 11 уровнях полноты {0.0, 0.1, 0.2,…,1.0}, затем рассчитывается среднее арифметическое уровня точности.
Чтобы найти среднее значение средней точности (mean average precision (MAP)), вычисляется средняя точность (AP) для каждого информационного запроса. Затем значение средней точности получается для набора из первых k документов, имеющихся после каждого нахождения релевантного документа. MAP = среднее значение AP множества информационных потребностей.
- запрос?
- документы, релевантные запросу
- ранжированный набор первых k найденных результатов.
Для одной информационной потребности AP связана с площадью под неинтерполированной кривой точности/полноты. Пример:
Расчет точности для k. Фиксируется k - количество извлекаемых результатов, например k=10. Вычисляется точность для первых k объектов. Достоинство: не требуется множества релевантных документов (полезно для веб-поиска). Недостаток: общее количество релевантных документов сильно влияет на точность для k. Например, если количество релевантных документов равно 8, то точность для 20 будет не более 0,4.
R-точность. Для известного релевантного множества размера Rel вычисляется количество релевантных документов r среди первых Rel результатов поиска. Достоинство: идеальная система достигает R-точность = 1,0. Недостаток: рассматривается только одна точка на кривой точность/полнота.
Операционная характеристика приемника (receiver operating characteristic). ROC-кривая отображает график зависимости доли верно положительных классификаций (чувствительности) от доли ложно положительных классификаций (1 - специфичность).
Доля TP = чувствительность = полнота = TP / (TP + FN)
Доля FP = 1 - специфичность = FP / (FP + TN)
Рисунок 4. Пример графика ROC-кривой.
Реализация векторной модели в среде Matlab
Входные данные:
-terms - множество терминов;
docs - множество документов;
freq - таблица частот терминов.
Выходные данные:
answer_euc - ранжированный список при использовании евклидовой меры;
answer_cos - ранжированный список при использовании косинусной меры.
Функция расчета евклидовой меры
function SC = euclideanSM(q,d)
= 1/(1+norm(q-d));
Функция расчета косинусной меры
function SC = cosineSM(q,d)= q*d/(norm(q)*norm(d));
Расчет ранжированных списков документов
% Расчет весов документов
= size(docs,1); % Количество документов= size(terms,1); % Количество терминов
% Частота терминов в документах
= 1 + log(freq);
tf(freq == 0) = 0;= zeros(M,1);i = 1:M(i) = sum(freq(i,:) > 0);= log(N./df);= zeros(M,N);i = 1:Mj = 1:N(i,j) = tf(i,j)*idf(i);
end
% Запрос
q = [1;0;0;1]; % Реализация запроса в случае четырех терминов
% Нормализация векторов
for j = 1:N(:,j) = W(:,j)/norm(W(:,j));= q/norm(q);_euc = zeros(1,N);_cos = zeros(1,N);j = 1:N_euc(j) = euclideanSM(q,W(:,j));_cos(j) = cosineSM(q,W(:,j));
% Вычисление ранжированного списка документов
[ranked_score_euc,i_euc] = sort(score_euc,descend);
[ranked_score_cos,i_cos] = sort(score_cos,descend);
% Расчеты для вывода результатов_euc = cell(N,2);
answer_cos = cell(N,2);j = 1:N
%answer_euc{j,1} = docs{i_euc(j)}; % Вывод названия документа_euc{j,1} = i_euc(j); % Вывод порядкового номера документа
answer_euc{j,2} = ranked_score_euc(j);
%answer_cos{j,1} = docs{i_cos(j)};_cos{j,1} = i_cos(j);_cos{j,2} = ranked_score_cos(j);
end
% Вывод результатов(Евклидова мера:);
answer_euc(Косинусная мера:);_cos
Реализация оценок качества поиска в среде Matlab
Расчет точности, полноты и F-меры в зависимости от числа найденных документов
Входные данные:
-список ранжированных документов;
relevance - массив, указывающий релевантность каждого документа запросу;
Выходные данные:
precision - массив точности для фиксированного числа первых документов;
recall - массив полноты для фиксированного числа первых документов;
f_measure_A - F-мера для первых 20 документов;
f_measure_B - F-мера для первых 50 документов.
Листинг программы
numTot = length(relevance);= round(numTot/10);= zeros(numStep,1);= zeros(numStep,1);= 10:10:numTot;
% Расчет точности и полноты для фиксированного числа первых документов
for j = 1:numStep= 0;= 0;= 0;= 0;i = 1:numRet(j)relevance(i) == 1= TP + 1;= FP + 1;i = numRet(j)+1:numTotrelevance(i) == 1= FN + 1;= TN + 1;(j) = TP / (TP + FP); % Расчет точности(j) = TP / (TP + FN); % Расчет полноты
end
% Вывод графиков точности и полноты
figure(numRet,recall,b), hold on, plot(numRet,precision,r), hold off
legend(полнота,точность);(Количество найденных документов);
% Расчет F-меры для первых 20 и 50 документов
% Бета изменяется в диа?/p>