exponenta event banner

mmrScores

Оценка документов с помощью алгоритма максимальной маргинальной релевантности (MMR)

Описание

пример

scores = mmrScores(documents,queries) очки documents в соответствии с их релевантностью для queries исключение избыточности с использованием алгоритма MMR. Оценка в scores(i,j) - оценка MMR documents(i) относительно queries(j).

scores = mmrScores(bag,queries) оценки документов, закодированных с помощью модели мешка слов или мешка n-граммов bag относительно queries. Оценка в scores(i,j) - оценка MMR i-й документ в bag относительно queries(j).

scores = mmrScores(___,lambda) также определяет компромисс между релевантностью и избыточностью.

Примеры

свернуть все

Создайте массив входных документов.

str = [
    "the quick brown fox jumped over the lazy dog"
    "the fast fox jumped over the lazy dog"
    "the dog sat there and did nothing"
    "the other animals sat there watching"];
documents = tokenizedDocument(str)
documents = 
  4x1 tokenizedDocument:

    9 tokens: the quick brown fox jumped over the lazy dog
    8 tokens: the fast fox jumped over the lazy dog
    7 tokens: the dog sat there and did nothing
    6 tokens: the other animals sat there watching

Создайте массив документов запроса.

str = [
    "a brown fox leaped over the lazy dog"
    "another fox leaped over the dog"];
queries = tokenizedDocument(str)
queries = 
  2x1 tokenizedDocument:

    8 tokens: a brown fox leaped over the lazy dog
    6 tokens: another fox leaped over the dog

Расчет показателей MMR с использованием mmrScores функция. Выходной сигнал является разреженной матрицей.

scores = mmrScores(documents,queries);

Визуализация показателей MMR в тепловой карте.

figure
heatmap(scores);
xlabel("Query Document")
ylabel("Input Document")
title("MMR Scores")

Figure contains an object of type heatmap. The chart of type heatmap has title MMR Scores.

Более высокие баллы соответствуют более высокой степени восстановления документов запроса.

Создайте массив входных документов.

str = [
    "the quick brown fox jumped over the lazy dog"
    "the quick brown fox jumped over the lazy dog"
    "the fast fox jumped over the lazy dog"
    "the dog sat there and did nothing"
    "the other animals sat there watching"
    "the other animals sat there watching"];
documents = tokenizedDocument(str);

Создайте модель пакета слов из входных документов.

bag = bagOfWords(documents)
bag = 
  bagOfWords with properties:

          Counts: [6x17 double]
      Vocabulary: [1x17 string]
        NumWords: 17
    NumDocuments: 6

Создайте массив документов запроса.

str = [
    "a brown fox leaped over the lazy dog"
    "another fox leaped over the dog"];
queries = tokenizedDocument(str)
queries = 
  2x1 tokenizedDocument:

    8 tokens: a brown fox leaped over the lazy dog
    6 tokens: another fox leaped over the dog

Вычислите оценки MMR. Выходной сигнал является разреженной матрицей.

scores = mmrScores(bag,queries);

Визуализация показателей MMR в тепловой карте.

figure
heatmap(scores);
xlabel("Query Document")
ylabel("Input Document")
title("MMR Scores")

Figure contains an object of type heatmap. The chart of type heatmap has title MMR Scores.

Теперь вычислите баллы еще раз и установите значение лямбда равным 0,01. Когда лямбда-значение близко к 0, избыточные документы дают более низкие баллы и разнообразные (но менее релевантные для запросов) документы дают более высокие баллы.

lambda = 0.01;
scores = mmrScores(bag,queries,lambda);

Визуализация показателей MMR в тепловой карте.

figure
heatmap(scores);
xlabel("Query Document")
ylabel("Input Document")
title("MMR Scores, lambda = " + lambda)

Figure contains an object of type heatmap. The chart of type heatmap has title MMR Scores, lambda = 0.01.

Наконец, вычислите баллы еще раз и установите лямбда значение 1. Когда лямбда-значение равно 1, релевантные для запроса документы дают более высокие баллы, несмотря на то, что другие документы дают высокие баллы.

lambda = 1;
scores = mmrScores(bag,queries,lambda);

Визуализация показателей MMR в тепловой карте.

figure
heatmap(scores);
xlabel("Query Document")
ylabel("Input Document")
title("MMR Scores, lambda = " + lambda)

Figure contains an object of type heatmap. The chart of type heatmap has title MMR Scores, lambda = 1.

Входные аргументы

свернуть все

Исходные документы, указанные как tokenizedDocument массив, строковый массив слов или массив ячеек символьных векторов. Если documents не является tokenizedDocument массив, то это должен быть вектор строки, представляющий один документ, где каждый элемент является словом. Чтобы указать несколько документов, используйте tokenizedDocument массив.

Входная модель сумки слов или сумки n граммов, указанная как bagOfWords объект или bagOfNgrams объект. Если bag является bagOfNgrams объект, то функция рассматривает каждый n-грамм как одно слово.

Набор документов запроса, указанный как один из следующих:

  • A tokenizedDocument множество

  • Массив 1-by-N строк, представляющий один документ, где каждый элемент является словом

  • Массив 1-by-N ячеек символьных векторов, представляющих один документ, где каждый элемент является словом

Для вычисления статистики частоты терминов и обратной частоты документа функция кодирует queries с использованием модели мешка слов. Используемая модель зависит от синтаксиса, с помощью которого она вызывается. Если синтаксис указывает входной аргумент documents, то он использует bagOfWords(documents). Если указан синтаксис bag, то функция кодирует queries использование bag затем использует результирующую матрицу tf-idf.

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

Когда lambda близок к 0, избыточные документы дают более низкие баллы и разнообразные (но менее релевантные для запросов) документы дают более высокие баллы. Если lambda 1, то релевантные для запроса документы дают более высокие баллы, несмотря на то, что другие документы дают высокие баллы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Оценки MMR, возвращенные в виде матрицы N1-by-N2, где scores(i,j) - оценка MMR documents(i) относительно jДокумент запроса и N1 и N2 - количество документов ввода и запроса соответственно.

Документ имеет высокий показатель MMR, если он является релевантным для запроса и имеет минимальное сходство с другими документами.

Ссылки

[1] Карбонелл, Хайме Г. и Джейд Гольдштейн. «Использование MMR, перераспределения на основе разнесения для переупорядочивания документов и подготовки резюме». В СИГИРе, т. 98, стр. 335-336. 1998.

Представлен в R2020a