knnsearch

Найти ближайших соседей по расстоянию редактирования

Описание

пример

idx = knnsearch(eds,words) находит индексы ближайших соседей в средстве поиска расстояния редактирования eds каждому элементу в words.

пример

[idx,d] = knnsearch(eds,words) также возвращает расстояния редактирования между элементами words и ближайших соседей.

пример

[idx,d] = knnsearch(eds,words,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение".

Примеры

свернуть все

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

vocabulary = ["Text" "Analytics" "Toolbox"];
eds = editDistanceSearcher(vocabulary,2);

Найдите самые близкие слова, чтобы "Test" и "Analysis".

words = ["Test" "Analysis"];
idx = knnsearch(eds,words)
idx = 2×1

     1
     2

Получите слова из словаря с помощью возвращенных индексов.

nearestWords = eds.Vocabulary(idx)
nearestWords = 1x2 string
    "Text"    "Analytics"

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

vocabulary = ["MATLAB" "Text" "Analytics" "Toolbox"];
eds = editDistanceSearcher(vocabulary,2);

Найдите ближайшие слова и их расстояния редактирования, чтобы "Test" и "Analysis".

words = ["Test" "Analysis"];
[idx,d] = knnsearch(eds,words)
idx = 2×1

     2
     3

d = 2×1

     1
     2

Получите слова из словаря с помощью возвращенных индексов.

nearestWords = eds.Vocabulary(idx)
nearestWords = 1x2 string
    "Text"    "Analytics"

Изменение слова "Test" на "Text" требует одного редактирования: замены. Изменение слова "Analysis" в "Analytics" требует двух правок: замены и вставки.

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

vocabulary = ["MathWorks" "MATLAB" "Analytics"];
eds = editDistanceSearcher(vocabulary,5);

Найдите два ближайших слова и их расстояния редактирования, чтобы "Math" и "Analysis".

words = ["Math" "Analysis"];
idx = knnsearch(eds,words,'K',2)
idx = 2×2

     1     2
     3   NaN

Просмотрите два ближайших слова к "Math".

idxMath = idx(1,:);
newWords = eds.Vocabulary(idxMath)
newWords = 1x2 string
    "MathWorks"    "MATLAB"

Существует только одно слово на максимальном расстоянии редактирования от "Analysis", поэтому функция возвращается NaN для других индексов. Просмотрите ближайшие слова с допустимыми индексами.

idxAnalysis = idx(2,:);
idxAnalysis(isnan(idxAnalysis)) = [];
newWords = eds.Vocabulary(idxAnalysis)
newWords = 
"Analytics"

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

свернуть все

Отредактируйте искатель расстояния, заданный как editDistanceSearcher объект.

Входы слова, заданные как вектор строки, вектор символов или массив ячеек векторов символов. Если вы задаете words как вектор символов, тогда функция обрабатывает аргумент как одно слово.

Типы данных: string | char | cell

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: knnsearch(eds,words,'K',3) находит ближайших трех соседей в eds к элементам words.

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

Пример: 'K',3

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

Опция для возвращения соседей, значения расстояния которых равны, задается как true или false.

Если 'IncludeTies' является false, затем функция возвращает K соседей с самым коротким расстоянием редактирования, где K количество соседей, которые нужно найти. В этом случае функция выводит N -by - K матрицы, где N - количество входных слов. Чтобы задать K, используйте 'K' аргумент пары "имя-значение".

Если 'IncludeTies' является true, затем функция также возвращает соседям, чьи расстояния равны K-му наименьшему расстоянию в выходе. В этом случае функция выводит массивы ячеек размера N -by-1, где N количество входных слов. Элементами массивов ячеек являются векторы с по крайней мере K элементами. Функция сортирует соседи в каждом векторе в порядке возрастания расстояния.

Пример: 'IncludeTies',true

Типы данных: logical

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

свернуть все

Индексы ближайших соседей в поисковике, возвращенные как матрица или массив ячеек из векторов.

Если 'IncludeTies' является false, затем функция возвращает K соседей с самым коротким расстоянием редактирования, где K количество соседей, которые нужно найти. В этом случае функция выводит N -by - K матрицы, где N - количество входных слов. Чтобы задать K, используйте 'K' аргумент пары "имя-значение".

Если 'IncludeTies' является true, затем функция также возвращает соседям, чьи расстояния равны K-му наименьшему расстоянию в выходе. В этом случае функция выводит массивы ячеек размера N -by-1, где N количество входных слов. Элементами массивов ячеек являются векторы с по крайней мере K элементами. Функция сортирует соседи в каждом векторе в порядке возрастания расстояния.

Типы данных: double | cell

Отредактируйте расстояния до соседей, возвращенные как матрица или массив ячеек из векторов.

Если 'IncludeTies' является false, затем функция возвращает K соседей с самым коротким расстоянием редактирования, где K количество соседей, которые нужно найти. В этом случае функция выводит N -by - K матрицы, где N - количество входных слов. Чтобы задать K, используйте 'K' аргумент пары "имя-значение".

Если 'IncludeTies' является true, затем функция также возвращает соседям, чьи расстояния равны K-му наименьшему расстоянию в выходе. В этом случае функция выводит массивы ячеек размера N -by-1, где N количество входных слов. Элементами массивов ячеек являются векторы с по крайней мере K элементами. Функция сортирует соседи в каждом векторе в порядке возрастания расстояния.

Типы данных: double | cell

Введенный в R2019a
Для просмотра документации необходимо авторизоваться на сайте