엑셀 Excel

텍스트 유사성 분석을 위한 엑셀의 레벤슈타인 거리 계산 방법

젊은우산 2023. 7. 17. 21:09
반응형

    엑셀은 데이터 처리와 분석을 위한 강력한 도구로 널리 알려져 있습니다. 그 중에서도 텍스트 유사성 분석은 다양한 분야에서 유용하게 활용되는데, 특히 영어와 한글이 혼합된 문장의 유사성을 분석하는 경우 어떻게 해야 할까요? 이번 글에서는 엑셀의 레벤슈타인 거리(Levenshtein distance)를 활용하여 영어와 한글을 포함한 문장의 유사성을 계산하는 방법을 알아보겠습니다.

 

레벤슈타인 거리를 활용한 유사성 계산

    레벤슈타인 거리는 문자열 간의 편집 거리를 측정하는 알고리즘으로, 두 문자열을 비교하여 최소한의 편집 작업 횟수를 계산합니다. 이를 통해 두 문자열의 유사성을 분석할 수 있습니다. 엑셀에서 레벤슈타인 거리를 계산하기 위해 VBA (Visual Basic for Applications)를 사용하여 사용자 정의 함수를 작성할 수 있습니다.

 

1. [Excel 실행] - [개발 도구] - [Visual Basic 클릭]

 

2.[Visual Basic] - [삽입] - [모듈 클릭]

 

3. 아래의 코드를 붙여넣기 후 [저장]

Option Explicit

Function LevenshteinDistance(s1 As String, s2 As String) As Integer
    Dim i As Integer, j As Integer
    Dim s1_len As Integer, s2_len As Integer
    Dim d() As Integer
    Dim min1 As Integer, min2 As Integer, min3 As Integer

    s1_len = Len(s1)
    s2_len = Len(s2)
    ReDim d(s1_len, s2_len)

    For i = 0 To s1_len
        d(i, 0) = i
    Next i

    For j = 0 To s2_len
        d(0, j) = j
    Next j

    For i = 1 To s1_len
        For j = 1 To s2_len
            If Mid(s1, i, 1) = Mid(s2, j, 1) Then
                d(i, j) = d(i - 1, j - 1)
            Else
                min1 = d(i - 1, j) + 1
                min2 = d(i, j - 1) + 1
                min3 = d(i - 1, j - 1) + 1
                d(i, j) = WorksheetFunction.Min(min1, min2, min3)
            End If
        Next j
    Next i

    LevenshteinDistance = d(s1_len, s2_len)
End Function

 

위의 코드를 VBA 함수로 만든 상태로 저장 시키면 엑셀에서 사용가능 한 함수가 됩니다. 

사용하는 방법은 (셀값에 입력)=LevenshteinDistance(A1,B1)

 

영어와 한글 포함 문장의 유사성 분석

레벤슈타인 거리를 사용하여 영어와 한글이 포함된 문장의 유사성을 분석하기 위해서는 다음과 같은 단계를 따릅니다:

  1. 엑셀에서 VBA 코드를 작성하여 레벤슈타인 거리 계산 함수를 추가합니다.
  2. 원하는 문장이 담긴 셀에 함수를 적용하여 유사성을 계산합니다.
  3. 계산된 유사성 값으로 문장들을 비교하고 평가합니다.

 

모두 일치하면 0, 더 작은 거리 일 수록 유사한 문장

레벤슈타인 거리는 두 문자열 간의 편집 작업 횟수를 측정하기 때문에, 작은 거리 값은 더 유사한 문장을 의미합니다. 유사성의 정확한 임계값은 문제의 복잡성과 유사성의 정의에 따라 다를 수 있으며, 실험과 조정을 통해 적절한 값을 찾아내어야 합니다.

마무리

이렇게 엑셀의 레벤슈타인 거리 계산을 활용하여 영어와 한글이 포함된 문장의 유사성을 분석할 수 있습니다. 텍스트 유사성 분석은 자연어 처리, 검색 엔진 개발, 플래그먼트 탐지 등 다양한 분야에서 활용되며, 엑셀을 통해 간편하게 수행할 수 있다는 점이 큰 장점입니다. 유사성 분석을 통해 다양한 데이터와 문장을 비교하고 평가하는데 활용해 보세요!

 

 

 

 

반응형