Каковы операции compcost, использующие compged для моих примеров строк - PullRequest
0 голосов
/ 26 сентября 2019

Вот код со строками, которые я использовал, но я не могу понять, почему я получаю 90 баллов за следующее.Я только обязуюсь, что из-за усечения (буква R) я получаю 10 баллов, но я не могу понять, как DRIVE с FRONT дает 80. Не уверен, какие операции он выполняет и как я получаю этот конкретный (DRIVE, FRONT) как 80?

DATA Compged_score;

 CALL  COMPCOST('SWAP=', 5, 'P=', 0, 'INS=', 10,'DEL=',10,'APPEND=',5);

 COMPGED_SCORE=COMPGED("DRIVER IS GOOD", "FRONT IS GOOD", 'iln');

 RUN;

1 Ответ

0 голосов
/ 26 сентября 2019

Документация COMPGED гласит:

Определение обобщенного расстояния редактирования

Обобщенное расстояние редактирования - это обобщение расстояния редактирования Левенштейна, которое являетсямера различия между двумя строками.Расстояние редактирования Левенштейна - это количество удалений, вставок или замен отдельных символов, необходимых для преобразования строки-1 в строку-2.

Вычисление обобщенного расстояния редактирования

Функция COMPGED возвращает обобщенное расстояние редактирования между строкой-1 и строкой-2.Обобщенным расстоянием редактирования является последовательность минимальных затрат операций для построения строки-1 из строки-2.

D R I V E R   I S   G O O D
F R O N T   I S   G O O D

Вот последовательность операций из 90 затрат.Возможно, это последовательность COMPGED, выбранная из других оценок с наименьшей стоимостью (90).

10 INSERT R after T  FRONTR IS GOOD
10 DELETE F          RONTR IS GOOD
10 INSERT D          DRONTR IS GOOD
10 DELETE O          DRNTR IS GOOD
10 INSERT I          DRINTR IS GOOD
10 DELETE N          DRITR IS GOOD
10 INSERT V          DRIVTR IS GOOD
10 DELETE T          DRIVR IS GOOD
10 INSERT E          DRIVER IS GOOD
---
90 cost of operations

FRONT to DRIVE будет таким же, как и при первоначальной INSERT, поэтому 8 операций с 10 точками - это 80 баллов.Я не знаю, есть ли какие-либо опции, которые заставляют функцию записывать операции за счетом.

...