mmrScores

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

Описание

пример

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

scores = mmrScores(bag,queries) оценивает документы, закодированные моделью bag-of-words или bag-of-gams 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.

Более высокие счета соответствуют relavence stonger к документам запроса.

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

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 массив

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

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

Чтобы вычислить частоту терминов и обратную статистику частот документов, функция кодирует 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) относительно j1й документ запроса, и N1 и N2 количество входа и документов запроса, соответственно.

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

Ссылки

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

Введенный в R2020a