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документ th в 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")

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

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

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")

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

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

Визуализируйте баллы MMR в карте тепла.

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

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

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

Визуализируйте баллы MMR в карте тепла.

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

Входные параметры

свернуть все

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

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

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

  • tokenizedDocument массив

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

  • 1 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документ запроса th, и N1 и N2 являются количеством входа и запрашивают документы, соответственно.

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

Ссылки

[1] Carbonell, Джейме Г. и Джейд Голдстайн. "Использование MMR, основанный на разнообразии перерейтинг для переупорядочения документов и создания сводных данных". В SIGIR, издании 98, стр 335-336. 1998.

Введенный в R2020a