Отредактируйте расстояние самый близкий соседний искатель
Искатель расстояния редактирования выполняет самый близкий поиск окружения в списке известных строк, с помощью расстояния редактирования.
eds = editDistanceSearcher(vocabulary,maxDist)eds = editDistanceSearcher(vocabulary,maxDist,Name,Value) создает искателя расстояния редактирования и устанавливает свойства 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 = 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
Функция, по умолчанию, использует расстояние Левенштейна: самое низкое количество вставок, удалений и замен, требуемых преобразовывать одну строку в другого.
Для других обычно используемых расстояний редактирования используйте эти опции:
| Расстояние | Описание | Опции |
|---|---|---|
| Levenshtein (значение по умолчанию) | самое низкое количество вставок, удалений и замен | Значение по умолчанию |
| Damerau-Levenshtein | самое низкое количество вставок, удалений, замен и подкачек | 'SwapCost',1 |
| Хэмминг | самое низкое количество замен только | 'InsertCost',Inf,'DeleteCost',Inf |
editDistance | knnsearch | rangesearch | splitGraphemes | tokenizedDocument
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.