boostcampaitech4lv23nlp1 / final-project-level3-nlp-03

Multi-Modal Model for DocVQA(Document Visual Question Answering)
3 stars 0 forks source link

Why do we have to use lower case letter when finding the Levenshtein Distance? #24

Closed chanmuzi closed 1 year ago

chanmuzi commented 1 year ago

우리가 가진 단어 list에 포함된 단어가 실제 정답과 얼마나 유사한지 혹은 그렇지 않은지는 Levenshtein distance를 통해 구한다. 이때 이 값을 계산하는 코드는 아래와 같다.

def NLD(s1:str,s2:str) -> float:
    return editdistance.eval(s1.lower(),s2.lower()) / ((len(s1)+len(s2))/2)

만약 후보 단어 중 정답과의 Levenshtein distance가 동일한 단어가 두 개 이상있으면 Euclidean distance를 새로 구하여 정답을 예측하도록 하였다. 그러나 대소문자를 반영한다면 불필요한 연산을 제거할 수 있을 것이라 생각했다.

예시는 다음과 같다.

chanmuzi commented 1 year ago

이를 해결하기 위해서는 text가 tokenizer를 거치기 이전에 Levenshtein distance를 미리 구해야 한다. 이후 구조를 변경할 수 있다면 새로운 issue를 발행할 예정.