2009-07-24 2 views
1

Base64 문자로 가득 찬 다양한 길이의 문자열이 있습니다. 실제로 그들은 음성 인식 데이터가 노래마다 다릅니다.번호로 변환하여 문자열 일치 기법을 (들)?

이러한 문자열의 일부를 쉽게 비교하기 위해 16 진수 하위 문자열로 나눕니다. (노래의 약 1 초) 그러나 어떤 경우에는, 나는 단지 이것들을 머리와 비교할 수 없다. 나는 그들을 측정해야만한다.

은 'hellohellohelloo'와 'hallohellohelloo'와 예를 들어, 비교를 위해 다음 'hellohellohelloo'와 'herehellohelloo'비교 자세히 값을 얻어야한다.

가 어떤 알고리즘 또는 theorical가


편집 : 죄송합니다, 여기에 새로운 오전 :) 그리고 난 내 자신을 명확하게 할 수 없었다. 다음은 저를 명확하게하고 아이디어를 제안하는 몇 가지 의견입니다.

설명 1 :

사실 난 Levenshtein 거리에 대해 알고 있지만, 문제는 내가 비교 매트릭스를 구축해야 내가 두 문자열을 비교할 때마다하고 그 느린 과정을 검색 할 수 있습니다. 예를 들어 hello를 4444로 변환하고 hallo를 4443으로 변환 할 수 있다면 수치 값을 인덱싱하여 'hello'레코드가 얼마나 가까이 있는지 확인할 수 있습니다.

설명 2 :

은 어쩌면 문자열에 대한 인덱스 값과 그들로부터베이스 일정한 길이 스트링 (들) 및 저장 거리 값을 결정해야한다. 그것은 단지 생각 일뿐입니다! http://en.wikipedia.org/wiki/Levenshtein_distance

그것은 꽤 빨리 일반적으로, 그리고 구현도 가장 현대적인 언어가 있습니다 :

+0

"오디오 인식 데이터"에 실제로 읽을 수있는 텍스트가 포함되어 있습니까? –

+0

내가 물어보고있는 이유는 "텍스트"로의 변환이 매우 뛰어나서 단어 나 그와 비슷한 것을 골라 낼 수 있다면 간단한 levenshtein-distance 구현이나 이와 유사한 방법이 효과가 있다는 것입니다. 다른 샘플 포인트를 생성하는 웨이브 폼 같은 위상차와 같은 변환 문제로 인해 전체 문자열이 다른 경우 levenshtein은 쓸모가 없습니다. 오디오에서 실제 데이터를 게시 할 수 있습니까? –

+0

아니요, 텍스트가 아닙니다. 그것은 단지 base64 문자로 가득 차 있습니다. –

답변

0

Levenshtein의 거리가 아마 당신을 도울 것입니다.

+0

사실 내가 Levenshtein 거리에 대해 알고 있지만 문제는 내가 비교 행렬을 만들어야하는 두 개의 문자열을 비교할 때마다 검색 프로세스가 느려질 때마다 발생합니다. 예를 들어 hello를 4444로 변환하고 hallo를 4443으로 변환 할 수 있다면 수치 값을 인덱싱하여 'hello'레코드가 얼마나 가까이 있는지 확인할 수 있습니다. 나는 내가 지금 조금 더 분명하다고 생각한다. :) –

+0

어쩌면 나는 기본 상수 - 길이 문자열 (들)을 결정하고 그들로부터 거리 값을 문자열에 대한 색인 값으로 저장해야한다. 그것은 단지 생각 일뿐입니다! –

+0

나는 그 분야의 전문가는 아니지만, Levenshtein과 비슷한 다른 algorythms가있을 것이라고 확신합니다. 아마도 당신이 찾고있는 것과 더 가깝습니다. 당신의 문제에 대한 해결책은 또한 두 가지 algorythms의 조합에있을 수 있습니다 ... Levenshtein 's와 함께 작업하지 않고 char-by-char 거리 분석을 추가하십시오 (이 방법은 이름이 있지만 마음에 들지 않습니다 바로 지금><). H = 0 E - - A = 4 (B, C, D, E) L - L = 0 L - L = 0 H "안녕하세요"와 같은 것을 제공 할 "hally"VS : 예컨대 o - y = 10 (p, q, r, s, t, u, v, w, x, y) 나는 whan을 의미합니까? – Nicolas