exponenta event banner

rangesearch

Поиск ближайших соседей по диапазону расстояния редактирования

Описание

пример

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

Найти ближайшие слова для "test", "analytic", и "analyze" с расстоянием редактирования, меньшим или равным 1.

words = ["test" "analytic" "analyze"];
maxDist = 1;
idx = rangesearch(eds,words,maxDist)
idx=3×1 cell array
    {[       4]}
    {[       5]}
    {1x0 double}

Для "analyze", в искателе нет слов в указанном диапазоне. Для "test" и "analytic", есть один результат каждый. Просмотр соответствующего слова для "test" с использованием возвращенного индекса.

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

Найти ближайшие слова для "test", "analytic", и "analyze" с расстоянием редактирования, меньшим или равным 3, и соответствующими им расстояниями редактирования.

words = ["test" "analytic" "analyze"];
maxDist = 3;
[idx,d] = rangesearch(eds,words,maxDist)
idx=3×1 cell array
    {[  4]}
    {[5 6]}
    {[  6]}

d=3×1 cell array
    {[  1]}
    {[1 2]}
    {[  3]}

Для обоих "test" и "analyze", в искателе имеется одно слово в указанном диапазоне. Для "analytic", есть два результата. Просмотр соответствующих слов для "analytic" (второе слово) с использованием возвращаемых индексов и их расстояний редактирования.

i = 2;
nearestWords = eds.Vocabulary(idx{i})
nearestWords = 1x2 string
    "analytics"    "analysis"

d{i}
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