edit distance

13
Edit distance

Upload: brennan-howell

Post on 03-Jan-2016

86 views

Category:

Documents


7 download

DESCRIPTION

Edit distance. Beginning of Edit Distance. Levenshtein distance 는 러시아 과학자인 Vladimir Levenshtein 가 1965 년에 고안하여 그렇게 이름이 지어졌다 . Levenshtein 이란 단어가 쓰거나 읽기 힘들기 때문에 종종 edit distance 라고도 불린 다. What is Edit Distance?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Edit distance

Edit distance

Page 2: Edit distance

Beginning of Edit Distance

Levenshtein distance 는 러시아 과학자인 Vladimir Levenshtein 가 1965 년에 고안하여 그렇게 이름이 지어졌다 .

Levenshtein 이란 단어가 쓰거나 읽기 힘들기 때문에 종종 edit distance 라고도 불린다 .

Page 3: Edit distance

What is Edit Distance?

"edit distance between two strings of characters is the number of operations re-quired to transform one of them into the other."

두 문자열간의 edit distance 는 하나의 문자열을 다른 하나의 문자열로 변환하기 위해 요구되어지는 연산의 수이다 .

[wikipedia 발췌 ]

Page 4: Edit distance

String Operation

변환 , 삽입 , 삭제( 그냥 복사하는 것은 0

번의 연산 )

Page 5: Edit distance

String Operation ex.

1. abc abd : c 를 d 로 변환 (1 번 연산 : 거리 1)

2. park spake :

[ 방법 1] s 를 삽입 r 을 k 로 변환 k 를 e 로 변환 (3 번 연산 : 거리 3)

- p a r ks p a k e

[ 방법 2] p 를 s 로 변환 a 를 p 로 변환 r 를 p 로 변환 e 를 삽입 (4 번 연산 : 거리 4)

p a r k -s p a k e

최적의 거리는 3

Page 6: Edit distance

Algorithm Process[1]

<1>s 의 문자열 길이를 n 에 넣는다 .t 의 문자열의 길이를 m 에 넣는다 .만약 n = 0 이라면 , m 을 리턴하고 종료한다 .만약 m = 0 이라면 , n 을 리턴하고 종료한다 .0..m 행과 , 0..n 열로 이루어진 행열을 만든다 .

Page 7: Edit distance

Algorithm Process[2]

<2>첫번째 행인 0..n 을 초기화 한다 .첫번째 열인 0..m 을 초기화 한다 .<3>s 의 각 문자 (i 는 1 부터 n 까지 ) 를 검사한다 .<4>t 의 각 문자 (j 는 1 부터 m 까지 ) 를 검사한다 .

Page 8: Edit distance

Algorithm Process[3]

<5>s[i] 와 t[j] 가 같다면 , 변경하기 위한 비용은 0 이 된다 .s[i] 와 t[j] 가 같지 않다면 , 비용은 1 이 된다 .<6>행열의 셀 d[i,j] 에 다음의 것들 중 가장 작은 값을 넣는다 .a. 바로 위의 셀이 더하기 1 이 되는 경우 : d[i-1, j] + 1b. 바로 왼쪽 셀이 더하기 일이 되는 경우 : d[i,j-1] + 1c. 대각선으로 연속적인 , 바로 왼 , 위쪽 셀의 비용 : d[i-1,j-1] + cost<7>(3, 4, 5, 6) 단계를 반복하여 완료되면 , d[n, m] 셀에 있는 것이 distance 가 된다 .

Page 9: Edit distance

Edit Distance Matrix

DST String

SRC

String

c(i-1, j-1)

c(i-1, j)

c(i, j-1) c(i,j) edit dis-tance

삽입

복사 / 변환

src(i) 와 dst(j) 가 같으면 초록색 칸 값 ,

다르면 초록 , 빨강 , 주황 칸 값 중 가장 작은 값 +1

삭제

Page 10: Edit distance

Edit Distance Matrix< park spake >

(dst) s p a k e

(src) 0 1 2 3 4 5

p 1 1 1 2 3 4

a 2 2 2 1 2 3

r 3 3 3 2 2 3

k 4 4 4 3 3 3

S 삽입 (연산 1) P 복사

(연산 1)

A 복사(연산 1)

R k 변환( 연산 2)

K E 변환( 연산 3)

Edit distance 는 3

Page 11: Edit distance

Major Application Field

- 철자 검사- 음성 인식- DNA 분석- 표절여부 검사

Page 12: Edit distance

How do We Use Edit Dis-tance?

사전 DB 와 사용자가 입력한 단어의 비슷한 정도를 알아내기 위해 edit distance 를 사용 .