exponenta event banner

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-на-K матриц, где N - количество входных слов. Чтобы задать K, используйте 'K' аргумент пары имя-значение.

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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