editDistanceSearcher

Отредактируйте расстояние самый близкий соседний искатель

Описание

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

Создание

Синтаксис

eds = editDistanceSearcher(vocabulary,maxDist)
eds = editDistanceSearcher(vocabulary,maxDist,Name,Value)

Описание

пример

eds = editDistanceSearcher(vocabulary,maxDist) создает искателя расстояния редактирования и устанавливает свойства Vocabulary и MaximumDistance. Возвращенный объект ищет слова в vocabulary и с максимальным расстоянием редактирования maxDist.

пример

eds = editDistanceSearcher(vocabulary,maxDist,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".

Свойства

развернуть все

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

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

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

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

Стойте, чтобы вставить графему, заданную как неотрицательный скаляр или указатель на функцию.

Если InsertCost является указателем на функцию, то функция должна принять один вход и возвратить стоимость вставки входа к источнику. Функция стоимости должна иметь форму cost = func(grapheme), куда функция возвращает стоимость вставки grapheme в исходную строку.

Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей функции knnsearch и rangesearch могут занять много времени, чтобы найти соответствия.

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

Стойте, чтобы удалить графему, заданную как неотрицательный скаляр или указатель на функцию.

Если DeleteCost является указателем на функцию, то функция должна принять один вход и возвратить стоимость удаления входа из источника. Функция стоимости должна иметь форму cost = func(grapheme), куда функция возвращает стоимость удаления grapheme от исходной строки.

Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей функции knnsearch и rangesearch могут занять много времени, чтобы найти соответствия.

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

Стойте, чтобы заменить графемой, заданной как неотрицательный скаляр или указатель на функцию.

Если SubstituteCost является указателем на функцию, то функция должна принять точно два входных параметров и возвратить стоимость замены первым входом к второму в источнике. Функция стоимости должна иметь форму cost = func(grapheme1,grapheme2), куда функция возвращает стоимость замены grapheme1 с grapheme2 в источнике.

Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей функции knnsearch и rangesearch могут занять много времени, чтобы найти соответствия.

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

Стойте, чтобы подкачать смежные графемы, заданные как неотрицательный скаляр или указатель на функцию.

Если SwapCost является указателем на функцию, то функция должна принять точно два входных параметров и возвратить стоимость свопинга первого входа со вторым в источнике. Функция стоимости должна иметь форму cost = func(grapheme1,grapheme2), куда функция возвращает стоимость свопинга смежных графем grapheme1 и grapheme2 в источнике.

Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей функции knnsearch и rangesearch могут занять много времени, чтобы найти соответствия.

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

Функции объекта

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

Примеры

свернуть все

Создайте искателя расстояния редактирования расстояние редактирования имеющее 3 от слов "MathWorks", "MATLAB" и "Analytics".

vocabulary = ["MathWorks" "MATLAB" "Analytics"];
eds = editDistanceSearcher(vocabulary,3)
eds = 
  editDistanceSearcher with properties:

         Vocabulary: ["MathWorks"    "MATLAB"    "Analytics"]
    MaximumDistance: 3
         InsertCost: 1
         DeleteCost: 1
     SubstituteCost: 1
           SwapCost: Inf

Создайте искателя расстояния редактирования, использующего расстояние редактирования Damerau-Levenshtein. Расстояние редактирования Damerau-Levenshtein является самым низким количеством вставок, удалений, замен и подкачек.

Создайте искателя расстояния редактирования из слов "MathWorks", "MATLAB" и "Analytics" и задайте максимальное расстояние 3. Чтобы задать расстояние редактирования Damerau-Levenshtein, установите 'SwapCost' на 1.

vocabulary = ["MathWorks" "MATLAB" "Analytics"];
eds = editDistanceSearcher(vocabulary,3,'SwapCost',1)
eds = 
  editDistanceSearcher with properties:

         Vocabulary: ["MathWorks"    "MATLAB"    "Analytics"]
    MaximumDistance: 3
         InsertCost: 1
         DeleteCost: 1
     SubstituteCost: 1
           SwapCost: 1

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

vocabulary = ["MathWorks" "MATLAB" "Simulink"];
eds = editDistanceSearcher(vocabulary,2);

Найдите самые близкие слова к "MALTAB" и "MatWorks".

words = ["MALTAB" "MatWorks"];
idx = knnsearch(eds,words)
idx = 2×1

     2
     1

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

nearestWords = eds.Vocabulary(idx)
nearestWords = 1x2 string array
    "MATLAB"    "MathWorks"

Создайте искателя расстояния редактирования и задайте максимальное расстояние редактирования 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

Алгоритмы

развернуть все

Введенный в R2019a