가장 빈도 높은 K 문자 기반 새로운 문자열 거리 함수

가장 빈도 높은 K 문자 기반 새로운 문자열 거리 함수

초록

본 논문은 문자열 비교 시 계산 속도를 높이면서도 의미 있는 유사성을 제공하는 새로운 거리 함수를 제안한다. 입력 문자열을 해시하여 가장 빈도가 높은 K개의 문자와 그 빈도를 추출하고, 이를 기반으로 두 문자열 간의 거리/유사도를 계산한다. 실험 결과, 텍스트 마이닝 작업에서 기존 히스토그램 기반 방법에 근접한 정확도를 유지하면서 연산 속도가 크게 개선됨을 보였다.

상세 분석

이 연구는 문자열 유사도 측정에서 ‘속도‑정밀도 트레이드오프’를 해결하려는 시도로 눈에 띈다. 전통적인 레벤슈타인 거리나 다이나믹 프로그래밍 기반 알고리즘은 최적의 매칭을 제공하지만, 문자열 길이에 비례하는 O(n·m) 복잡도로 대규모 데이터셋에 적용하기 어렵다. 반면, 문자 빈도 히스토그램을 이용한 코사인 유사도나 Jaccard 지수는 O(|Σ|) (Σ는 알파벳 크기) 수준의 연산으로 빠르지만, 전체 빈도 정보를 유지해야 하므로 메모리와 전처리 비용이 증가한다. 논문이 제안한 “Most Frequent K Characters” 방식은 이 두 극단 사이의 중간점을 찾는다. 핵심 아이디어는 문자열 전체를 스캔해 상위 K개의 문자와 그 빈도를 추출하고, 이를 고정 길이 벡터(또는 해시)로 변환하는 것이다. K는 사용 환경에 따라 조정 가능하며, 일반 텍스트에서는 5~10 정도가 충분히 문자열의 특징을 포착한다는 실험적 근거를 제시한다.

알고리즘 흐름은 다음과 같다. 1) 입력 문자열을 한 번 순회하면서 각 문자 빈도를 카운트한다. 2) 빈도 맵을 힙 또는 선택 알고리즘을 이용해 상위 K개를 추출한다. 3) 추출된 (문자, 빈도) 쌍을 정렬된 형태로 직렬화하거나 해시값으로 변환한다. 두 문자열 간 거리는 이 정렬된 K‑tuple 집합의 차집합/교집합 비율, 혹은 빈도 차이의 L1/L2 norm 등으로 정의한다. 시간 복잡도는 O(n + K·log K) 정도이며, K가 상수라면 실질적으로 O(n)이다. 메모리 사용량도 O(K)로 제한돼 대규모 스트리밍 환경에 적합하다.

실험에서는 영문 뉴스 기사, 트위터 데이터, 그리고 DNA 서열(알파벳 4개) 등 다양한 도메인에 적용했으며, 특히 텍스트 분류와 클러스터링 작업에서 기존 히스토그램 기반 코사인 유사도와 비슷한 F1 점수를 기록하면서도 평균 연산 시간이 3070% 감소했다. 다만, K가 너무 작으면 정보 손실이 발생해 유사도 판단이 부정확해지는 경향이 관찰되었다. 또한, 문자열 길이가 극히 짧은 경우(예: 510자)에는 상위 K 선택 자체가 불안정해져 기존 방법보다 성능이 떨어진다.

이 논문의 강점은 (1) 구현이 단순하고 기존 해시 함수와 결합해 빠른 전처리를 가능하게 한다는 점, (2) K를 조절함으로써 정확도와 속도 사이의 균형을 사용자가 직접 설정할 수 있다는 점이다. 반면, (1) 문자 집합이 제한적이거나 비정형 데이터(예: 이모지, 특수 기호)가 많이 포함된 경우 빈도 기반 특성이 왜곡될 수 있다, (2) K 선택에 대한 이론적 가이드라인이 부족해 실험적 튜닝에 의존한다는 점이 아쉽다. 향후 연구에서는 K를 자동으로 최적화하는 메타러닝 기법이나, 다중 해시(다중 K) 전략을 도입해 다양한 스케일의 특징을 동시에 포착하는 방안을 모색할 수 있다.

요약하면, 본 논문은 “상위 K 문자 빈도”라는 직관적인 특징 추출 방식을 통해 문자열 거리 계산을 O(n) 수준으로 가속화하면서도 실용적인 정확도를 유지한다는 점에서 의미가 크다. 특히, 실시간 로그 분석, 스트리밍 텍스트 필터링, 대규모 문서 클러스터링 등 고속 유사도 판단이 요구되는 분야에 적용 가능성이 높다.