rangesearch

Найдите самых близких соседей областью значений расстояния редактирования

Синтаксис

idx = rangesearch(eds,words,maxDist)
[idx,d] = rangesearch(eds,words,maxDist)

Описание

пример

idx = rangesearch(eds,words,maxDist) находит все слова в eds, которые являются на расстоянии maxDist слов в words.

пример

[idx,d] = rangesearch(eds,words,maxDist) также возвращает расстояния редактирования соответствующих слов.

Примеры

свернуть все

Создайте искателя расстояния редактирования и задайте максимальное расстояние редактирования 3.

vocabulary = ["MathWorks" "MATLAB" "Simulink" "text" "analytics" "analysis"];
maxDist = 3;
eds = editDistanceSearcher(vocabulary,maxDist);

Найдите самые близкие слова к "MALTAB" и "MatWorks" с расстоянием редактирования меньше чем или равными 1.

words = ["MALTAB" "MatWorks" "analytcs"];
maxDist = 1;
idx = rangesearch(eds,words,maxDist)
idx = 3x1 cell array
    {1x0 double}
    {[       1]}
    {[       5]}

Для "MALTAB" нет никаких слов в искателе в заданной области значений. Для "MatWorks" и "analytics", существует один результат. Просмотрите соответствующее слово для "MatWorks" с помощью возвращенного индекса.

nearestWords = eds.Vocabulary(idx{2})
nearestWords = 
"MathWorks"

Найдите самые близкие слова к "MALTAB", "MatWorks" и "analytcs" с расстоянием редактирования меньше чем или равными 3 и их соответствующими расстояниями редактирования.

words = ["MALTAB" "MatWorks" "analytcs"];
maxDist = 3;
[idx,d] = rangesearch(eds,words,maxDist)
idx = 3x1 cell array
    {[       2]}
    {[       1]}
    {1x2 double}

d = 3x1 cell array
    {[       2]}
    {[       1]}
    {1x2 double}

И для "MALTAB" и для "MatWorks", существует одно слово в искателе в заданной области значений. Для "analytcs" существует два результата. Просмотрите соответствующие слова для "analytcs" с помощью возвращенных индексов и их расстояний редактирования.

nearestWords = eds.Vocabulary(idx{3})
nearestWords = 1x2 string array
    "analytics"    "analysis"

d{3}
ans = 1×2

     1     2

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

свернуть все

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

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

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

Максимальное поисковое расстояние, заданное как неотрицательный номер.

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

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

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

свернуть все

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

idx{i} является вектором индексов слов в eds, расстояние редактирования которого до words(i) меньше чем или равно maxDist, отсортированному в расстоянии редактирования порядка по возрастанию.

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

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

d{i} является вектором расстояний редактирования между words(i) и соответствующими словами в eds, данном индексами словаря idx{i}.

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

Введенный в R2019a