Отредактируйте расстояние самый близкий соседний искатель
Искатель расстояния редактирования выполняет самый близкий поиск окружения в списке известных строк, с помощью расстояния редактирования.
создает искателя расстояния редактирования и устанавливает eds
= editDistanceSearcher(vocabulary
,maxDist
)Vocabulary
и MaximumDistance
свойства. Возвращенный объект ищет слова в vocabulary
и с максимальным расстоянием редактирования maxDist
.
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".eds
= editDistanceSearcher(vocabulary
,maxDist
,Name,Value
)
Vocabulary
— Слова, чтобы выдержать сравнение сСлова, чтобы выдержать сравнение с, заданный как вектор строки, вектор символов или массив ячеек из символьных векторов.
Типы данных: char |
string
| cell
MaximumDistance
— Максимальное расстояние редактированияМаксимальное расстояние редактирования, заданное как положительная скалярная величина.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
InsertCost
— Стойте, чтобы вставить графемуСтойте, чтобы вставить графему, заданную как неотрицательный скаляр или указатель на функцию.
Если InsertCost
указатель на функцию, затем функция должна принять один вход и возвратить стоимость вставки входа к источнику. Функция стоимости должна иметь форму cost = func(grapheme)
, куда функция возвращает стоимость вставки grapheme
в исходную строку.
Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей, функции knnsearch
и rangesearch
может занять много времени, чтобы найти соответствия.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| function_handle
DeleteCost
— Стойте, чтобы удалить графемуСтойте, чтобы удалить графему, заданную как неотрицательный скаляр или указатель на функцию.
Если DeleteCost
указатель на функцию, затем функция должна принять один вход и возвратить стоимость удаления входа из источника. Функция стоимости должна иметь форму cost = func(grapheme)
, куда функция возвращает стоимость удаления grapheme
от исходной строки.
Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей, функции knnsearch
и rangesearch
может занять много времени, чтобы найти соответствия.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| function_handle
SubstituteCost
— Стойте, чтобы заменить графемойСтойте, чтобы заменить графемой, заданной как неотрицательный скаляр или указатель на функцию.
Если SubstituteCost
указатель на функцию, затем функция должна принять точно два входных параметров и возвратить стоимость замены первым входом к второму в источнике. Функция стоимости должна иметь форму cost = func(grapheme1,grapheme2)
, куда функция возвращает стоимость замены grapheme1
с grapheme2
в источнике.
Если вы задаете пользовательскую функцию стоимости, то искатель выполняет исчерпывающий поиск. Для больших словарей, функции knnsearch
и rangesearch
может занять много времени, чтобы найти соответствия.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| function_handle
SwapCost
— Стойте, чтобы подкачать смежные графемыInf
(значение по умолчанию) | неотрицательный скаляр | указатель на функциюСтойте, чтобы подкачать смежные графемы, заданные как неотрицательный скаляр или указатель на функцию.
Если 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=3×1 cell
{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=3×1 cell
{[ 2]}
{[ 1]}
{1x2 double}
d=3×1 cell
{[ 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
Функция, по умолчанию, использует расстояние Левенштейна: самое низкое количество вставок, удалений и замен, требуемых преобразовывать одну строку в другого.
Для других обычно используемых расстояний редактирования используйте эти опции:
Расстояние | Описание | Опции |
---|---|---|
Levenshtein (значение по умолчанию) | самое низкое количество вставок, удалений и замен | Значение по умолчанию |
Damerau-Levenshtein | самое низкое количество вставок, удалений, замен и подкачек | 'SwapCost',1 |
Хэмминг | самое низкое количество замен только | 'InsertCost',Inf,'DeleteCost',Inf |
editDistance
| knnsearch
| rangesearch
| splitGraphemes
| tokenizedDocument
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.