Найдите расстояние редактирования между двумя строками или документами
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".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
имя аргумента и 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.