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