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 имя аргумента и 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 th наименьшее расстояние в выходе. В этом случае, функциональные выходные массивы ячеек размера N-by-1, где N является количеством входных слов. Элементами массивов ячеек являются векторы, по крайней мере, с элементами K. Функциональные виды соседи в каждом векторе в порядке возрастания из расстояния.

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

Типы данных: логический

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

свернуть все

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

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

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

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

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

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

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

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

Введенный в R2019a