Найдите расстояние между двумя строками или документами
задает дополнительные опции, используя один или несколько аргументы пары "имя-значение".d = editDistance(___,Name,Value)
Найдите расстояние редактирования между строками "Text analytics" и "Text analysis". Расстояние редактирования, по умолчанию, является общим количеством вставок графемы, удалений и замен, необходимых для изменения одной строки на другую.
str1 = "Text analytics"; str2 = "Text analysis";
Найдите расстояние редактирования.
d = editDistance(str1,str2)
d = 2
Это означает, что для изменения первой строки на вторую требуется два редактирования. Для примера:
Подстановка - подстановка символов "t" в "s": "Text analytics" на "Text analysics".
Удаление - Удаление символа "c": "Text analysics" на "Text analysis".
Найдите расстояние между двумя токенизированными документами. Для токенизированных входов документа расстояние редактирования по умолчанию является общим количеством вставок маркеров, удалений и замен, необходимых для изменения одного документа на другой.
str1 = "It's time for breakfast."; document1 = tokenizedDocument(str1); str2 = "It's now time to sleep."; document2 = tokenizedDocument(str2);
Найдите расстояние редактирования.
d = editDistance(document1,document2)
d = 3
Это означает, что для изменения первого документа на второй требуется три редактирования. Для примера:
Вставка - Вставка слова "now".
Подстановка - Заменить слово "for" с "to".
Подстановка - Заменить слово "breakfast" с "sleep".
The editDistance функция по умолчанию возвращает самое низкое количество вставок, удалений и замен графем, необходимых для изменения одной строки на другую. Чтобы также включить действие свопа в расчет, используйте 'SwapCost' опция.
Сначала найдите расстояние редактирования между строками "MATALB" и "MATLAB".
str1 = "MATALB"; str2 = "MATLAB"; d = editDistance(str1,str2)
d = 2
Одним из возможных вариантов редактирования является:
Замените вторую "A" с "L": ("MATALB" на "MATLLB").
Замените вторую "L" с "A": ("MATLLB" на "MATLAB").
Значение по умолчанию для стоимости свопа (стоимость свопинга двух смежных графем) Inf. Это означает, что свопы не учитываются в направлении расстояния редактирования. Чтобы включить свопы, установите 'SwapCost' опция 1.
d = editDistance(str1,str2,'SwapCost',1)d = 1
Это означает, что есть одно действие. Например, замените соседние символы "A" и "L".
Чтобы вычислить расстояние между двумя словами и указать, что изменения не чувствительны к регистру, задайте пользовательскую функцию замещения затрат.
Сначала вычислите расстояние редактирования между строками "MATLAB" и "MathWorks".
d = editDistance("MATLAB","MathWorks")
d = 8
Это означает, что для изменения первой строки на вторую требуется восемь правок. Для примера:
Подстановка - подстановка символов "A" с "a". ("MATLAB" на "MaTLAB")
Подстановка - подстановка символов "T" с "t". ("MaTLAB" на "MatLAB")
Подстановка - подстановка символов "L" с "h". ("MatLAB" на "MathAB")
Подстановка - подстановка символов "A" с "W". ("MathAB" на "MathWB")
Подстановка - подстановка символов "B" с "o". ("MathWB" на "MathWo")
Вставка - Вставка символа "r". ("MathWo" на "MathWor")
Вставка - Вставка символа "k". ("MathWor" на "MathWork")
Вставка - Вставка символа "s". ("MathWork" на "MathWorks")
Вычислите расстояние редактирования и задайте пользовательскую функцию затрат на замену caseInsensitiveSubstituteCost, перечисленный в конце примера. Пользовательская функция caseInsensitiveSubstituteCost возвращает 0, если эти два входов одинаковы или различаются только по регистрам, и возвращает 1 в противном случае.
d = editDistance("MATLAB","MathWorks",'SubstituteCost',@caseInsensitiveSubstituteCost)
d = 6
Это означает, что общая стоимость изменения первой строки на вторую составляет 6. Для примера:
Замена (стоимость 0) - замена символа "A" с "a". ("MATLAB" на "MaTLAB")
Замена (стоимость 0) - замена символа "T" с "t". ("MaTLAB" на "MatLAB")
Замена (стоимость 1) - замена символа "L" с "h". ("MatLAB" на "MathAB")
Замена (стоимость 1) - замена символа "A" с "W". ("MathAB" на "MathWB")
Замена (стоимость 1) - замена символа "B" с "o". ("MathWB" на "MathWo")
Вставка (стоимость 1) - Вставка символа "r". ("MathWo" на "MathWor")
Вставка (стоимость 1) - Вставка символа "k". ("MathWor" на "MathWork")
Вставка (стоимость 1) - Вставка символа "s". ("MathWork" на "MathWorks")
Функция пользовательских затрат
Пользовательская функция caseInsensitiveSubstituteCost возвращает 0, если эти два входов одинаковы или различаются только по регистрам, и возвращает 1 в противном случае.
function cost = caseInsensitiveSubstituteCost(grapheme1,grapheme2) if lower(grapheme1) == lower(grapheme2) cost = 0; else cost = 1; end end
str1 - Исходная строкаИсходная строка, заданная как строковые массивы, вектор символов или массив ячеек из векторов символов.
Если str1 содержит несколько строк, затем str2 должен быть того же размера, что и str1 или скаляром.
Типы данных: char | string | cell
str2 - Целевая строкаЦелевая строка, заданная как строковые массивы, вектор символов или массив ячеек из векторов символов.
Если str2 содержит несколько строк, затем str1 должен быть того же размера, что и str2 или скаляром.
Типы данных: char | string | cell
document1 - Исходный документtokenizedDocumentИсходный документ, заданный как tokenizedDocument массив.
Если document1 содержит несколько документов, затем document2 должен быть того же размера, что и document1 или скаляром.
document2 - Целевой документtokenizedDocumentЦелевой документ, заданный как tokenizedDocument массив.
Если document2 содержит несколько документов, затем document1 должен быть того же размера, что и document2 или скаляром.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
editDistance("MATALB","MATLAB",'SwapCost',1) возвращает расстояние редактирования между строками "MATALB" и "MATLAB" и устанавливает стоимость замены двух смежных графем равной 1.'InsertCost' - Стоимость вставки графемы или лексемыСтоимость вставки графемы или лексемы, заданная как разделенная разделенными запятой парами, состоящая из 'InsertCost' и неотрицательный скаляр или указатель на функцию.
Если 'InsertCost' является указателем на функцию, тогда функция должна принять один вход и вернуть стоимость вставки входного сигнала в источник. Для примера:
Для строкового входа в editDistance, функция затрат должна иметь форму cost = func(grapheme), где функция возвращает стоимость вставки grapheme в str1.
Для входа документа в editDistance, функция затрат должна иметь форму cost = func(token), где функция возвращает стоимость вставки token в document1.
Пример: 'InsertCost',2
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | function_handle
'DeleteCost' - Стоимость удаления графемы или лексемыСтоимость удаления графемы или лексемы, заданная как разделенная разделенными запятой парами, состоящая из 'DeleteCost' и неотрицательный скаляр или указатель на функцию.
Если 'DeleteCost' является указателем на функцию, тогда функция должна принять один вход и вернуть стоимость удаления входа из источника. Для примера:
Для строкового входа в editDistance, функция затрат должна иметь форму cost = func(grapheme), где функция возвращает стоимость удаления grapheme от str1.
Для входа документа в editDistance, функция затрат должна иметь форму cost = func(token), где функция возвращает стоимость удаления token от document1.
Пример: 'DeleteCost',2
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | function_handle
'SubstituteCost' - Стоимость замены графемы или лексемыСтоимость замены графемы или лексемы, заданная как разделенная разделенными запятой парами, состоящая из 'SubstituteCost' и неотрицательный скаляр или указатель на функцию.
Если 'SubstituteCost' является указателем на функцию, тогда функция должна принять ровно два входов и вернуть стоимость замены первого входа вторым в источнике. Для примера:
Для строкового входа в editDistance, функция затрат должна иметь форму cost = func(grapheme1,grapheme2), где функция возвращает стоимость подстановки grapheme1 с grapheme2 в str1.
Для входа документа в editDistance, функция затрат должна иметь форму cost = func(token1,token2), где функция возвращает стоимость подстановки token1 с token2 в document1.
Пример: 'SubstituteCost',2
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | function_handle
'SwapCost' - Стоимость замены двух смежных графем или лексемInf (по умолчанию) | неотрицательный скаляр | указатель на функциюСтоимость замены двух смежных графем или лексем, заданная как разделенная разделенными запятой парами, состоящая из 'SwapCost' и неотрицательный скаляр или указатель на функцию.
Если 'SwapCost' является указателем на функцию, тогда функция должна принять ровно два входов и вернуть стоимость замены первого входа на второй в источнике. Для примера:
Для строкового входа в editDistance, функция затрат должна иметь форму cost = func(grapheme1,grapheme2), где функция возвращает стоимость замены смежных графем grapheme1 и grapheme2 в str1.
Для входа документа в editDistance, функция затрат должна иметь форму cost = func(token1,token2), где функция возвращает стоимость замены смежных лексем token1 и token2 в document1.
Пример: 'SwapCost',2
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | function_handle
d - Расстояние редактированияОтредактируйте расстояние, вернитесь как неотрицательный скаляр.
Функция по умолчанию использует расстояние Левенштейна: самое низкое количество вставок, удалений и замен, необходимых для преобразования одной строки в другую.
Для других обычно используемых расстояний редактирования используйте следующие опции:
| Расстояние | Описание | Опции |
|---|---|---|
| Левенштейн (по умолчанию) | наименьшее количество вставок, удалений и замен | Дефолт |
| Дамерау-Левенштейн | наименьшее количество вставок, удалений, замен и свопов | 'SwapCost',1 |
| Хэмминг | наименьшее количество замен | 'InsertCost',Inf,'DeleteCost',Inf |
correctSpelling | editDistanceSearcher | knnsearch | rangesearch | splitGraphemes | tokenizedDocument
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.