KR20120029505A - Method for calculating similarity of korean word - Google Patents

Method for calculating similarity of korean word Download PDF

Info

Publication number
KR20120029505A
KR20120029505A KR1020100091240A KR20100091240A KR20120029505A KR 20120029505 A KR20120029505 A KR 20120029505A KR 1020100091240 A KR1020100091240 A KR 1020100091240A KR 20100091240 A KR20100091240 A KR 20100091240A KR 20120029505 A KR20120029505 A KR 20120029505A
Authority
KR
South Korea
Prior art keywords
similarity
comparison
syllables
phonemes
syllable
Prior art date
Application number
KR1020100091240A
Other languages
Korean (ko)
Inventor
박근수
노강호
장소원
조환규
Original Assignee
서울대학교산학협력단
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단, 부산대학교 산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020100091240A priority Critical patent/KR20120029505A/en
Publication of KR20120029505A publication Critical patent/KR20120029505A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A similarity calculating apparatus about Korean is provided to accurately classify similar words by using four algorithms which define similarity between phonemes. CONSTITUTION: Similarity scores are stored in database. An input word is compared with a compared object. The similarity score between the input word and the compared object is calculated with reference to the database(S232). The similarity score is calculated by comparing syllables.

Description

한글에 대한 유사도 계산 방법{Method for Calculating Similarity of Korean Word}Method for Calculating Similarity of Korean Word

본 발명은 한글에 대한 유사도 계산 방법에 관한 것으로서, 한국어 단어의 음소와 음절을 구분하여 유사도를 구하는 기존 연구를 확장하여, 음소간의 유사도를 정의하고 이를 이용하여 유사한 단어를 더 정확하게 구분해 내기 위한 알고리즘들을 적용한 한글 유사도 계산 방법에 관한 것이다. The present invention relates to a method for calculating similarity for Hangul, which is an algorithm for defining similarities between phonemes and more accurately classifying similar words using the same by extending existing researches for dividing phonemes and syllables of Korean words. Korean similarity calculation method applying the

문자열 A 와 B 에 대한 편집 거리는 A 를 B 로 바꾸기 위하여 필요한 최소한의 연산(삽입, 삭제, 치환)의 개수를 나타낸다. 편집 거리 문제에 대해서는 동적 프로그래밍을 이용하여 O(|A||B|) 시간 안에 최적해을 구하는 여러 방법들이 알려져 있다. 그러나 대부분의 기존연구는 알파벳 기반의 영어나 A, C, T, G 등으로 이루어진 유전자 서열 등을 대상으로 하는 경우들이 많았고, 영어권의 언어가 아닌 좀 더 복잡한 형태의 언어들에 대해서는 많은 연구가 진행되지 않았다. The edit distances for the strings A and B represent the minimum number of operations (inserts, deletes, substitutions) needed to replace A with B. As for the edit distance problem, several methods are known to find the optimal solution in O (| A || B |) time using dynamic programming. However, most of the existing studies have been based on alphabet-based English or gene sequences consisting of A, C, T, G, etc., and many studies have been conducted on more complicated forms of languages other than English-speaking languages. It wasn't.

본 발명에서는 이러한 언어들 중에서 한국어, 즉 한글에 대한 편집 거리를 정의하고 그것을 구하는 알고리즘을 제시하고자 한다. 영어가 알파벳의 1차원 배열 형태를 갖는 것과 달리 한글은 하나 이상의 음소(자음+모음)로 이루어진 음절의 배열로 이루어진다. 한글에는 모음(vowel, V)과 자음(consonant, C)의 2가지 종류의 음소가 존재한다. 한글의 음절은 V, CV, CVC의 3가지 형태가 존재하는데, V의 경우에는 무음가 'ㅇ'을 붙임으로써 실생활에서는CV, CVC의 2가지 형태의 음절이 존재하게 된다. 이를 조금 확장하면 오타 등으로 인해 자주보게 되는 자음 또는 모음 하나로만 이루어진 경우를 포함하여, C, V, CV, CVC의 4가지 형태의 음절을 고려할 수 있다. 좀 더 나아가 언어학적으로 모음과 자음을 단모음/이중모음, 단자음/이중자음 등으로 좀 더 자세히 구분하면, CCVC, CVCC, CCVCC, CVVC등의 복잡한 형태들이 존재할 수 있다. 그러나 기술의 단순성을 위하여 이후에는 위의 4가지 형태만을 고려하여 발명의 내용을 기술하기로 한다.영어에서는 두 문자열의 편집 거리를 구할 때, 삽입, 삭제, 치환의 3가지 편집 연산을 사용한다. 한글에 대한 편집 거리를 구하는 간단한 방법으로 음절 단위로 위의 3가지 편집 연산을 적용하는 방법을 생각할 수 있는데, 이를 SylED(음절 기반의 편집 거리) 알고리즘이라고 부르도록 하자. The present invention intends to define an editing distance for Korean, that is, Hangul, among these languages, and present an algorithm for obtaining it. Unlike English having a one-dimensional array of alphabets, Hangeul consists of an array of syllables consisting of one or more phonemes (consonants + vowels). In Hangul, there are two kinds of phonemes: vowel (V) and consonant (C). Hangul syllables have three types of V, CV, and CVC. In the case of V, two types of syllables exist in real life, such as CV and CVC. Expanding it a little, we can consider four types of syllables: C, V, CV, and CVC, including only one consonant or vowel that is frequently seen due to typos. Further, if linguistically divided vowels and consonants into short vowels / double vowels, terminal / double consonants, etc., complex forms such as CCVC, CVCC, CCVCC, and CVVC may exist. However, for the sake of simplicity, hereinafter, the contents of the invention will be described by considering only the above four types. In the English language, three editing operations such as insertion, deletion, and substitution are used to determine the editing distance of two strings. As a simple way to find the editing distance for Hangul, we can think of how to apply the above three editing operations on a syllable basis. This is called the SylED algorithm.

예를 들어, 음절 단위의 삽입, 삭제, 치환의 3가지 편집 연산의 비용을 각각 1로 하였을 경우에 대하여, 도 1을 참조하여 살펴본다. 도 1은 A = '서울대공원' 및 이와 유사한 몇 가지 단어들을 보여주고 있다. 문자열 A와 B의 편집 거리를 δ(A, B)라고 표현하면, δ(A, B) = δ(A, C) = δ(A, D) = 1이 되어 문자열 A와 B, C, D와의 각각의 거리는 모두 같게 된다. 그러나, 단어의 의미 관점에서 접근해 보면 B는 A 의 간단한 오타로 생각할 수 있을 정도로 가까운 단어가 되지만, C 는 '파리에 실존하는 공원 이름', D는 '울산대공원'의 오타 등으로 해석이 가능하여, A 와는 완전히 다른 뜻의 단어가 될 수 있다. 따라서 영어에서 하나의 문자가 차이 나는 것과 한글에서의 한 음절이 바뀌는 경우는 서로 같은 정도의 의미 변화를 반영하기 힘들다고 할 수 있으므로, 이러한 방법은 적합한 편집 거리에 대한 정의라고 말하기가 힘들다.For example, a case in which the cost of three editing operations of insertion, deletion, and substitution of syllable units is set to 1 will be described with reference to FIG. 1. Figure 1 shows A = 'Seoul Grand Park' and several similar words. If the edit distances of the strings A and B are expressed as δ (A, B), then δ (A, B) = δ (A, C) = δ (A, D) = 1 and the strings A, B, C, D Each distance between and becomes equal. However, from the point of view of the meaning of the word, B becomes a word close enough to be considered as a simple typo of A, but C can be interpreted as 'the name of a park existing in Paris' and D can be a typo of 'Ulsan Grand Park'. In other words, it can be a completely different word from A. Therefore, it is difficult to say that a single letter in English and a syllable in Hangeul cannot reflect the same change in meaning.

다른 방법으로는 한글의 음절을 여러 음소로 구분한 후, 음소 단위에 대해 편집 거리를 구하는 방법을 생각해 볼 수 있다. 즉, 배치되는 음절들을 비교하여 음소단위로 발생하는 삽입, 삭제, 치환에 대해서 비용을 계산하는 방법이다. 이후부터는 이러한 방법을 PhoED(음소 기반의 편집 거리) 알고리즘이라고 부르도록 하자. Alternatively, we can think of how to divide the syllables of Hangeul into several phonemes and find the editing distance for phoneme units. That is, a method of calculating costs for insertion, deletion, and substitution occurring in phoneme units by comparing the arranged syllables. In the following, we will call this method the PhoED algorithm.

예를 들어, 문자열에 PhoED을 적용했을때의 예를 보여주고 있다. 도 1의 문자열 A와 B에 대해서, PhoED에서의 편집 거리를 구하면, δ(A, B) = δ('공','고')=1이 된다. 동일한 방법으로 A, C간의 거리를 구하면, δ(A, C) = δ('대',-)=2가 된다. For example, here is an example of applying PhoED to a string. With respect to the character strings A and B in Fig. 1, when the editing distance in PhoED is found, δ (A, B) = δ ('ball', 'high') = 1. If the distance between A and C is found in the same way, δ (A, C) = δ ('large',-) = 2.

위와 같은 두 가지 방식에서 PhoEDSylED에 비해서 조금 더 세밀하게 단어들을 구분할 수 있음을 알 수 있다. 그러나 이러한 방법들을 사용할 경우에는 아래와 같은 문제가 발생한다. δ(A, D)는 2인 반면에, A와 E는 'ㅇ', 'ㅜ', 'ㄹ'의 3개 음소가 다르기 때문에 δ(A, E)=3이 된다. PhoED is compared to SylED in two ways: as above it can be seen that distinguish the words a little more detail. However, when using these methods, the following problems occur. While δ (A, D) is 2, A and E are δ (A, E) = 3 because the three phonemes of 'O', 'TT' and 'ㄹ' are different.

그러나, 위의 두 케이스는 모두 하나의 음절이 통째로 사라진 경우이기 때문에, δ(A, D)= δ(A, E)가 되는 것이 한글의 입장에서는 더 합리적이라고 말할 수 있다. 결론적으로 위의 2가지 알고리즘들은 한글의 입장을 잘 반영하지 못하고 있으므로, 좀 더 적합한 한글 편집 거리 알고리즘이 요구되고 있다. However, in both cases above, one syllable is completely missing, so it can be said that it is more reasonable for Korean to have δ (A, D) = δ (A, E). In conclusion, the above two algorithms do not reflect Korean's position well, so a more suitable Hangul editing distance algorithm is required.

따라서, 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은, 한글 단어의 음소와 음절을 구분하여 유사도를 구하는 기존 연구를 확장하여, 음소간의 유사도를 정의하고 이를 이용하여 유사한 단어를 더 정확하게 구분해 내기 위한 알고리즘들을 적용한 한글 유사도 계산 방법 및 장치를 제공하는 데 있다. Accordingly, an object of the present invention is to solve the above problems, and an object of the present invention is to expand the existing researches for obtaining similarity by dividing a phoneme and a syllable of a Hangul word, to define similarity between phonemes and to use similar words. The present invention provides a method and apparatus for calculating Korean similarity using algorithms for more accurate classification.

또한, 본 발명에서는 4가지 알고리즘들을 제안하며 각각의 방식을 이용하여 입력어(음소, 음절, 단어, 구, 문장 등)와 비교 대상과의 유사도가 한글의 입장이 반영되어 좀더 적합한 유사도 값으로 산출되도록 함으로써, 다양한 검색 시스템에서 입력 한글에 대하여 좀 더 유사한 검색어를 찾는 데 매우 유용하게 활용될 수 있는 한글 유사도 계산 방법 및 장치를 제공하는 데 있다. In addition, the present invention proposes four algorithms, and the similarity between the input language (phoneme, syllable, word, phrase, sentence, etc.) and the target of comparison is calculated using each method to calculate a more suitable similarity value. The present invention provides a method and apparatus for calculating Korean similarity, which can be very useful for finding a more similar search word for input Korean in various search systems.

먼저, 본 발명의 특징을 요약하면, 상기와 같은 본 발명의 목적을 달성하기 위한 본 발명의 일면에 따른 한글 유사도 계산 장치에서 한글 유사도 계산 방법은, 두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 및 입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고, 상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되, 상기 데이터베이스는 음절 삽입에 대한 편집 거리(β), 음절 삭제 에 대한 편집 거리(β), 및 음절 치환에 대한 편집 거리를 저장하고, [알고리즘 식1] 에 기초하여, 비교 현재의 유사도 점수를 산출할 수 있다.First, to summarize the features of the present invention, the Korean similarity calculation method in the Korean similarity calculation apparatus according to an aspect of the present invention for achieving the object of the present invention, to be mapped for a plurality of similarity forms between two syllable syllables Storing similarity scores in a database; And comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database, and in the calculating of the similarity score, from the front of the word with a space in front of the input word. For the syllables accumulated by one syllable, each similarity score is calculated by comparing the syllables accumulated one syllable from the front of the word with a space before the comparison object, and the database calculates the edit distance (β) for syllable insertion. The edit distance β for syllable deletion and the edit distance for syllable substitution can be stored, and based on [Algorithm Equation 1], the similarity score of the comparison current can be calculated.

상기 음절 치환에 대한 편집 거리는, 비교되는 상기 두 한글 음절 간의 모든 음소들이 다른 경우에, 상기 β이며, 비교되는 상기 두 한글 음절 간에 하나 이상의 음소가 같은 경우에, N*α이고, 여기서, α는 음소 단위 편집 연산 비용으로서 임의의 실수, N은 다른 음소의 갯수이며, β≥3α일 수 있다.The editing distance for the syllable substitution is N when all the phonemes between the two Hangul syllables being compared are β, and when at least one phoneme is the same between the two Hangul syllables being compared, N * α, where α is Any real number, N, as the phoneme editing operation cost, is the number of other phonemes, and may be β ≧ 3α.

또한, 본 발명의 다른 일면에 따른, 한글 유사도 계산 장치에서 한글 유사도 계산 방법은, 두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고, 상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되, 상기 데이터베이스는 음소 매치에 대한 유사도값(Mp), 음소 미스매치에 대한 유사도값(동일 그룹의 경우 -N1p 또는 다른 그룹의 경우 -N2p), 음소 삽입이나 삭제에 대한 유사도값(-Ip), 음절 매치에 대한 유사도값(Ms), 음절 미스매치에 대한 유사도값, 및 음절 삽입이나 삭제에 대한 유사도값(-Is)을 저장하고, [알고리즘 식2]에 기초하여, 비교 현재의 유사도 점수를 산출할 수 있다.In addition, according to another aspect of the present invention, a method for calculating Korean similarity in a Korean similarity calculating apparatus includes: storing similarity scores to be mapped to a plurality of similarity types between two Hangul syllables in a database; Comparing an input word with a comparison object and calculating a similarity score between the input word and the comparison object with reference to the database; and in the calculating of the similarity score, a word from the front of the word with a space in front of the input word. For syllables accumulated by syllable, each similarity score is calculated by comparing the syllables accumulated by one syllable from the front of the word with the space before the comparison object, and the database calculates the similarity value (Mp) and the phoneme for the phoneme match. Similarity values for mismatches (-N1p for the same group or -N2p for other groups), similarity values for phoneme insertion or deletion (-Ip), similarity values for syllable matches (Ms), and syllable mismatches Similarity values, and similarity values (-Is) for syllable insertion or deletion, can be stored, and based on [Algorithm Equation 2], a comparison current similarity score can be calculated. The.

상기 음절 미스매치에 대한 유사도값은, 비교되는 상기 두 한글 음절 간의 모든 음소들이 다른 경우에, -Ns(Ns는 0보다 큰 실수), 비교되는 상기 두 한글 음절 간에 하나 이상의 음소가 같은 경우에, 대응되는 음소들의 유사도값들의 합이며, 여기서, Ms≥3Mp, -Ns≤-3N1p, 및 -Is≤-3Ip일 수 있다.The similarity value for the syllable mismatch is -Ns (Ns is a real number greater than 0) when all phonemes between the two Hangul syllables to be compared are different, and when one or more phonemes are equal between the two Hangul syllables to be compared, It is the sum of the similarity values of the corresponding phonemes, where Ms≥3Mp, -Ns≤-3N1p, and -Is≤-3Ip.

또한, 본 발명의 또 다른 일면에 따른, 한글 유사도 계산 장치에서 한글 유사도 계산 방법은, 두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 및 입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고, 상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되, 상기 입력어와 상기 비교대상에 각각 음절 경계마다 구분자('#')을 삽입하고 초성, 중성, 종성 순서로 나열한 후, 상기 구분자가 포함된 입력어와 비교대상 간의 상기 유사도 점수를 산출할 수 있다.In addition, according to another aspect of the present invention, a method of calculating Korean similarity in a Korean similarity calculating apparatus includes: storing similarity scores to be mapped to a plurality of similarity types between two Hangul syllables in a database; And comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database, and in the calculating of the similarity score, from the front of the word with a space in front of the input word. For the syllables accumulated by one syllable, each similarity score is calculated by comparing the syllables accumulated by one syllable from the front of the word with a space before the comparison object, and the separators are separated for each syllable boundary in the input word and the comparison object. After inserting '#') and arranging them in the order of initial, neutral, and final, the similarity score between the input word including the separator and the comparison target may be calculated.

상기 데이터베이스는 두 음소가 서로 일치하고 모두 '#'이 아닌 경우에 대한 유사도값(M1), 두 음소가 모두 '#'인 경우에 대한 유사도값(M2), '#'이 아닌 두 음소가 다르고 서로 같은 그룹에는 속하는 경우에 대한 유사도값(-N1), '#'이 아닌 두 음소가 다르고 서로 다른 그룹에는 속하는 경우에 대한 유사도값(-N2), 두 음소가 서로 다르고 그 중 하나가 '#'인 경우에 대한 유사도값(-N3), 두 음소 중 하나가 '#'이 아니며 음소 삽입이나 삭제인 경우에 대한 유사도값(-I1), 두 음소 중 하나가 '#'이며 음소 삽입이나 삭제인 경우에 대한 유사도값(-I2)을 저장하고, [알고리즘 식3]에 기초하여, 비교 현재의 유사도 점수를 산출할 수 있다.The database has a similarity value (M 1 ) for a case where two phonemes match each other and not both '#', a similarity value (M 2 ) for a case where both phonemes are '#', and two phonemes that are not '#'. are different from each other such that the two groups are different than the phoneme similarity value (-N 1), '#' for the case belonging to the similarity value (-N 2), for two phonemes if belongs is different groups different from each other, of which Similarity value for the case where one is '#' (-N 3 ), similarity value for the case where one of the two phonemes is not '#' and is a phoneme insertion or deletion (-I 1 ), and one of the two phones 'And the similarity value (-I 2 ) for the case of phoneme insertion or deletion, and based on [Algorithm Equation 3], the current similarity score of the comparison can be calculated.

또한, 본 발명의 또 다른 일면에 따른 한글 유사도 계산 장치에서 한글 유사도 계산 방법은, 두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 및 입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고, 상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하고, 또한, 상기 입력어와 상기 비교대상의 음절을 음소 단위로 풀어 초성, 중성, 종성 순서로 나열한 후, 각 초성 뒤에 구분자(')을 삽입한 후, 상기 구분자가 포함된 입력어와 비교대상 간의 상기 유사도 점수를 산출하되, 각 음절에서 중성이나 종성에 비교하여 상기 구분자가 포함된 초성에 가중치를 더 크거나 같게 줄 수 있다.In addition, the Hangul similarity calculation method in the Hangul similarity calculating apparatus according to another aspect of the present invention, storing the similarity scores to be mapped to a plurality of similarity forms between two Hangul syllables in a database; And comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database, and in the calculating of the similarity score, from the front of the word with a space in front of the input word. For syllables accumulated by one syllable, each similarity score is calculated by comparing the syllables accumulated one syllable from the front of the word with the space before the comparison object, and the syllables of the input word and the comparison object are phoneme-based. And then sorting them in order of initial, neutral, and final, followed by inserting a delimiter (') after each initial, and calculating the similarity score between the input word containing the delimiter and the comparison target, compared to neutral or final in each syllable. The weights may be greater than or equal to the initiality including the delimiter.

상기 데이터베이스는, 두 음소가 서로 일치하고 모두 초성인 경우에 대한 유사도값(m1), 두 음소가 서로 일치하고 모두 초성이 아닌 경우에 대한 유사도값(m2), 두 음소가 서로 일치하고 하나만 초성인 경우에 대한 유사도값(m3), 두 음소가 서로 다르고 모두 초성인 경우에 대한 유사도값(-n1), 두 음소가 서로 다르고 모두 초성이 아닌 경우에 대한 유사도값(-n2), 두 음소가 서로 다르고 하나만 초성인 경우에 대한 유사도값(-n3), 초성에 대하여 음소 삽입이나 삭제인 경우에 대한 유사도값(-i1), 초성이 아닌 경우에 대하여 음소 삽입이나 삭제인 경우에 대한 유사도값(-i2)을 저장하고, [알고리즘 식3]에 기초하여, 비교 현재의 유사도 점수를 산출할 수 있다.The database has a similarity value (m 1 ) for two phonemes that coincide with each other and both initials, a similarity value (m 2 ) for two phonemes that coincide with each other and not all primarys, and two phonemes match each other and only one Similarity value for the case of a first consonant (m 3 ), similarity value for the case where two phonemes are different and both consonant (-n 1 ), similarity value for the case where the two phonemes are different and not all consonant (-n 2 ) , The similarity value for two phonemes that differ from each other and only one foremost (-n 3 ), the similarity value for phoneme insertion or deletion for a first consonant (-i 1 ), and the insertion or deletion of a phoneme for a non-choice The similarity value (-i 2 ) for the case may be stored, and based on [Algorithm Equation 3], the similarity score of the comparison current may be calculated.

위와 같은 한글 유사도 계산 방법들은, 초성으로 사용되는 한글 자음 및 종성이 없거나 종성으로 사용되는 한글 자음을 분류한 복수의 자음 그룹, 및 한글 모음을 분류한 복수의 모음 그룹을 정의하여 제2데이터베이스에 저장하는 단계를 더 포함하고, 상기 유사도 점수를 산출하는 단계에서, 상기 제2데이터베이스를 기초로 상기 입력어와 상기 비교대상의 한글 자음 및 모음 각각의 그룹을 판단하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출할 수 있다. Hangul similarity calculation methods described above define a plurality of consonant groups classified as Korean consonants used as initial consonants and a Hangul consonant used as a finality, and a plurality of vowel groups classified as Korean consonants and stored in a second database. And calculating the similarity score, and determining a group of each of the input words and the Korean consonants and vowels of the comparison object based on the second database to determine a similarity score between the input language and the comparison object. Can be calculated.

상기 한글 유사도 계산 방법은, 리소스를 제3 데이터베이스에 저장하는 단계; 및 상기 유사도 점수를 산출하기 전에, 입력되는 상기 입력어와 비교할 상기 비교대상을 상기 제3 데이터베이스로부터 추출하는 단계를 더 포함한다.The method for calculating Korean similarity may include storing a resource in a third database; And extracting, from the third database, the comparison object to be compared with the input word before calculating the similarity score.

그리고, 본 발명의 다른 일면에 따른 한글 유사도 계산 장치는, 두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 저장하는 데이터베이스; 및 입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 유사도 점수 산출부를 포함하고, 상기 유사도 점수 산출부는, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되, 비교 현재 이전에 산출된 복수의 유사도 점수를 이용하여 비교 현재의 유사도 점수를 산출할 수 있다.The apparatus for calculating Korean similarity according to another aspect of the present invention includes a database storing similarity scores to be mapped to a plurality of similarity forms between two Hangul syllables; And a similarity score calculator for comparing an input word with a comparison object and calculating a similarity score between the input word and the comparison object, wherein the similarity score calculator includes a word from the front of the word with a space in front of the input word. For syllables accumulated by syllable, each similarity score is calculated by comparing the syllables accumulated by one syllable from the front of the word with the space before the comparison object, and compared using a plurality of similarity scores calculated before comparison. The current similarity score can be calculated.

상기 한글 유사도 계산 장치는, 초성으로 사용되는 한글 자음 및 종성이 없거나 종성으로 사용되는 한글 자음을 분류한 복수의 자음 그룹, 및 한글 모음을 분류한 복수의 모음 그룹으로 정의된 한글 분류 체계를 저장한 제2데이터베이스를 더 포함하고, 상기 유사도 점수 산출부는, 상기 제2데이터베이스를 참조하여 상기 입력어와 상기 비교대상의 한글 자음 및 모음 각각의 그룹을 판단하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출할 수 있다.The apparatus for calculating Korean similarity stores a Hangul classification system defined by a plurality of consonant groups classified as Korean consonants used as initial consonants and a Hangul consonant used as a finality, or a plurality of vowel groups classified as Hangul vowels. The apparatus may further include a second database, and the similarity score calculator may calculate a similarity score between the input language and the comparison object by determining a group of each of the input words and the Korean consonants and vowels of the comparison object with reference to the second database. Can be.

상기 한글 유사도 계산 장치는, 리소스를 저장하는 제3 데이터베이스; 및 상기 유사도 점수를 산출하기 전에, 입력되는 상기 입력어와 비교할 상기 비교대상을 상기 제3 데이터베이스로부터 추출하는 비교 대상 추출부를 더 포함할 수 있다.The Hangul similarity calculating device includes: a third database for storing resources; And a comparison object extracting unit extracting the comparison object to be compared with the input word to be input from the third database before calculating the similarity score.

본 발명에 따른 한글 유사도 계산 방법 및 장치에 따르면, 한글 단어의 음소와 음절을 구분하여 유사도를 구하는 기존 연구를 확장하여 음소간의 유사도를 정의한 4가지 알고리즘들에 따라 유사한 단어를 더 정확하게 구분해 내도록 하였다.According to the method and apparatus for calculating Korean similarity according to the present invention, the existing researches for obtaining similarity by dividing phonemes and syllables of Korean words are extended to distinguish similar words more accurately according to four algorithms that define similarity between phonemes. .

또한, 제안된 4가지 알고리즘들에 따라 입력어(음소, 음절, 단어, 구, 문장 등)와 비교 대상과의 유사도가 한글의 입장이 반영되어 좀더 적합한 유사도 값으로 산출되도록 함으로써, 다양한 검색 시스템에 적용하여 입력 한글에 대하여 좀 더 유사한 검색어를 찾는 데 매우 유용하게 활용될 수 있도록 하였다. In addition, according to the proposed four algorithms, the similarity between the input words (phoneme, syllables, words, phrases, sentences, etc.) and the target of comparison is reflected in the Korean language, and thus the similarity value is calculated to be more suitable. By applying it, it can be very useful for finding more similar search terms for input Hangul.

도 1은 일반적인 편집거리 알고리즘을 설명하기 위한 단어의 예이다.
도 2는 본 발명의 일실시예에 따른 한글 유사도 계산 방법을 적용한 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 한글 유사도 계산 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일실시예에 따른 제1 알고리즘에서의 편집 거리의 정의를 설명하기 도면이다.
도 5는 본 발명의 일실시예에 따른 유사도 행렬표의 각 원소를 결정하기 위한 제1알고리즘을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 제1 알고리즘에 따른 유사도 행렬표의 일례이다.
도 7a 및 도 7b는 본 발명의 일실시예에 따른 제1 알고리즘의 적합성을 설명하기 위한 예이다.
도 8은 기존의 한글 자음에 대한 음소 분류 체계를 설명하기 위한 도면이다.
도 9는 기존의 한글 모음에 대한 음소 분류 체계를 설명하기 위한 도면이다.
도 10은 본 발명에 적용할 한글 자음에 대한 수정된 음소 분류 체계를 설명하기 위한 도면이다.
도 11은 본 발명에 적용할 한글 모음에 대한 수정된 음소 분류 체계를 설명하기 위한 도면이다.
도 12는 본 발명의 다른 실시예에 따른 제2 알고리즘에서의 유사도값의 정의를 설명하기 도면이다.
도 13은 본 발명의 다른 실시예에 따른 유사도 행렬표의 각 원소를 결정하기 위한 제2알고리즘을 설명하기 위한 도면이다.
도 14는 본 발명의 다른 실시예에 따른 제2 알고리즘에 따른 유사도 행렬표의 일례이다.
도 15는 타이핑 오타에 따른 유사 판단의 적합성을 설명하기 위한 예이다.
도 16은 본 발명의 또 다른 실시예에 따른 제3 알고리즘에서의 유사도값의 정의를 설명하기 도면이다.
도 17은 본 발명의 또 다른 실시예에 따른 유사도 행렬표의 각 원소를 결정하기 위한 제3알고리즘을 설명하기 위한 도면이다.
도 18a 및 도 18b는 본 발명의 또 다른 실시예에 따른 제3 알고리즘의 적합성을 설명하기 위한 예이다.
도 19a 및 도 19b는 본 발명의 또 다른 실시예에 따른 제3 알고리즘의 적합성을 설명하기 위한 다른 예이다.
도 20은 본 발명의 또 다른 실시예에 따른 제4 알고리즘에서의 유사도값의 정의를 설명하기 도면이다.
1 is an example of words for explaining a general editing distance algorithm.
2 is a diagram illustrating an apparatus to which the Korean similarity calculation method is applied according to an embodiment of the present invention.
3 is a flowchart illustrating a method of calculating Korean similarity according to an embodiment of the present invention.
4 is a view for explaining the definition of the editing distance in the first algorithm according to an embodiment of the present invention.
5 is a diagram for describing a first algorithm for determining each element of the similarity matrix table according to an embodiment of the present invention.
6 is an example of a similarity matrix table according to a first algorithm according to an embodiment of the present invention.
7A and 7B are examples for describing suitability of the first algorithm according to an embodiment of the present invention.
8 is a diagram for explaining a phoneme classification system for a conventional Korean consonant.
9 is a diagram illustrating a phoneme classification system for a conventional Hangul vowel.
10 is a diagram illustrating a modified phoneme classification system for Hangul consonants to be applied to the present invention.
11 is a diagram illustrating a modified phoneme classification system for a Korean vowel to be applied to the present invention.
12 is a view for explaining the definition of the similarity value in the second algorithm according to another embodiment of the present invention.
FIG. 13 is a diagram for describing a second algorithm for determining each element of the similarity matrix table according to another embodiment of the present invention.
14 is an example of a similarity matrix table according to a second algorithm according to another embodiment of the present invention.
15 is an example for explaining suitability of similarity determination according to a typing typo.
16 is a diagram for explaining definition of a similarity value in a third algorithm according to another embodiment of the present invention.
FIG. 17 is a diagram for describing a third algorithm for determining each element of the similarity matrix table according to another embodiment of the present invention.
18A and 18B are examples for explaining suitability of a third algorithm according to another embodiment of the present invention.
19A and 19B are other examples for describing the suitability of the third algorithm according to another embodiment of the present invention.
20 is a diagram for explaining definition of a similarity value in a fourth algorithm according to another embodiment of the present invention.

이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.

도 2는 본 발명의 일실시예에 따른 한글 유사도 계산 방법을 적용한 장치(100)를 설명하기 위한 도면이다.2 is a diagram for describing an apparatus 100 to which a Korean similarity calculation method is applied according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 한글 유사도 계산 장치(100)는, 비교대상 추출부(110), 리소스 데이터베이스(111), 유사도 점수 산출부(120), 음소분류 데이터베이스(121), 및 매핑 데이터베이스(122)를 포함한다. 한글 유사도 계산 장치(100)의 위와 같은 구성 요소들은 소프트웨어, 하드웨어, 또는 이들의 조합으로 실현될 수 있으며, 어느 하나 이상의 구성 요소가 다른 구성요소에 포함되어 해당 기능이 실현되도록 할 수 있다.Referring to FIG. 2, the Korean similarity calculation apparatus 100 according to an embodiment of the present invention includes a comparison object extracting unit 110, a resource database 111, a similarity score calculating unit 120, and a phoneme classification database 121. ), And a mapping database 122. The above components of the Korean similarity calculating apparatus 100 may be realized by software, hardware, or a combination thereof, and any one or more components may be included in other components to realize a corresponding function.

본 발명의 일실시예에 따른 한글 유사도 계산 장치(100)는, 한글 단어의 음소와 음절을 구분하여 편집거리를 구하는 기존 연구를 확장하여 음소간의 유사도를 정의한 4가지 알고리즘들에 따라 유사한 단어를 더 정확하게 구분해 내도록 하기 위한 것으로서, 위와 같은 구성 요소들을 통해 이하에서 설명하는 제안된 4가지 알고리즘들에 따라 입력어(음소, 음절, 단어, 구, 문장 등)와 비교 대상과의 편집 거리 또는 유사도값 등이 한글의 입장이 반영되어 좀더 적합한 유사도 점수로 산출되도록 함으로써, 다양한 검색 시스템에 적용하여 입력어에 대하여 좀 더 유사한 검색어를 찾는 데 매우 유용하게 활용될 수 있도록 한다. 입력어로 일반적인 단어, 구, 문장 등이 입력될 수 있을 것이며, 특히 비속어 검색 시에도 유용하게 적용될 수 있도록 하였다. The Korean similarity calculation apparatus 100 according to an embodiment of the present invention further expands existing researches for obtaining an editing distance by dividing a phoneme and a syllable of a Hangul word and further adding similar words according to four algorithms defining similarities between phonemes. For the purpose of accurate classification, the editing distance or similarity value between the input words (phoneme, syllables, words, phrases, sentences, etc.) and the comparison targets according to the four proposed algorithms described below through the above components. By reflecting the position of Hangeul to calculate a more suitable similarity score, it can be applied to various search systems so that it can be very useful for finding more similar search terms for input words. General words, phrases, sentences, etc. may be input as input, and in particular, it may be usefully applied when searching for slang words.

이하에서 기술하는 유사도 점수는 편집 거리 또는 유사도값을 의미하고, 음소 또는 음절의 편집 거리가 크다는 것은 유사성이 작다는 의미이고, 음소 또는 음절의 유사도값이 크다는 것은 유사성이 크다는 것을 의미한다. 음소 또는 음절의 편집 거리 또는 유사도값의 계산에 있어서, 음소 또는 음절의 삽입이라는 것은 입력어에 없는 음소나 음절이 비교대상에 삽입되어 있는 것을 의미하고, 음소 또는 음절의 삭제는 입력어에 있는 음소나 음절이 비교대상에는 없는 것을 의미하며, 음소 또는 음절의 치환은 입력어의 음소나 음절이 비교대상에서 다른 음소나 음절로 바뀐 경우를 의미한다. The similarity score described below means an editing distance or a similarity value, and a large editing distance of a phoneme or syllable means that the similarity is small, and a large similarity value of a phoneme or syllable means that the similarity is large. In the calculation of phoneme or syllable editing distance or similarity value, the insertion of a phoneme or syllable means that a phoneme or syllable that is not in the input word is inserted in the comparison object, and the deletion of the phoneme or syllable is a phoneme in the input word. B syllables do not exist in the comparison object, and phoneme or syllable substitution means that the phoneme or syllable of the input word is changed to another phoneme or syllable in the comparison object.

도 2에서, 매핑 데이터베이스(122)는 두 한글 음절 간의 복수의 유사도 형태(음절 삽입, 삭제, 치환 등)에 대하여 매핑될 유사도 점수들(편집거리 또는 유사도값)을 저장한다.In FIG. 2, the mapping database 122 stores similarity scores (edit distance or similarity value) to be mapped for a plurality of similarity forms (syllable insertion, deletion, substitution, etc.) between two Hangul syllables.

유사도 점수 산출부(120)는 위와 같은 4가지 알고리즘을 수행하는 부분으로서, 입력어와 비교대상을 비교하고 매핑 데이터베이스(122)를 참조하여 입력어와 비교대상 간의 유사도 점수를 산출하게 된다. 유사도 점수 산출부(120)는 각 알고리즘을 적용하여(도 3의 S210 참조), 유사도 점수 산출을 위한 행렬표(도 6, 도 14 참조)를 생성하되 1행과 1열에는 공백(Λ)이 포함되도록 입력어-비교대상 간 행렬표를 작성한다(도 3의 S220 참조). 유사도 점수 산출부(120)는 이와 같은 행렬표의 각 원소를 계산하는 데 있어서, 1행과 1열 전체의 유사도 점수를 먼저 산출하고(도 3의 S230, S231 참조), 이를 기초로 행렬표에서 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들(Λ로부터 비교 현재 위치의 음절까지 모두)에 대하여, 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들(Λ로부터 비교 현재 위치의 음절까지 모두)과 비교해 각 유사도 점수를 산출하되, 비교 현재 이전에 산출된 복수의 유사도 점수를 이용하여 비교 현재의 유사도 점수를 산출하게 된다(도 3의 S232 참조). 예를 들어, 비교 현재 위치는 행렬표에서 (i, j) 원소(i행, j열 원소)의 점수이며, 비교 현재 이전에 산출된 복수의 유사도 점수는, 행렬표에서 (i, j-1), (i-1, j), 및 (i-1, j-1) 원소의 점수이다.The similarity score calculator 120 performs four algorithms as described above. The similarity score calculator 120 compares an input word with a comparison object and calculates a similarity score between the input word and the comparison object with reference to the mapping database 122. The similarity score calculator 120 applies each algorithm (see S210 of FIG. 3) to generate a matrix table (see FIGS. 6 and 14) for calculating similarity scores. An input word-comparison matrix table is prepared to be included (see S220 of FIG. 3). In calculating the elements of the matrix table, the similarity score calculating unit 120 first calculates the similarity scores of the entire first row and the first column (see S230 and S231 of FIG. 3), and inputs them from the matrix table. For syllables that accumulate one syllable from the beginning of a word with a space before the word (from Λ to the syllable at the current position of comparison), syllables that accumulate one syllable from the front of the word with a space before the comparison object (from Λ Each similarity score is calculated by comparing each of the syllables of the comparison current position), and the similarity score of the comparison current is calculated using a plurality of similarity scores calculated before the comparison current (see S232 of FIG. 3). For example, the comparison current position is a score of (i, j) elements (row i, j column elements) in the matrix table, and the plurality of similarity scores calculated before the comparison current is (i, j-1 ), (i-1, j), and (i-1, j-1) elements.

예를 들어, 유사도 점수를 산출하는 데 있어서, 동적 프로그래밍(Dynamic Programming) 방식을 이용하여, (i-1, j-1) 원소의 점수, 즉, 입력어의 처음부터 비교 이전(i-1)까지의 음절들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음절들과의 제1 유사도 점수와, (i, j-1) 원소의 점수, 즉, 입력어의 처음부터 비교 현재(i)까지의 음절들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음절들과의 제2유사도 점수, 및 (i-1, j) 원소의 점수, 즉, 입력어의 처음부터 비교 이전(i-1)까지의 음절들에 대하여, 비교대상의 처음부터 비교 현재(j)까지의 음절들과의 제3유사도 점수가 이용될 수 있다. 도 6과 도 14에서 행렬표의 각 원소에 유사도 점수를 산출해 나가는 과정을 좀 더 자세히 설명하게 될 것이다. 다만, 이하에서 이와 같은 동적 프로그래밍 방식으로 유사도 점수를 산출하는 예를 설명하지만, 이에 한정되는 것은 아니며 각 알고리즘에 대하여 유사도 점수를 산출하는 방식은 다양하게 변경되어 적용될 수 있다. For example, in calculating the similarity score, using the dynamic programming method, the score of the elements (i-1, j-1), that is, before comparison from the beginning of the input word (i-1) For the syllables up to, the first similarity score with the syllables from the beginning of the comparison to the comparison (j-1) and the score of the element (i, j-1), that is, from the beginning of the input word, is compared. For syllables up to the present (i), the second similarity score with the syllables from the beginning of the comparison to before the comparison (j-1), and the score of the element (i-1, j), i.e., the input word For syllables from the beginning of to to before comparison (i-1), a third similarity score with the syllables from the beginning of the comparison to the comparison present j may be used. 6 and 14 will be described in more detail the process of calculating the similarity score for each element of the matrix table. However, the following describes an example of calculating the similarity score by the dynamic programming method, but is not limited thereto. The method of calculating the similarity score for each algorithm may be variously changed and applied.

특히, 이하에서 기술하는 4가지 알고리즘 중 제2, 제3 알고리즘의 수행을 위하여, 음소분류 데이터베이스(121)가 이용될 수 있고, 음소분류 데이터베이스(121)는 초성으로 사용되는 한글 자음 및 종성이 없거나 종성으로 사용되는 한글 자음을 분류한 복수의 자음 그룹(도 10 참조), 및 한글 모음을 분류한 복수의 모음 그룹(도 11 참조)으로 정의된 한글 분류 체계를 저장할 수 있다. 유사도 점수 산출부(120)는, 음소분류 데이터베이스(121)를 참조하여 입력어와 비교대상의 한글 자음 및 모음 각각의 그룹을 판단하여 입력어와 비교대상 간의 유사도 점수를 산출할 수 있다.In particular, the phoneme classification database 121 may be used for the execution of the second and third algorithms among the four algorithms described below, and the phoneme classification database 121 may have no Korean consonant and no final consonant used as a consonant. A Korean classification system defined by a plurality of consonant groups (see FIG. 10) classifying Korean consonants used as a finality and a plurality of vowel groups (see FIG. 11) classifying Korean vowels may be stored. The similarity score calculator 120 may calculate a similarity score between the input word and the comparison object by determining a group of the input consonant and the Korean consonant and the vowel of the comparison object with reference to the phoneme classification database 121.

위와 같은 입력어와 비교되는 비교대상은 비교대상 추출부(110)에 의하여 추출될 수 있다. 리소스 데이터베이스(111)는 리소스를 저장하며, 유사도 점수 산출부(120)에서 위와 같은 유사도 점수를 산출하기 전에, 비교대상 추출부(110)는 입력되는 입력어와 비교할 비교대상을 리소스 데이터베이스(111)로부터 추출할 수 있다. 리소스 데이터베이스(111)에 저장되는 리소스는 문서 파일, 멀티미디어 파일(이미지, 오디오, 동영상 등), 데이터베이스 정보, 또는 텍스트 데이터 등일 수 있고, 이와 같은 리소스들은 제목과 함께 저장 관리될 수 있다. 또는 인터넷 검색 시스템에 이용되는 경우에는, 인터넷 상의 각 인터넷 서버에 관리되는 뉴스, 게시판, 쇼핑 정보, 블로그, 카페 등 인터넷 상에서 공유되어 검색될 수 있는 모든 정보가 위와 같은 리소스로서 사용될 수 있다. 비교대상 추출부(110)는 리소스 데이터베이스(111)로부터 비교대상을 하나씩 추출함으로써 유사도 점수 산출부(120)가 해당 비교대상과 입력어를 비교하여 유사도 점수를 산출하도록 할 수 있다. 이를 이용하는 소정 검색 시스템에서는 유사도 점수에 따라 입력어와 일정 이상의 유사성이 있는 것으로 판단되는 비교대상의 리소스를 사용자에게 제공하게 할 수 있다.
The comparison target compared to the input word as described above may be extracted by the comparison target extraction unit 110. The resource database 111 stores the resource, and before the similarity score calculator 120 calculates the similarity score as described above, the comparison object extracting unit 110 compares the input object to be compared with the input word from the resource database 111. Can be extracted. The resource stored in the resource database 111 may be a document file, a multimedia file (image, audio, video, etc.), database information, text data, or the like. Such resources may be stored and managed together with a title. Alternatively, when used in the Internet search system, all information that can be shared and searched on the Internet such as news, bulletin boards, shopping information, blogs, cafes, and the like, managed by each Internet server on the Internet, can be used as the above resources. The comparison object extracting unit 110 may extract the comparison objects one by one from the resource database 111 so that the similarity score calculator 120 may calculate the similarity score by comparing the input object with the corresponding comparison object. In a predetermined search system using the same, the user may be provided with a resource for comparison, which is determined to have a predetermined or more similarity with the input word according to the similarity score.

<제1 알고리즘><First algorithm>

도 4는 본 발명의 일실시예에 따른 제1 알고리즘에서의 편집 거리의 정의를 설명하기 도면이다.4 is a view for explaining the definition of the editing distance in the first algorithm according to an embodiment of the present invention.

매핑 데이터베이스(122)에는 도 4와 같이, 음절 삽입에 대한 편집 거리(β), 음절 삭제 에 대한 편집 거리(또는 비용)(β), 및 음절 치환에 대한 편집 거리(β 또는 N*α)가 저장될 수 있다. 음절 치환에 대한 편집 거리는 두 가지로 구분되고, 예를 들어, 비교되는 두 한글 음절 간의 모든 음소들이 다른 경우에, β(임의의 실수)이며, 비교되는 두 한글 음절 간에 하나 이상의 음소가 같은 경우에, N*α이고, 여기서, α는 음소 단위 편집 연산(PEO: Phoneme Edit Operation) 비용으로서 임의의 실수, N은 다른 음소의 갯수이다. 여기서, α와 β의 값은 임의의 실수로 설정될 수 있고, β≥3α이며, 예를 들어, α=1, β=3 등으로 설정할 수 있다. In the mapping database 122, the edit distance β for syllable insertion, the edit distance (or cost) β for syllable deletion, and the edit distance β or N * α for syllable substitution are shown in FIG. 4. Can be stored. The editing distance for syllable substitution is divided into two, for example, when all the phonemes between two Hangul syllables to be compared are β (any real number), and one or more phonemes are the same between the two Hangul syllables to be compared. Is N * α, where α is a phoneme edit operation (PEO) cost and any real number, N is the number of other phonemes. Here, the values of alpha and beta can be set to any real number, beta &amp;le; 3 alpha, and can be set to alpha = 1, beta = 3, and the like.

음절은 최대 3개의 음소를 가지므로, 두 음절 간에는 최대 3개까지의 PEO가 발생하게된다. 예를 들어, '강'과 '감'의 비교에서, 종성의 'ㅇ'이 'ㅁ'으로 바뀌었으므로 1개의 음소 치환이 발생하며, '가'와 '남'의 비교에서는, 'ㄱ'이 'ㄴ'으로 바뀌고 'ㅁ'이 추가되었으므로, 음소 치환과 음소 삽입이 발생하게 된다. 또, 다른 예로 '가'와 음소 공백(Λ)의 비교에서는, 2개의 음소 삭제가 발생하게 된다. 단, 이때 PEO는 각각 대응되는 초성, 중성, 종성에 대해서만 정의하도록 하겠다. 즉, '강'과 '고'의 경우 음소 편집 거리 P('ㅏ', 'ㅗ'), P('ㅇ', 'λ')는 가능하지만, P('ㅏ', 'λ'), P('ㅇ', 'ㅗ')와 같은 PED 연산은 없으며, P('λ', 'λ')와 같은 PEO 연산도 없는 것으로 한다. λ는 음소 공백이다. Since syllables have up to three phonemes, up to three PEOs can be generated between two syllables. For example, in the comparison of 'strong' and 'gamma', 'one' is replaced by 'ㅁ', so one phoneme substitution occurs, and in the comparison of 'a' and 'male', 'ㄱ' Since this is changed to 'b' and 'ㅁ' is added, phoneme replacement and phoneme insertion occur. In another example, two phoneme deletions occur in a comparison between a and a phoneme space Λ. However, PEO will be defined only for the corresponding initial, neutral, and final species. That is, in the case of 'strong' and 'high', phoneme editing distances P ('ㅏ', 'ㅗ'), P ('ㅇ', 'λ') are possible, but P ('ㅏ', 'λ'), There is no PED operation such as P ('ㅇ', 'ㅗ'), and no PEO operation such as P ('λ', 'λ'). λ is a phoneme blank.

음절 단위의 편집 연산 (SEO: Syllable Edit Operation)에 있어서, 두 음절 A, B 간의 거리 δs(A, B)는 위와 같이 음절 삽입이나 음절 삭제 시에 대한 비용(또는 편집거리)을 β로 정의하였으며, 예를 들어, δs(Λ,A) = δs(A,Λ) = β가 된다. 음절 치환은 두 음절을 이루고 있는 음소의 종류에 따라 두 가지 방법으로 정의되었으며, 두 음절을 비교할 때에는 대응되는 초성, 중성, 종성에 따라 최대 3개의 PEO가 발생할 수 있는데, 각각의 PEO의 비용은 α로 정의하며, 음절 간의 거리는 대응되는 모든 PEO의 비용의 합으로 정의한다. 즉, 두 음절간의 PEO의 개수가 N이면 δs(A, B) = N*α가 된다. 그러나, 만약 대응되는 모든 음소가 서로 다른 경우에는 음절 전체가 다른 경우가 되므로 음절 삽입, 음절 삭제와 같이 β를 부여하였다. 이는 '가'와 '너', '각'과 '넌'과 같이 모든 음소가 달라지는 경우에 동일한 비용을 부여하기 위함이다. 그리고, 음절을 비교할 때 최대 3개의 PEO가 발생할 수 있으므로 β≥3α 이도록 하여, 음절이 달라지는 것이 음소가 달라지는 것보다 더 큰 거리를 갖도록 정의하였다. In Syllable Edit Operation (SEO), the distance δs (A, B) between two syllables A and B is defined as β as the cost (or edit distance) for syllable insertion or syllable deletion. For example, δ s (Λ, A) = δ s (A, Λ) = β. Syllable substitution is defined in two ways depending on the types of phonemes that make up two syllables. When comparing two syllables, up to three PEOs can be generated depending on the corresponding initial, neutral, and finality. The cost of each PEO is α The distance between syllables is defined as the sum of the costs of all corresponding PEOs . That is, if the number of PEOs between two syllables is N, δ s (A, B) = N * α. However, if all of the corresponding phonemes are different, the whole syllable may be different, and thus β is assigned, such as syllable insertion and syllable deletion. This is to give the same cost when all phonemes are different, such as 'a' and 'you', 'angle' and 'you'. When the syllables are compared, up to three PEOs may be generated, so that β ≧ 3α, so that the syllables have a greater distance than the phonemes.

이와 같은SEO에 있어서, 'ㄱ'와 같이 하나의 자음으로만 이루어진 음절은 예외적으로 해당 자음을 초성으로 다루어진다. 하나의 자음으로 이루어진 음절은 초성만 있는 경우와 종성만 있는 경우가 모두 가능하지만, 자음 하나만 적은 경우는 초성을 의미할 경우가 많다고 생각할 수 있다. 영어에서도 영어 문장을 발음 중심의 음절로 나누어서 두 문장의 유사도를 비교하는 방법이 있는데, 각 음절의 첫 알파벳이 틀릴 확률이 다른 위치의 알파벳이 다를 경우보다 작다는 통계적인 연구결과를 사용하고 있다. 따라서 본 발명에서도 이와 비슷한 접근 방식을 사용하여 하나의 자음으로 이루어진 음절을 초성으로 한정하였다. 따라서 'ㄱ'과 '낭'의 비교에서 P('ㄱ', 'ㄴ')는 가능하지만 P('ㄱ', 'ㅇ')과 같은PEO는 정의되지 않는다.In such SEO , syllables consisting of only one consonant such as 'ㄱ' are treated as consonants with the consonant as an exception. A syllable composed of a single consonant can be composed of only a consonant and a case of only a consonant, but a case of only one consonant can be considered to mean a consonant. In English, there is a way to compare the similarity between two sentences by dividing the English sentences into syllables centered on pronunciation, and the statistical result that the probability that the first alphabet of each syllable is wrong is smaller than that of different alphabets in different positions. Therefore, in the present invention, a similar approach is used to limit the syllables composed of one consonant to the consonants. Thus, in the comparison of 'a' and 'nang', P ('a', 'b') is possible, but PEO such as P ('a', 'ㅇ') is not defined.

도 5는 본 발명의 일실시예에 따른 유사도 행렬표의 각 원소를 결정하기 위한 제1알고리즘을 설명하기 위한 도면이다.5 is a diagram for describing a first algorithm for determining each element of the similarity matrix table according to an embodiment of the present invention.

유사도 점수 산출부(120)는 매핑 데이터베이스(122)를 참조하여, 도 5와 같은 알고리즘을 수행하여, 유사도 점수 산출을 위한 도 6과 같은 행렬표를 생성하되 1행과 1열에는 공백(Λ)이 포함되도록 입력어-비교대상 간 행렬표를 작성하여 입력어와 비교대상 간의 유사도 점수를 산출할 수 있다.The similarity score calculation unit 120 performs the algorithm shown in FIG. 5 with reference to the mapping database 122 to generate a matrix table as shown in FIG. 6 for calculating the similarity score, but has spaces (Λ) in one row and one column. The similarity score between the input word and the comparison target may be calculated by preparing a matrix table between the input words and the comparison target to include the.

유사도 점수 산출부(120)는 이와 같은 행렬표의 각 원소를 계산하는 데 있어서, 1행과 1열 전체의 유사도 점수를 먼저 산출한다. 예를 들어, 도 6과 같은 예에서, 편집 거리 SED(Λ, B(j))는 j*β이며, j=0부터 j=비교대상(B)의 음절수 |B|까지이며, 마찬가지로 편집 거리 SED(A(i), Λ)는 i*β이며, i=0부터 i=입력어(A)의 음절수 |A|까지이다. The similarity score calculator 120 calculates the similarity score of the first row and the first column in calculating each element of the matrix table. For example, in the example of FIG. 6, the editing distances SED (Λ, B (j)) are j * β, j = 0 to j = number of syllables | B | of the comparison target B, and similarly edited The distances SED (A (i), Λ) are i * β and i = i to i = the number of syllables | A | of the input word A.

이를 기초로, 유사도 점수 산출부(120)는 행렬표에서 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들(Λ로부터 비교 현재 위치의 음절까지 모두)에 대하여, 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들(Λ로부터 비교 현재 위치의 음절까지 모두)과 비교해 각 유사도 점수(편집 거리)를 산출하기 위하여, 도 5와 같이, [알고리즘 식1]에 따라, 비교 현재 이전에 산출된 복수의 유사도 점수(편집 거리), 즉, 행렬표에서 (i, j-1), (i-1, j), 및 (i-1, j-1) 원소의 점수를 이용하여 비교 현재의 유사도 점수(편집 거리)를 산출한다.Based on this, the similarity score calculation unit 120 is a space before the comparison object for the syllables (from Λ to the syllable at the current position of comparison) accumulated one syllable from the front of the word in front of the input word in the matrix table. In order to calculate each similarity score (editing distance) by comparing the syllables accumulating one syllable from the front of the word with (from Λ to the syllable of the current position of comparison), as shown in FIG. 5, according to [Algorithm Formula 1]. , A plurality of similarity scores (edit distances) previously calculated, that is, scores of elements (i, j-1), (i-1, j), and (i-1, j-1) in the matrix table Compute the current similarity score (edit distance) using.

[알고리즘 식1]Algorithm Equation 1

Figure pat00001
Figure pat00001

여기서, SED(A(i),B(j))는 비교 현재의 편집 거리, min()는 ()안의 원소 중 최소값, SED(A(i),B(j-1))은 입력어의 처음부터 비교 현재(i)까지의 음절들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음절들과의 편집 거리, SED(A(i-1),B(j))은 입력어의 처음부터 비교 이전(i-1)까지의 음절들에 대하여, 비교대상의 처음부터 비교 현재(j)까지의 음절들과의 편집 거리, SED(A(i-1),B(j-1))은 입력어의 처음부터 비교 이전(i-1)까지의 음절들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음절들과의 편집 거리, δs(A[i],B[j])은 비교 현재 위치에서의 입력어와 비교대상의 해당 음절 간의 편집 거리이다.Here, SED (A (i), B (j)) is the current editing distance for comparison, min () is the minimum value among the elements in (), and SED (A (i), B (j-1)) is the input word. For the syllables from the beginning to the comparison present (i), the editing distance from the beginning of the comparison to the syllables before the comparison (j-1), SED (A (i-1), B (j)) For syllables from the beginning of an input word to before comparison (i-1), the editing distance from the beginning of the comparison object to the current syllable (j), SED (A (i-1), B (j) -1)) is the editing distance of the syllables from the beginning of the input word before the comparison (i-1) to the syllables from the beginning of the comparison to the comparison (j-1), δs (A [i ], B [j]) is the editing distance between the input word at the comparison current position and the corresponding syllable to be compared.

예를 들어, 도 6과 같이, SED(A(1),B(1)) = min(β+β, β+β, 0+ δs('일','일')이며, 이는 δs('일','일')=0이므로, SED(A(1),B(1))=0으로 계산된다. 이와 같은 방식으로 도 6의 행렬표의 마지막 원소 3α+β가 계산될 수 있고, 이는 '일반통계학'과 '일방통행'의 편집거리 SED('일반통계학','일방통행')=3α+β를 의미한다. For example, as shown in FIG. 6, SED (A (1), B (1)) = min (β + β, β + β, 0+ δs ('day', 'day'), which is δs (' Day ',' day ') = 0, so SED (A (1), B (1)) = 0.In this way, the last element 3α + β of the matrix table of Figure 6 can be calculated, which is Editing distance of 'general statistics' and 'one-way' means SED ('general statistics', 'one-way') = 3α + β.

도 7a 및 도 7b는 본 발명의 일실시예에 따른 제1 알고리즘의 적합성을 설명하기 위한 예이다.7A and 7B are examples for describing suitability of the first algorithm according to an embodiment of the present invention.

'일반통계학'과 '일방통행'의 편집거리를 구함에 있어서, 도 7a와 같은, 배치에서는, SEO 비용이 δs('반','방') + δs('계','Λ') + δs('학','행') = α + β + 2α = 3α + β임을 알 수 있다. 그러나, 도 7b와 같은, 배치에서는 SEO 비용이 δs('반','Λ') + δs('통','방') + δs('계','통') + δs('학','행') = β + 2α + β + 2α = 4α + 2β임을 알 수 있다. 이와 같은 예에서, 기존 방식에서는 '일반통계학'과 '일방통행'의 편집거리가 4α + 2β로 나타날 수 있는 오류가 있지만, 본 발명에 따르면 그 편집거리가 3α + β로 나타나, 그 입력어와 비교대상간에 기존 방식에서 보다는 좀 더 편집거리가 가까운 것으로 판단될 수 있음을 의미한다.
In finding the editing distance between 'statistics' and 'one-way', in the arrangement, as shown in FIG. 7A, the SEO cost is δs ('half', 'room') + δs ('system', 'Λ') + It can be seen that δs ('scientific', 'row') = α + β + 2α = 3α + β. However, in an arrangement, such as FIG. 7B, the SEO cost is δs ('hal', 'Λ') + δs ('keat', 'bang') + δs ('ke', 'ke') + δs ('hak' , 'Row') = β + 2α + β + 2α = 4α + 2β. In this example, in the conventional method, there is an error that the editing distance of 'general statistics' and 'one-way' may appear as 4α + 2β, but according to the present invention, the editing distance is shown as 3α + β, and compared with the input words. It means that the editing distance between objects can be judged to be closer than the existing method.

<제2알고리즘><The second algorithm>

도 8은 기존의 한글 자음에 대한 음소 분류 체계를 설명하기 위한 도면이다.8 is a diagram for explaining a phoneme classification system for a conventional Korean consonant.

도 8과 같이 일반적으로 한글 자음은 조음위치에 따라 양순음, 치조음, 경구개음, 연구개음, 성문음의 5가지 그룹으로 구분되고 있다. 이외에도, 조음 위치에 따라 파열음, 마찰음, 유음, 비음 등으로 구분하는 방식도 있다. In general, as shown in Figure 8 Hangul consonants are divided into five groups, such as the Yangpyeon sound, alveolar sound, oral sound, research sound, vocal sound according to the position of the articulation. In addition, depending on the position of the articulation, there is also a method of dividing into a rupture sound, friction sound, sound noise, nasal sound and the like.

도 9는 기존의 한글 모음에 대한 음소 분류 체계를 설명하기 위한 도면이다.9 is a diagram illustrating a phoneme classification system for a conventional Hangul vowel.

도 9와 같이, 일반적으로 한글 모음은 혀의 높낮이에 따라서는 고모음, 중모음, 저모음의 3가지 그룹으로 나뉘고, 혀의 전후 위치에 따라서는 전설 모음과 후설 모음으로 나뉘며, 입술의 모양에 따라서는 원순모음과 평순모음으로 나뉜다.As shown in Fig. 9, the Hangul vowel is generally divided into three groups of high vowel, middle vowel, and low vowel according to the height of the tongue, and is divided into legend vowel and resentral vowel according to the front and rear positions of the tongue, according to the shape of the lips. Is divided into round vowel and normal vowel.

도 10은 본 발명에 적용할 한글 자음에 대한 수정된 음소 분류 체계를 설명하기 위한 도면이다.10 is a diagram illustrating a modified phoneme classification system for Hangul consonants to be applied to the present invention.

도 10과 같이, 본 발명에서는, 자음 중에서 성문음 'ㅎ'을 연구개음과 같은 그룹으로 편성하였다. 성문음은 'ㅎ' 하나로만 이루어져 있기 때문에, 'ㅎ'과 모든 다른 자음들 간의 거리는 모두 동일한 값을 갖게 된다. 그러나 실생활에서는 '열심히'와 '열심이'의 비교, '고요히'와 '고요이'의 비교와 같이, 'ㅇ'과 'ㅎ'을 혼동하여 사용하는 사례들을 많이 관찰할 수 있다. 따라서, 본 발명에서는 'ㅎ'을 'ㅇ'과 같은 그룹에 편성하고, 그 이외의 분류 체계는 모두 초성 분류체계를 그대로 사용하였다. 이와 같은 한글 자음에 대한 음소 분류 체계는 하나의 예를 나타내며 경우에 따라 한글 자음에 대하여 다른 음소 분류 체계가 적용될 수도 있다.In the present invention, as shown in Figure 10, the voice letter 'ㅎ' among the consonants were organized in the same group as the study dogeum. Since the vocal sound consists of only one 'ㅎ', the distance between 'ㅎ' and all the other consonants has the same value. In real life, however, there are many cases of confusing 'ㅇ' and 'ㅎ', such as comparing 'eagerly' and 'eagerly' and comparing 'quietly' and 'yoyoi'. Therefore, in the present invention, 'ㅎ' is organized in the same group as 'ㅇ', and all other classification systems use the initial classification system. Such a phoneme classification system for Hangul consonants is an example, and in some cases, a different phoneme classification system may be applied to Hangul consonants.

도 11은 본 발명에 적용할 한글 모음에 대한 수정된 음소 분류 체계를 설명하기 위한 도면이다.11 is a diagram illustrating a modified phoneme classification system for a Korean vowel to be applied to the present invention.

도 11과 같이, 본 발명에서는, 같은 그룹에 속한 음소간의 거리값을 최소화하려는 목표하에 혼동 가능성이 큰 모음들끼리 같이 묶었다. 먼저, 'ㅐ'와 'ㅔ'가 혼동되어 사용되는 경우가 많다고 판단되므로 그룹1은 'ㅣ, ㅔ, ㅐ, ㅖ, ㅒ, ㅢ'로 묶었다. 그룹1에 'ㅣ'가 들어 있는 이유는 이 모음이 '베다', '비다’와 같이 'ㅔ'와 혼동을 일으킬 가능성이 있기 때문이고, 'ㅢ'를 포함시킨 이유는 'ㅢ'가 실제로는 '희망', '희망'과 같이 'ㅣ'로 발음되는 경우가 많기 때문이다. 'ㅞ'와 'ㅙ'도 그룹1에 들어가야겠지만 이 두 모음과 'ㅚ'의 혼동 가능성에 더무게를 실어서 이들을 그룹2로 함께 묶었다. 'ㅟ'는 'ㅣ'나'ㅢ'와의 혼동 가능성을 보아 그룹1에 묶을 수도 있겠지만, 모음 자체가 지닌 원순성을 고려하여 그룹2에 분류하였다. 저모음으로 구성된 'ㅏ'와 'ㅓ'가 혼동되어 사용되는 경우가 많으므로 그룹3은 'ㅓ, ㅏ, ㅕ, ㅑ, ㅝ, ㅘ'를 편성하였다. 그룹4는 'ㅜ'와 'ㅗ'를 묶은 것인데 '삼촌', '삼춘', 또는 '사돈', '사둔'에서처럼 이들 간의 혼동이 많이 일어나기 때문이며 'ㅡ'는 '비늘', '비눌'에서처럼 'ㅜ'와의 혼동 가능성이 있기 때문이다. 이와 같은 한글 모음에 대한 음소 분류 체계는 하나의 예를 나타내며 경우에 따라 한글 모음에 대하여도 다른 음소 분류 체계가 적용될 수 있다.As shown in FIG. 11, in the present invention, vowels having a high probability of confusion are grouped together under a goal of minimizing a distance value between phonemes belonging to the same group. First, group 1 is grouped into 'ㅣ, ,, ㅐ, ㅖ, ㅒ, ㅢ' because 'ㅐ' and '혼' are often used confused. Group 1 contains 'ㅣ' because this vowel is likely to be confused with 'ㅔ' like 'veda' and 'visda', and '이유' is included because 'ㅢ' is actually This is because it is often pronounced as 'ㅣ' such as 'hope' and 'hope'. 'ㅞ' and 'ㅙ' should also be in Group 1, but they put more weight on the possibility of confusion between these two vowels and 'ㅚ' and grouped them together in Group 2. 'ㅟ' may be grouped in Group 1 in view of possible confusion with 'ㅣ' or 'ㅢ', but is classified in Group 2 in consideration of the originality of the vowel itself. Since '은' composed of low vowels and '음' are often used confused, Group 3 organized 'ㅓ, ㅏ, ㅕ, ㅑ, ㅝ, ㅘ'. Group 4 is a combination of 'TT' and 'ㅗ' because there is a lot of confusion between them as in 'Uncle', 'Samchun', or 'Sadon', 'Sadun' and 'ㅡ' as in 'Scales' and 'Binul' This is because there is a possibility of confusion with 'TT'. Such a phoneme classification system for Korean vowels is an example, and in some cases, another phoneme classification system may be applied to Korean vowels.

도 10과 같이, 초성으로 사용되는 한글 자음 및 종성이 없거나(공백 λ) 종성으로 사용되는 한글 자음을 분류한 복수의 자음 그룹과, 도 11과 같이, 한글 모음을 분류한 복수의 모음 그룹을 새로이 정의하여, 해당 수정된 한글 분류 체계가 음소분류 데이터베이스(121)에 저장될 수 있다. 유사도 점수 산출부(120)는 제2 알고리즘의 수행에서 음소분류 데이터베이스(121)를 참조하여 입력어와 비교대상의 한글 자음 및 모음 각각의 그룹을 판단하여 입력어와 비교대상 간의 유사도 점수를 산출하게 된다. As shown in FIG. 10, a plurality of consonant groups classifying Korean consonants used as initial consonants and a Korean consonant used as a finality (no spaces) or a final consonant group, and a plurality of vowel groups classifying Korean vowels as shown in FIG. By definition, the modified Korean classification system may be stored in the phoneme classification database 121. The similarity score calculator 120 calculates a similarity score between the input word and the comparison object by determining a group of input consonants and the Korean consonants and vowels of the comparison object with reference to the phoneme classification database 121 in the execution of the second algorithm.

이하에서, 제2 알고리즘뿐만 아니라, 제1알고리즘이나 제3 및 제4 알고리즘의 수행에 있어서도, 도 10 및 도 11과 같이, 초성으로 사용되는 한글 자음 및 종성이 없거나 종성으로 사용되는 한글 자음을 분류한 복수의 자음 그룹, 및 한글 모음을 분류한 복수의 모음 그룹을 정의하여 음소분류 데이터베이스(121)에 저장하고 이를 이용하여, 입력어와 비교대상의 한글 자음 및 모음 각각의 그룹을 판단하여 입력어와 비교대상 간의 유사도 점수를 산출할 때, 같은 그룹에 대하여 가중치를 주는 방식으로 유사도 점수를 산출할 수 있음을 밝혀 둔다. 즉, 이와 같은 음소분류 데이터베이스(121)의 이용 방식은 위에서 기술한 제1 내지 제4 의 모든 알고리즘의 수행에 유사하게 적용될 수 있다.In the following, not only the second algorithm but also the execution of the first algorithm or the third and fourth algorithms, as shown in FIGS. 10 and 11, the Korean consonants used as initial consonants and the Korean consonants used as final or absent classifications are classified. Define a plurality of consonant groups and a plurality of vowel groups that classify Hangul vowels, store them in the phoneme classification database 121, and use them to determine the groups of the Hangul consonants and vowels of the input and comparison targets, and compare them with the input words. When calculating the similarity score between the subjects, it is noted that the similarity score can be calculated by weighting the same group. That is, the method of using the phoneme classification database 121 may be similarly applied to the performance of all the first to fourth algorithms described above.

도 12는 본 발명의 다른 실시예에 따른 제2 알고리즘에서의 유사도값의 정의를 설명하기 도면이다.12 is a view for explaining the definition of the similarity value in the second algorithm according to another embodiment of the present invention.

제2 알고리즘의 수행을 위하여, 매핑 데이터베이스(122)에는 도 12와 같이, 음소 매치(amtch)에 대한 유사도값(Mp), 음소 미스매치(mismatch)에 대한 유사도값(동일 그룹의 경우 -N1p 또는 다른 그룹의 경우 -N2p), 음소 삽입이나 삭제(indel)에 대한 유사도값(-Ip), 음절 매치에 대한 유사도값(Ms), 음절 미스매치에 대한 유사도값, 및 음절 삽입이나 삭제(indel)에 대한 유사도값(-Is)이 저장될 수 있다. 음절 미스매치에 대한 유사도값은, 예를 들어, 비교되는 두 한글 음절 간의 모든 음소들이 다른 경우에, -Ns(Ns는 0보다 큰 실수), 비교되는 두 한글 음절 간에 하나 이상의 음소가 같은 경우에, 대응되는 음소들의 유사도값들의 합으로 한다. 여기서 유사도값들은 임의의 실수로 설정될 수 있고, 다만, Ms≥3Mp, -Ns≤-3N1p, 및 -Is≤-3Ip이며, 예를 들어, Ms=Ns=Is=3, Mp=N1p=N2p=Ip=1 등으로 설정할 수 있다.In order to perform the second algorithm, the mapping database 122 includes a similarity value Mp for a phoneme match, a similarity value for a phoneme mismatch (-N1p for the same group), or the like, as shown in FIG. 12. -N2p for other groups), similarity value for phoneme insertion or deletion (-Ip), similarity value for syllable match (Ms), similarity value for syllable mismatch, and syllable insertion or deletion (indel) Similarity value (-Is) for may be stored. The similarity value for syllable mismatch is, for example, if all the phonemes between the two Hangul syllables being compared are different, -Ns (Ns is a real number greater than 0), and if one or more phonemes are the same between the two Hangul syllables being compared. The sum of the similarity values of the corresponding phonemes. The similarity values here may be set to any real number, except that Ms≥3Mp, -Ns≤-3N1p, and -Is≤-3Ip, for example, Ms = Ns = Is = 3, Mp = N1p = N2p = Ip = 1 and so on.

도 13은 본 발명의 다른 실시예에 따른 유사도 행렬표의 각 원소를 결정하기 위한 제2알고리즘을 설명하기 위한 도면이다.FIG. 13 is a diagram for describing a second algorithm for determining each element of the similarity matrix table according to another embodiment of the present invention.

유사도 점수 산출부(120)는 매핑 데이터베이스(122)를 참조하여, 도 13과 같은 알고리즘을 수행하여, 유사도 점수 산출을 위한 도 14와 같은 행렬표를 생성하되 1행과 1열에는 공백(Λ)이 포함되도록 입력어-비교대상 간 행렬표를 작성하여 입력어와 비교대상 간의 유사도 점수를 산출할 수 있다.The similarity score calculator 120 performs the algorithm shown in FIG. 13 with reference to the mapping database 122 to generate a matrix table as shown in FIG. 14 for calculating the similarity score, but has spaces (Λ) in one row and one column. The similarity score between the input word and the comparison target may be calculated by preparing a matrix table between the input words and the comparison target to include the.

유사도 점수 산출부(120)는 이와 같은 행렬표의 각 원소를 계산하는 데 있어서, 1행과 1열 전체의 유사도 점수를 먼저 산출한다. 예를 들어, 도 14와 같은 예에서, 유사도값 SIM(Λ, B(j))는 -j*Is이며, j=0부터 j=비교대상(B)의 음절수 |B|까지이며, 마찬가지로 유사도값 SIM(A(i), Λ)는 -i*Is이며, i=0부터 i=입력어(A)의 음절수 |A|까지이다. The similarity score calculator 120 calculates the similarity score of the first row and the first column in calculating each element of the matrix table. For example, in the example of FIG. 14, the similarity values SIM (Λ, B (j)) are −j * Is, and j = 0 to j = number of syllables | B | of the comparison target B. The similarity values SIM (A (i), Λ) are -i * Is and range from i = 0 to i = syllable number | A | of the input word A.

이를 기초로, 유사도 점수 산출부(120)는 행렬표에서 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들(Λ로부터 비교 현재 위치의 음절까지 모두)에 대하여, 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들(Λ로부터 비교 현재 위치의 음절까지 모두)과 비교해 각 유사도 점수(유사도 값)를 산출하기 위하여, 도 13과 같이, [알고리즘 식2]에 따라, 비교 현재 이전에 산출된 복수의 유사도 점수(유사도 값), 즉, 행렬표에서 (i, j-1), (i-1, j), 및 (i-1, j-1) 원소의 점수를 이용하여 비교 현재의 유사도 점수를 산출한다.Based on this, the similarity score calculation unit 120 is a space before the comparison object for the syllables (from Λ to the syllable at the current position of comparison) accumulated one syllable from the front of the word in front of the input word in the matrix table. In order to calculate each similarity score (similarity value) by comparing the syllables accumulating one syllable from the front of the word with (from Λ to the syllable of the current position of comparison), as shown in FIG. 13, according to [Algorithm Equation 2] , A plurality of similarity scores (similarity values) previously calculated, that is, scores of elements (i, j-1), (i-1, j), and (i-1, j-1) in the matrix table Compute the current similarity score.

[알고리즘 식2]Algorithm Equation 2

Figure pat00002
Figure pat00002

여기서, SIM(A(i),B(j))는 비교 현재의 유사도값, max()는 ()안의 원소 중 최대값, SIM(A(i),B(j-1))은 입력어의 처음부터 비교 현재(i)까지의 음절들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음절들과의 유사도값, SIM(A(i-1),B(j))은 입력어의 처음부터 비교 이전(i-1)까지의 음절들에 대하여, 비교대상의 처음부터 비교 현재(j-1)까지의 음절들과의 유사도값, SIM(A(i-1),B(j-1))은 입력어의 처음부터 비교 이전(i-1)까지의 음절들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음절들과의 유사도값, δs(A[i],B[j])은 비교 현재 위치에서의 입력어와 비교대상의 해당 음절 간의 유사도값이다.Where SIM (A (i), B (j)) is the current similarity value, max () is the maximum value among the elements in (), and SIM (A (i), B (j-1)) is the input word. For syllables from the beginning of the comparison to the present (i), the similarity value with the syllables from the beginning of the comparison to the comparison (j-1), SIM (A (i-1), B (j)) Is a similarity value between syllables from the beginning of the input word to the comparison current (i-1) and the syllables from the beginning of the comparison object to the comparison current (j-1), SIM (A (i-1), B (j-1)) is the similarity value between the syllables from the beginning of the input word before the comparison (i-1) and the syllables from the beginning of the comparison object to the comparison (j-1), δs ( A [i], B [j]) is a similarity value between the input word at the comparison current position and the corresponding syllable to be compared.

예를 들어, 도 14와 같이, SIM(A(1),B(1)) = max(-Is-Is, -Is-Is, 0+ δs('일','일')이며, 이는 δs('일','일')=Ms이므로, SIM(A(1),B(1))=Ms으로 계산된다. 이와 같은 방식으로 도 14의 행렬표의 마지막 원소 2Ms+3Mp-2N1p-N2p-Is가 계산될 수 있고, 이는 '일반통계학'과 '일방통행'의 유사도값 SIM('일반통계학','일방통행')=2Ms+3Mp-2N1p-N2p-Is를 의미한다. For example, as shown in FIG. 14, SIM (A (1), B (1)) = max (-Is-Is, -Is-Is, 0 + δs ('day', 'day'), which is δs Since ('day', 'day') = Ms, it is calculated as SIM (A (1), B (1)) = Ms In this way, the last element 2Ms + 3Mp-2N1p-N2p- of the matrix table of Fig. 14 is calculated. Is can be calculated, which means the similarity value SIM ('general statistics', 'one-way') = 2Ms + 3Mp-2N1p-N2p-Is between 'general statistics' and 'one-way'.

이와 같은 제2알고리즘의 유사도 점수 연산 방식은 제1 알고리즘에 비교하여 좀 더 정확하게, 유사 단어들을 유사하다고 판단하고, 비유사 단어들을 비유사하다고 판단할 확률을 높였다. 이하에서는 제3, 제4 알고리즘을 통하여 타이핑 오타 등을 감안하여 음절간 유사도를 판단하는 방식을 설명한다.
The similarity score calculation method of the second algorithm increases the probability of judging similar words similarly and dissimilar words similarly more accurately than the first algorithm. Hereinafter, a method of determining similarity between syllables in consideration of a typing typo or the like through the third and fourth algorithms will be described.

<제3알고리즘>Third Algorithm

먼저, 도 15와 같이, 타이핑 오타에 따라 여러가지로 입력어가 타이핑되는 경우를 생각해 보기로 한다. First, as shown in FIG. 15, a case in which input words are typed in various ways according to typing errors will be considered.

인터넷 브라우징 중에 검색 사이트의 검색창에 타이핑을 하는 중에 발생하는 오타 중에는 도 15와 같이, '가마ㄴ히', 'ㄱㅏ만히'와 같이 음절을 이루는 음소가 두 개의 음절로 표기되는 경우가 종종있다. Among typos that occur while typing in a search box of a search site while browsing the Internet, phonemes constituting syllables such as 'Gamabhi' and 'ㄱㅏ 만히' are often represented by two syllables as shown in FIG. 15.

그런데, 제1알고리즘에 따르면, α=3, β=6인 경우에, '가만히'와 'ㄱㅏ만히'의 편집거리는 β+α(=12)가 되며, '가만히'와 '가마니'는 편집 거리가 2α(=6)가 되어, '가마니'가 'ㄱㅏ만히'보다 '가만히'에 더 가깝다고 판단하게 되는 문제가 발생될 수 있다. 제2알고리즘에 따르면, (Ms, Ns, Is, Mp, N1p, N2p, Ip)=(4,9,5,1,3,2,1)을 적용하면, 위의 두 경우에 대한 유사도 점수가 각각 2Ms+Mp-Is-Ip(=1)와 Ms+3Mp-Ip-N1p(=3)가 되고, 따라서 마찬가지로 '가마니'가 'ㄱㅏ만히'보다 '가만히'에 더 가깝다고 판단하게 되는 문제가 발생될 수 있다. However, according to the first algorithm, in the case of α = 3 and β = 6, the editing distances of 'still' and 'ㄱㅏ 만 이' become β + α (= 12), and 'still' and 'bag' are the editing distance. Becomes 2α (= 6), which may cause a problem in which the 'Bani' is determined to be closer to 'Still' than 'Abmanly'. According to the second algorithm, applying (Ms, Ns, Is, Mp, N1p, N2p, Ip) = (4,9,5,1,3,2,1), the similarity score for the above two cases is 2Ms + Mp-Is-Ip (= 1) and Ms + 3Mp-Ip-N1p (= 3) respectively, thus causing the problem of judging that 'Bale' is closer to 'Still' than 'A'. Can be.

그러나 실제로는 'ㄱㅏ만히'는 '가만히'의 오타로 쉽게 나타날 수 있는 형태의 단어이지만, '가마니'는 완전히 다른 뜻의 단어이므로, 'ㄱㅏ만히'가 더가까운 단어로 판단되는 것이 옳다고 할 수 있다. 이러한 문제들을 적절히 처리하기 위해서는 음절이 두 개 이상의 음절로 나눠지거나, 음소가 음절의 경계를 넘어 다른 음절로 옮겨가는 현상을 허용해야 한다. 따라서 본 발명에서는 이러한 단점을 보완하기 위한 2가지 유사도 점수를 정의하였다. 첫 번째로 제3알고리즘을 통해 한글 단어를 음절을 이루는 음소와 음절의 경계를 구분하기 위한 특수문자 '#'의 구분자로 이루어진 배열로 변환한 후, 이를 이용하여 유사도 점수를 구하는 방법을 제안하였다. 두 번째로는 제4알고리즘을 통하여 제3알고리즘의 음절의 경계를 뜻하는 구분자 '#'를 사용하는 대신 음절의 첫 번째 음소에 가중치를 두는 방법을 제안하였다. 즉, 유사도 점수 산출부(120)는 입력어와 비교대상 간의 유사도 점수를 산출하기 위하여, 입력어와 비교대상에 각각 음절 경계마다 구분자 '#'을 삽입하고 초성, 중성, 종성 순서로 나열한 후, 구분자 '#'가 포함된 입력어와 비교대상 간의 유사도 점수를 산출하게 된다.In reality, however, 'ㄱㅏ 만히' is a word that can easily appear as a typo in 'Still', but 'Bani' is a completely different word, so it can be said that 'ㄱㅏ 만히' is judged as a closer word. . In order to properly deal with these problems, it is necessary to allow syllables to be divided into two or more syllables, or to have phonemes move beyond the boundaries of syllables to other syllables. Therefore, in the present invention, two similarity scores have been defined to compensate for these disadvantages. First, through the third algorithm, the Korean word is converted into an array consisting of the delimiters of the phoneme forming the syllable and the special character '#' to distinguish the boundary of the syllable, and then a similarity score is proposed using the same. Secondly, instead of using the delimiter '#' which represents the boundary of syllable of the third algorithm through the fourth algorithm, a method of weighting the first phoneme of the syllable is proposed. That is, the similarity score calculator 120 inserts a separator '#' for each syllable boundary in order to calculate a similarity score between the input word and the comparison target, and arranges the delimiter 'in the order of initial, neutral, and final. The similarity score between the input word including # 'and the comparison target is calculated.

도 16은 본 발명의 또 다른 실시예에 따른 제3 알고리즘에서의 유사도값의 정의를 설명하기 도면이다.16 is a diagram for explaining definition of a similarity value in a third algorithm according to another embodiment of the present invention.

제3 알고리즘의 수행을 위하여, 매핑 데이터베이스(122)에는 도 16과 같이, 두 음소가 서로 일치하고 모두 '#'이 아닌 경우에 대한 유사도값(M1), 두 음소가 모두 '#'인 경우에 대한 유사도값(M2), '#'이 아닌 두 음소가 다르고 서로 같은 그룹에는 속하는 경우에 대한 유사도값(-N1), '#'이 아닌 두 음소가 다르고 서로 다른 그룹에는 속하는 경우에 대한 유사도값(-N2), 두 음소가 서로 다르고 그 중 하나가 '#'인 경우에 대한 유사도값(-N3), 두 음소 중 하나가 '#'이 아니며 음소 삽입이나 삭제(λ)인 경우에 대한 유사도값(-I1), 두 음소 중 하나가 '#'이며 음소 삽입이나 삭제(λ)인 경우에 대한 유사도값(-I2)가 저장될 수 있다.In order to perform the third algorithm, as shown in FIG. 16, the mapping database 122 has a similarity value M 1 when two phonemes coincide with each other and not both '#', and both phonemes are '#'. Similarity value for (M 2 ), when two phonemes other than '#' are different and belong to the same group (-N 1 ), when two phonemes other than '#' are different and belong to different groups for similarity value (-N 2), the two phonemes are different from each other, the similarity value for the case one of them is '#' (-N 3), not the one of the two phoneme "#" phoneme insertion or deletion (λ) Similarity value (-I 1 ) for the case, and one of the two phonemes '#' and similarity value (-I 2 ) for the case of the phoneme insertion or deletion (λ) can be stored.

도 13은 본 발명의 다른 실시예에 따른 유사도 행렬표의 각 원소를 결정하기 위한 제2알고리즘을 설명하기 위한 도면이다.FIG. 13 is a diagram for describing a second algorithm for determining each element of the similarity matrix table according to another embodiment of the present invention.

유사도 점수 산출부(120)는 매핑 데이터베이스(122)를 참조하여, 도 17과 같은 알고리즘을 수행하여, 유사도 점수 산출을 위한 도 14와 같은 행렬표를 생성하되 1행과 1열에는 공백(λ)이 포함되도록 입력어-비교대상 간 행렬표를 작성하여 입력어와 비교대상 간의 유사도 점수를 산출할 수 있다.The similarity score calculator 120 performs the algorithm shown in FIG. 17 with reference to the mapping database 122 to generate a matrix table as shown in FIG. 14 for calculating the similarity score, but has a blank (λ) in one row and one column. The similarity score between the input word and the comparison target may be calculated by preparing a matrix table between the input words and the comparison target to include the.

유사도 점수 산출부(120)는 이와 같은 행렬표의 각 원소를 계산하는 데 있어서, 1행과 1열 전체의 유사도 점수를 먼저 산출한다. 예를 들어, SIM(λ,λ)=0이고, j=1부터 j=비교대상(B)의 음소수 |B|까지 유사도값 SIM(0, Bt(j))= SIM(0, Bt(j-1)) + SIM(0, Bt[j])이며, 마찬가지로 i=0부터 i=입력어(A)의 음절수 |A|까지 유사도값 SIM(At(i), 0)= SIM(At(i-1), 0) + SIM(At[i], λ)이다. 여기서, Bt(j-1), At(i-1)와 같이 ()로 표시한 것은 처음 공백(λ)부터 해당 인덱스까지의 전체 음소들을 나타내며, Bt[j], At[i]와 같이 []로 표시한 것은, 해당 인덱스의 음소만을 나타낸다. The similarity score calculator 120 calculates the similarity score of the first row and the first column in calculating each element of the matrix table. For example, SIM (λ, λ) = 0, and j = 1 to j = number of phonemes | B | of the comparison target B | Similarity values SIM (0, B t (j)) = SIM (0, B t (j-1)) + SIM (0, B t [j]), and similarity values SIM (A t (i), 0 from i = 0 to i = Syllable number | A | ) = SIM (A t (i-1), 0) + SIM (A t [i], λ). Here, denoted by (), such as B t (j-1) and A t (i-1), represents all the phonemes from the first space (λ) to the corresponding index, and B t [j], A t [i Indicated by [] like] indicates only the phoneme of the index.

도 18과 도 19와 같이, 음절과 음절 사이의 구분자 '#'를 삽입하는 경우에, 예를들어, '가만히'의 경우 '가#만#히'로 바뀌고, 음절을 이루는 음소들을 초성, 중성,종성 순서로 나열하면, 'ㄱ ㅏ # ㅁ ㅏ ㄴ #ㅎ ㅣ'와 같이 변경될 수 있다. 이때 이와 같이 구분자 '#'가 삽입된 형태의 음절이 입력어인 경우 At이며, 비교 대상인 경우 Bt로 표시하였다. 18 and 19, when the separator '#' between syllables and syllables is inserted, for example, in the case of 'quiet', 'ga # man # hi' is changed, and the phonemes forming the syllables are consonant and neutral. If you list them in the order of their finality, they can be changed to something like 'ㄱ ㅏ # ㅁ ㄴ ㄴ ㅎ ㅣ'. At this time, if the syllable of which the separator '#' is inserted is an input word, it is A t, and if it is a comparison target, it is indicated as B t .

이를 기초로, 여기서도 유사도 점수 산출부(120)는 행렬표에서 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 '#'사이의 음절들에 대하여, 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 '#'사이의 음절들과 비교해 각 유사도 점수(유사도 값)를 산출하기 위하여, 도 17과 같이, [알고리즘 식3]에 따라, 비교 현재 이전에 산출된 복수의 유사도 점수(유사도 값), 즉, 행렬표에서 (i, j-1), (i-1, j), 및 (i-1, j-1) 원소의 점수를 이용하여 비교 현재의 유사도 점수를 산출한다.Based on this, the similarity score calculation unit 120 here also includes a syllable between '#' s accumulated one syllable from the front of the word with the space before the input word in the matrix table, in front of the word with the space before the comparison object. In order to calculate each similarity score (similarity value) by comparing the syllables between '#' accumulated by one syllable, the plurality of similarity scores calculated before comparison current according to [Algorithm Equation 3], as shown in FIG. 17. Comparing current similarity scores using (similarity values), i.e., scores of (i, j-1), (i-1, j), and (i-1, j-1) elements in a matrix table .

[알고리즘 식3]Algorithm Equation 3

Figure pat00003
Figure pat00003

여기서, λ는 공백, SIM(At(i),Bt(j))는 비교 현재의 유사도값, max()는 ()안의 원소 중 최대값, SIM(At(i),Bt(j-1))은 입력어의 처음부터 비교 현재(i)까지의 음소들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음소들과의 유사도값, SIM(At(i-1),Bt(j))은 입력어의 처음부터 비교 이전(i-1)까지의 음소들에 대하여, 비교대상의 처음부터 비교 현재(j)까지의 음소들과의 유사도값, SIM(At(i-1),Bt(j-1))은 입력어의 처음부터 비교 이전(i-1)까지의 음소들에 대하여, 비교대상의 처음부터 비교 이전(j-1)까지의 음소들과의 유사도값, S(At[i],Bt[j])은 비교 현재 위치에서의 입력어와 비교대상의 해당 음소 간의 유사도값이다. S(λ,Bt[j])는 비교 현재 위치에서의 공백과 비교대상의 해당 음소 간의 유사도값이고, S(At[i], λ)는 비교 현재 위치에서의 입력어의 해당 음소와 공백 간의 유사도값이다. 위와 같은 방식을 적용하여, 도 6또는 도 14와 같은 행렬표의 마지막 원소(마지막i 행, 마지막 j열 원소)가 다른 값으로 계산될 수 있다. Where λ is blank, SIM (A t (i), B t (j)) is the current similarity value of comparison, max () is the maximum value among the elements in (), SIM (A t (i), B t ( j-1)) is a similarity value between the phonemes from the beginning of the input word to the comparison current (i) and the phonemes from the beginning of the comparison to the comparison (j-1), SIM (A t (i -1), B t (j)) is the similarity value with the phonemes from the beginning of the comparison object to the comparison current (j) for the phonemes from the beginning of the input word to before the comparison (i-1), SIM (A t (i-1), B t (j-1)) is for the phonemes from the beginning of the input word to before comparison (i-1), from the beginning of the comparison to the comparison (j-1). The similarity value with the phonemes of, S (A t [i], B t [j]) is the similarity value between the input word at the current position and the corresponding phoneme to be compared. S (λ, B t [j]) is the similarity value between the space at the comparison current position and the corresponding phoneme to be compared, and S (A t [i], λ) is the corresponding phoneme of the input word at the comparison current position. Similarity value between spaces. By applying the above method, the last element (last i row, last j column element) of the matrix table as shown in FIG. 6 or 14 may be calculated with different values.

한편, 제3알고리즘에서, M2는 비교되는 두 음소가 '#'인 경우로 음절을 구분하는 위치가 일치하는 경우를 뜻하며, 단어의 길이를 유사도 점수에 반영하는 역할을 한다. 예를 들어, 도 18a와 같이, '가만히'와 '가마니'의 배치와 도 18b와 같이 '결정'과 '결장'의 배치를 살펴보자. '가만히'와 '가마니'의 유사도 점수는 5M1+2M2+-I1-N1이고, '결정'과 '결장'은 5M1+M2-N1이 된다. 제1, 제2 알고리즘에서는 모두 '결정'과 '결장'의 관계가 더 가깝다고 판단하게 되지만, 제3알고리즘에 따르면 M2와 I1의 값에 따라서 서로 다른 결과가 나올 수 있다. 예를 들어, M2가 I1보다 크면 '가만히'와 '가마니'의 관계가 더 가깝다고 판단하게 된다. 따라서, 매핑 데이터베이스(122)에는 적절한 유사도값들이 저장되어야 할 필요가 있다. Meanwhile, in the third algorithm, M 2 is a case where two phonemes to be compared are '#', which means that the positions for distinguishing syllables coincide, and the length of the word is reflected in the similarity score. For example, as shown in FIG. 18A, the arrangement of 'still' and 'bag' and the arrangement of 'decision' and 'colon' as shown in FIG. 18B will be described. The similarity scores of 'Still' and 'Bani' are 5M 1 + 2M 2 + -I 1 -N 1 , and 'Decision' and 'Colon' are 5M 1 + M 2 -N 1 . In both the first and second algorithms, it is determined that the relationship between 'decision' and 'colon' is closer, but according to the third algorithm, different results may be generated depending on the values of M 2 and I 1 . For example, if M 2 is greater than I 1 , the relationship between 'still' and 'bag' is closer. Accordingly, appropriate similarity values need to be stored in the mapping database 122.

두 번째로 살펴볼 변수인 -N3는 미스매치의 세번째 경우로 구분자 '#'가 다른 문자에 대응되는 경우를 나타낸다. 구분자 '#'는 음절의 경계를 표현하기 위해서 삽입된 음소이므로, '#'이'#'이 아닌 음소에 대응되는 경우는 허용하지 않는 것이 합리적이라고 생각된다. 이를 위해서는 -N3를 매우 작게 하여 이를 허용하지 않게 하는 경우도 고려하는 것이 바람직하다.The second variable, -N 3, is the third case of mismatching, where the delimiter '#' corresponds to another character. Since the separator '#' is a phoneme inserted to express the boundary of the syllable, it is reasonable to disallow the case where '#' corresponds to a phoneme other than '#'. To this end, it is also desirable to consider the case where -N 3 is made very small so as not to allow this.

또한, -I1<-I2의 관계가 성립되어야 한다. 도 19a와 도 19b와 같이, '가다'와 '갇ㅏ'의 2가지 배치를 생각해보자. 도 19a의 경우 -2I2의 값을 갖게 되며, 도 19b의 경우 -2I1의 값을 갖게 된다. '갇ㅏ'는 '가다'를 잘못 표기하여 'ㄷ'이 첫번째 음절로 옮겨간 경우이므로, 첫 번째 배치가 두 번째보다 더 옳다고 할 수 있다. 따라서 -I1<-I2가 되는 것이 합리적이다.
In addition, a relationship of -I 1 <-I 2 must be established. As shown in Figs. 19A and 19B, consider two arrangements of 'go' and 'trapped'. 19a has a value of -2I 2 , and FIG. 19b has a value of -2I 1 . Since 'c' is misplaced as 'ca' and 'c' is moved to the first syllable, the first arrangement is more correct than the second. Therefore, it is reasonable to be -I 1 <-I 2 .

<제4알고리즘>Fourth Algorithm

제4알고리즘에서의 유사도 점수를 정의하기 위하여, 단어를 이루는 음절을 음소의 배열 형태로 변형하였다. 먼저, 제3알고리즘에서와 유사하게 입력어와 비교대상의 각 음절을 음소 단위로 풀어 초성, 중성, 종성 순서로 나열한 후, 음절 사이에 '#'을 넣는 대신, 음절의 첫 번째 음소(초성) 마다 그 뒤에 구분자(')를 붙여 나열한다. 예를 들어 '가만히'의 경우에 'ㄱ' ㅏ ㅁ' ㅏ ㄴ ㅎ' ㅣ'와 같이 나열되록 변경한다. 이에 따라, 유사도 점수 산출부(120)는, 입력어와 비교대상의 음절을 음소 단위로 풀어 초성, 중성, 종성 순서로 나열한 후, 각 초성 뒤에 구분자(')을 삽입한 후, 구분자(')가 포함된 입력어와 비교대상 간의 유사도 점수를 산출하되, 각 음절에서 중성이나 종성에 비교하여 구분자(')가 포함된 초성에 가중치를 더 크거나 같게 주어 유사도 점수를 산출할 수 있다.In order to define the similarity score in the fourth algorithm, the syllables forming words are transformed into phoneme arrangement. First, similar to the third algorithm, each syllable of the input word and the target to be compared is divided into phoneme units, arranged in the order of initial, neutral, and final, and after each syllable, instead of putting '#' between the syllables List them after the delimiter ('). For example, in the case of 'quiet', change it to be listed as' ㄱ 'ㅏ ㅁ' ㅏ ㄴ ㅎ 'ㅣ'. Accordingly, the similarity score calculation unit 120 decomposes the syllables of the input words and the comparison targets in phoneme units, arranges them in the order of the first consonant, the neutral, and the final constellation, and inserts a delimiter (') after each first consonant. The similarity score between the included input word and the comparison target is calculated, and the similarity score can be calculated by giving a weight equal to or greater than the initial consonant including the delimiter (') in each syllable.

도 20은 본 발명의 또 다른 실시예에 따른 제4 알고리즘에서의 유사도값의 정의를 설명하기 도면이다.20 is a diagram for explaining definition of a similarity value in a fourth algorithm according to another embodiment of the present invention.

제4 알고리즘의 수행을 위하여, 매핑 데이터베이스(122)에는 도 16과 같이, 두 음소가 서로 일치하고 모두 초성인 경우(구분자 '가 모두 포함된 경우)에 대한 유사도값(m1), 두 음소가 서로 일치하고 모두 초성이 아닌 경우(구분자 '가 모두 포함되지 않은 경우)에 대한 유사도값(m2), 두 음소가 서로 일치하고 하나만 초성인 경우에 대한 유사도값(m3), 두 음소가 서로 다르고 모두 초성인 경우에 대한 유사도값(-n1), 두 음소가 서로 다르고 모두 초성이 아닌 경우에 대한 유사도값(-n2), 두 음소가 서로 다르고 하나만 초성인 경우에 대한 유사도값(-n3), 초성에 대하여 음소 삽입이나 삭제(λ)인 경우에 대한 유사도값(-i1), 초성이 아닌 경우에 대하여 음소 삽입이나 삭제(λ)인 경우에 대한 유사도값(-i2)가 저장될 수 있다.For the execution of the fourth algorithm, the mapping database 122 has a similarity value (m 1 ) for the case where two phonemes coincide with each other and both are initial (when all delimiters are included), as shown in FIG. 16. Similarity values (m 2 ) for cases where they match each other and are not all leading (with no separator '), similarity values (m 3 ) for cases where two phonemes match each other and only one is the initial, and two phones If the similarity value is different for both adults seconds (-n 1), if the similarity value for two phonemes differ, both non-consonant (-n 2), the two phonemes are different and only one similarity value for the second adult case (- n 3 ), the similarity value (-i 1 ) for phoneme insertion or deletion (λ) for the initial constellation, and the similarity value (-i 2 ) for phoneme insertion or deletion (λ) for the non-choice case Can be stored.

이에 따라, 유사도 점수 산출부(120)는 매핑 데이터베이스(122)를 참조하여, 도 17과 같은 알고리즘을 수행하여, 유사도 점수 산출을 위한 도 14와 같은 행렬표를 생성하되 1행과 1열에는 공백(λ)이 포함되도록 입력어-비교대상 간 행렬표를 작성하여 입력어와 비교대상 간의 유사도 점수를 산출할 수 있다.Accordingly, the similarity score calculator 120 performs the algorithm shown in FIG. 17 with reference to the mapping database 122 to generate the matrix table as shown in FIG. 14 for calculating the similarity score, but has blanks in the first row and the first column. A matrix table between the input words and the comparison targets may be generated to include (λ) to calculate the similarity score between the input words and the comparison targets.

유사도 점수 산출부(120)는 이와 같은 행렬표의 각 원소를 계산하는 데 있어서, 1행과 1열 전체의 유사도 점수를 먼저 산출한다. 예를 들어, SIM(λ,λ)=0이고, j=1부터 j=비교대상(B)의 음소수 |B|까지 유사도값 SIM(0, Bt(j))= SIM(0, Bt(j-1)) + SIM(0, Bt[j])이며, 마찬가지로 i=0부터 i=입력어(A)의 음절수 |A|까지 유사도값 SIM(At(i), 0)= SIM(At(i-1), 0) + SIM(At[i], λ)이다. 여기서, Bt(j-1), At(i-1)와 같이 ()로 표시한 것은 처음 공백(λ)부터 해당 인덱스까지의 전체 음소들을 나타내며, Bt[j], At[i]와 같이 []로 표시한 것은, 해당 인덱스의 음소만을 나타낸다. The similarity score calculator 120 calculates the similarity score of the first row and the first column in calculating each element of the matrix table. For example, SIM (λ, λ) = 0, and j = 1 to j = number of phonemes | B | of the comparison target B | Similarity values SIM (0, B t (j)) = SIM (0, B t (j-1)) + SIM (0, B t [j]), and similarity values SIM (A t (i), 0 from i = 0 to i = Syllable number | A | ) = SIM (A t (i-1), 0) + SIM (A t [i], λ). Here, denoted by (), such as B t (j-1) and A t (i-1), represents all the phonemes from the first space (λ) to the corresponding index, and B t [j], A t [i Indicated by [] like] indicates only the phoneme of the index.

여기서는 위와 같이 초성 뒤에 구분자(')가 삽입된 음소와 구분자(')로 이루어진 배열 형태의 입력어인 경우 At이며, 비교 대상인 경우 Bt로 표시하기로 한다. Here, when herbicidal behind the separator ( ') in the array type Merman form consisting of a separator and inserted into the phoneme ( ") A t is as above, will be displayed when the subject compared to a B t.

이를 기초로, 여기서도 유사도 점수 산출부(120)는 행렬표에서 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수(유사도 값)를 산출하기 위하여, 도 17에서의 [알고리즘 식3]에 따라, 비교 현재 이전에 산출된 복수의 유사도 점수(유사도 값), 즉, 행렬표에서 (i, j-1), (i-1, j), 및 (i-1, j-1) 원소의 점수를 이용하여 비교 현재의 유사도 점수를 산출한다. 여기서도 도 6또는 도 14와 같은 행렬표의 마지막 원소(마지막i 행, 마지막 j열 원소)가 다른 값으로 계산될 수 있다.
Based on this, the similarity score calculator 120 also accumulates one syllable from the front of the word with the space before the comparison object for syllables accumulated one syllable from the front of the word with the space before the input word in the matrix table. In order to calculate each similarity score (similarity value) compared to one syllable, according to [Algorithm Equation 3] in FIG. 17, a plurality of similarity scores (similarity values) calculated before comparison present, that is, in the matrix table ( The similarity score of the comparison present is calculated using the scores of the elements i, j-1), (i-1, j), and (i-1, j-1). Here again, the last element (last i row, last j column element) of the matrix table as shown in FIG. 6 or 14 may be calculated with different values.

지금까지 유사도 점수 산출부(120)가 제1 내지 제4 알고리즘에 따라 정의된 편집거리 또는 유사도값을 저장한 매핑 데이터베이스(122)를 참조하여 입력어와 비교대상 간의 유사도 점수(편집거리 또는 유사도값)를 산출하는 방식들을 설명하였다. The similarity score (editing distance or similarity value) between the input word and the comparison target with reference to the mapping database 122 where the similarity score calculator 120 stores the editing distance or the similarity value defined according to the first to fourth algorithms. It was described how to calculate the.

제1알고리즘에서는 기존의 한글 편집거리를 개선한 새로운 편집거리를 제안하였다. 제2알고리즘에서는 새로 정의된 한글 음소 분류 체계를 이용하여 음소 간에 존재하는 유사성을 적용하였다. 그리고, 여기서는 기존 연구가 음소, 음절의 삽입, 삭제, 치환만을 고려한 것에 비하여, 매치(match)인 경우까지를 고려한 유사도 점수를 정의하여 이용하였다. 제2알고리즘에서는 제1알고리즘에서 보다 더 좋은 결과를 보여주었다. 여기서, 유사 단어에 대한 실험에서는 유사 단어가 아닌 단어를 유사단어로 잘못 판단할 확률이 1/3이하로 줄어들었으며, 비속어 데이터에 대한 실험에서도 에러 확률이 절반 가까이 감소하였음을 확인할 수 있었다.The first algorithm proposed a new editing distance that improves the existing Hangul editing distance. In the second algorithm, the similarity between phonemes is applied using the newly defined Korean phoneme classification system. In this case, the similarity score considering the case of the match was defined and used, compared to the existing studies considering only the insertion, deletion, and substitution of phonemes and syllables. The second algorithm showed better results than the first algorithm. Here, in experiments with similar words, the probability of misjudged words that are not similar words is reduced to less than one-third or less, and even in experiments with profanity data, the error probability was reduced by almost half.

제3알고리즘과 제4알고리즘은 한글에 대한 편집거리 및 유사도 점수에 대한 기존의 방식을 개선한 방식이다. 제3알고리즘에서는 단어를 음소와 음절의 경계를 나타내는 특수문자 '#'로 이루어진 1차원 배열로 변형한 후, 이를 이용하여 유사도 점수를 정의하여 이용하였다. 제4알고리즘에서는 단어를 음소의 1차원 배열로 변형한 후, 음절의 첫 번째 음소(초성)에 가중치를 둔 유사도 점수를 정의하여 이용하였다. 음절의 첫 번째 음소에 가중치를 두는 제4알고리즘이 유사단어와 비속어 데이터에 대한 실험에서 모두 제1내지 제3 알고리즘 보다 좋은 결과를 얻었으며, 특히 비속어 데이터에서 매우 좋은 결과를 나타내었다.The third and fourth algorithms are an improvement on the existing method of editing distance and similarity score for Hangul. In the third algorithm, the word was transformed into a one-dimensional array of special characters '#' representing the boundary between phoneme and syllables, and then used to define similarity scores. In the fourth algorithm, a word is transformed into a one-dimensional array of phonemes, and then similarity scores weighted to the first phoneme (syringe) of the syllables are used. The fourth algorithm, which weights the first phoneme of syllables, showed better results than the first to third algorithms in experiments with similar word and slang data, especially in slang data.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

110: 비교대상 추출부
111: 리소스 데이터베이스
120: 유사도 점수 산출부
121: 음소분류 데이터베이스
122: 매핑 데이터베이스
110: comparison target extraction unit
111: resource database
120: similarity score calculator
121: phoneme classification database
122: mapping database

Claims (10)

한글 유사도 계산 장치에서 한글 유사도 계산 방법에 있어서,
두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 및
입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고,
상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되,
상기 데이터베이스는 음절 삽입에 대한 편집 거리(β), 음절 삭제 에 대한 편집 거리(β), 및 음절 치환에 대한 편집 거리를 저장하고,
알고리즘
Figure pat00004

에 기초하여, 비교 현재의 유사도 점수를 산출하되,
여기서, SED(A(i),B(j))는 비교 현재의 편집 거리, min()는 ()안의 원소 중 최소값, SED(A(i),B(j-1))은 상기 입력어의 처음부터 비교 현재까지의 음절들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음절들과의 편집 거리, SED(A(i-1),B(j))은 상기 입력어의 처음부터 비교 이전까지의 음절들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음절들과의 편집 거리, SED(A(i-1),B(j-1))은 상기 입력어의 처음부터 비교 이전까지의 음절들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음절들과의 편집 거리, δs(A[i],B[j])은 비교 현재 위치에서의 상기 입력어와 상기 비교대상의 해당 음절 간의 편집 거리인 것을 특징으로 하는 한글 유사도 계산 방법.
In the method of calculating the Korean similarity in the Korean similarity calculating device,
Storing similarity scores to be mapped to a plurality of similarity types between two Hangul syllables in a database; And
Comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database;
In the calculating of the similarity score, the syllables accumulated by one syllable from the front of the word with the space before the input word are compared with the syllables accumulated by the syllable from the word with the space before the comparison object. Calculate each similarity score,
The database stores the edit distance β for syllable insertion, the edit distance β for syllable deletion, and the edit distance for syllable substitution,
algorithm
Figure pat00004

Based on the comparison current similarity score,
Where SED (A (i), B (j)) is the current editing distance for comparison, min () is the minimum value among the elements in (), and SED (A (i), B (j-1)) is the input word. For syllables from the beginning of the comparison to the present, the editing distance from the beginning of the comparison to the syllables before the comparison, SED (A (i-1), B (j)) is from the beginning of the input word. For the syllables before comparison, the editing distance from the beginning of the comparison object to the syllables before comparison, SED (A (i-1), B (j-1)) compares from the beginning of the input word. For the syllables before, the edit distance, δs (A [i], B [j]), from the beginning of the comparison target to the comparison before, is determined by comparing the input word at the current position of comparison with the comparison target. Hangul similarity calculation method characterized in that the editing distance between the syllable.
제1항에 있어서,
상기 음절 치환에 대한 편집 거리는,
비교되는 상기 두 한글 음절 간의 모든 음소들이 다른 경우에, 상기 β이며, 비교되는 상기 두 한글 음절 간에 하나 이상의 음소가 같은 경우에, N*α이고, 여기서, α는 음소 단위 편집 연산 비용으로서 임의의 실수, N은 다른 음소의 갯수이며, β≥3α인 것을 특징으로 하는 한글 유사도 계산 방법.
The method of claim 1,
The editing distance for the syllable substitution is
If all phonemes between the two Hangul syllables being compared are β, and if at least one phoneme is the same between the two Hangul syllables being compared, then N * α, where α is any phoneme editing cost. Real number, N is the number of other phonemes, β ≥ 3α Hangul similarity calculation method.
한글 유사도 계산 장치에서 한글 유사도 계산 방법에 있어서,
두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계;
입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고,
상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되,
상기 데이터베이스는 음소 매치에 대한 유사도값(Mp), 음소 미스매치에 대한 유사도값(동일 그룹의 경우 -N1p 또는 다른 그룹의 경우 -N2p), 음소 삽입이나 삭제에 대한 유사도값(-Ip), 음절 매치에 대한 유사도값(Ms), 음절 미스매치에 대한 유사도값, 및 음절 삽입이나 삭제에 대한 유사도값(-Is)을 저장하고,
알고리즘
Figure pat00005

에 기초하여, 비교 현재의 유사도 점수를 산출하되,
여기서, SIM(A(i),B(j))는 비교 현재의 유사도값, max()는 ()안의 원소 중 최대값, SIM(A(i),B(j-1))은 상기 입력어의 처음부터 비교 현재까지의 음절들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음절들과의 유사도값, SIM(A(i-1),B(j))은 상기 입력어의 처음부터 비교 이전까지의 음절들에 대하여, 상기 비교대상의 처음부터 비교 현재까지의 음절들과의 유사도값, SIM(A(i-1),B(j-1))은 상기 입력어의 처음부터 비교 이전까지의 음절들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음절들과의 유사도값, δs(A[i],B[j])은 비교 현재 위치에서의 상기 입력어와 상기 비교대상의 해당 음절 간의 유사도값인 것을 특징으로 하는 한글 유사도 계산 방법.
In the method of calculating the Korean similarity in the Korean similarity calculating device,
Storing similarity scores to be mapped to a plurality of similarity types between two Hangul syllables in a database;
Comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database;
In the calculating of the similarity score, the syllables accumulated by one syllable from the front of the word with the space before the input word are compared with the syllables accumulated by the syllable from the word with the space before the comparison object. Calculate each similarity score,
The database includes similarity values (Mp) for phoneme matches, similarity values for phoneme mismatches (-N1p for the same group, or -N2p for other groups), similarity values (-Ip) for phoneme insertion or deletion, and syllables. Store similarity values (Ms) for matches, similarity values for syllable mismatches, and similarity values (-Is) for syllable insertion or deletion,
algorithm
Figure pat00005

Based on the comparison current similarity score,
Here, SIM (A (i), B (j)) is the current similarity value of comparison, max () is the maximum value among elements in (), and SIM (A (i), B (j-1)) is the input. For the syllables from the beginning of the word to the present comparison, the similarity value with the syllables from the beginning of the comparison to before the comparison, SIM (A (i-1), B (j)) is the first word of the input word. For the syllables from the beginning to the comparison, the similarity value with the syllables from the beginning of the comparison to the present comparison, SIM (A (i-1), B (j-1)) is calculated from the beginning of the input word. For the syllables before comparison, the similarity value, δs (A [i], B [j]), between the beginning of the comparison object and the comparison syllables, is the input word at the comparison current position and the comparison object. Hangul similarity calculation method, characterized in that the similarity value between the syllable.
제3항에 있어서,
상기 음절 미스매치에 대한 유사도값은,
비교되는 상기 두 한글 음절 간의 모든 음소들이 다른 경우에, -Ns(Ns는 0보다 큰 실수), 비교되는 상기 두 한글 음절 간에 하나 이상의 음소가 같은 경우에, 대응되는 음소들의 유사도값들의 합이며, 여기서, Ms≥3Mp, -Ns≤-3N1p, 및 -Is≤-3Ip인 것을 특징으로 하는 한글 유사도 계산 방법.
The method of claim 3,
The similarity value for the syllable mismatch is
-Ns (Ns is a real number greater than 0) when all the phonemes between the two Hangul syllables being compared are different, the sum of the similarity values of the corresponding phonemes when one or more phonemes are equal between the two Hangul syllables being compared, Here, Ms ≥ 3Mp, -Ns ≤ -3N1p, and -Is ≤ -3Ip.
한글 유사도 계산 장치에서 한글 유사도 계산 방법에 있어서,
두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 및
입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고,
상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하되,
상기 입력어와 상기 비교대상에 각각 음절 경계마다 구분자('#')을 삽입하고 초성, 중성, 종성 순서로 나열한 후, 상기 구분자가 포함된 입력어와 비교대상 간의 상기 유사도 점수를 산출하는 것을 특징으로 하는 한글 유사도 계산 방법.
In the method of calculating the Korean similarity in the Korean similarity calculating device,
Storing similarity scores to be mapped to a plurality of similarity types between two Hangul syllables in a database; And
Comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database;
In the calculating of the similarity score, the syllables accumulated by one syllable from the front of the word with the space before the input word are compared with the syllables accumulated by the syllable from the word with the space before the comparison object. Calculate each similarity score,
And inserting a separator ('#') for each syllable boundary into the input word and the comparison object and arranging them in the order of initial, neutral, and final, and calculating the similarity score between the input word including the separator and the comparison object. How to calculate Korean similarity.
제5항에 있어서,
상기 데이터베이스는 두 음소가 서로 일치하고 모두 '#'이 아닌 경우에 대한 유사도값(M1), 두 음소가 모두 '#'인 경우에 대한 유사도값(M2), '#'이 아닌 두 음소가 다르고 서로 같은 그룹에는 속하는 경우에 대한 유사도값(-N1), '#'이 아닌 두 음소가 다르고 서로 다른 그룹에는 속하는 경우에 대한 유사도값(-N2), 두 음소가 서로 다르고 그 중 하나가 '#'인 경우에 대한 유사도값(-N3), 두 음소 중 하나가 '#'이 아니며 음소 삽입이나 삭제인 경우에 대한 유사도값(-I1), 두 음소 중 하나가 '#'이며 음소 삽입이나 삭제인 경우에 대한 유사도값(-I2)을 저장하고,
알고리즘
Figure pat00006

에 기초하여, 비교 현재의 유사도 점수를 산출하되,
여기서, λ는 공백, SIM(At(i),Bt(j))는 비교 현재의 유사도값, max()는 ()안의 원소 중 최대값, SIM(At(i),Bt(j-1))은 상기 입력어의 처음부터 비교 현재까지의 음소들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음소들과의 유사도값, SIM(At(i-1),Bt(j))은 상기 입력어의 처음부터 비교 이전까지의 음소들에 대하여, 상기 비교대상의 처음부터 비교 현재까지의 음소들과의 유사도값, SIM(At(i-1),Bt(j-1))은 상기 입력어의 처음부터 비교 이전까지의 음소들에 대하여, 상기 상기 비교대상의 처음부터 비교 이전까지의 음소들과의 유사도값, S(At[i],Bt[j])은 비교 현재 위치에서의 상기 입력어와 상기 비교대상의 해당 음소 간의 유사도값, S(λ,Bt[j])는 비교 현재 위치에서의 공백과 비교대상의 해당 음소 간의 유사도값, S(At[i], λ)는 비교 현재 위치에서의 입력어의 해당 음소와 공백 간의 유사도 값을 나타내는 것을 특징으로 하는 한글 유사도 계산 방법.
The method of claim 5,
The database has a similarity value (M 1 ) for a case where two phonemes match each other and not both '#', a similarity value (M 2 ) for a case where both phonemes are '#', and two phonemes that are not '#'. are different from each other such that the two groups are different than the phoneme similarity value (-N 1), '#' for the case belonging to the similarity value (-N 2), for two phonemes if belongs is different groups different from each other, of which Similarity value for the case where one is '#' (-N 3 ), similarity value for the case where one of the two phonemes is not '#' and is a phoneme insertion or deletion (-I 1 ), and one of the two phones 'And stores the similarity value (-I 2 ) for phoneme insertion or deletion,
algorithm
Figure pat00006

Based on the comparison current similarity score,
Where λ is blank, SIM (A t (i), B t (j)) is the current similarity value of comparison, max () is the maximum value among the elements in (), SIM (A t (i), B t ( j-1)) is a similarity value with phonemes from the beginning of the comparison object to the comparison time, SIM (A t (i-1), B t , for the phonemes from the beginning of the input word to the present comparison. (j)) is a similarity value with phonemes from the beginning of the comparison object to the present comparison time, SIM (A t (i-1), B t (for phonemes from the beginning of the input word to before comparison). j-1)) is the similarity value with the phonemes from the beginning of the comparison object to the comparison time, S (A t [i], B t [ j]) is the similarity value between the input word at the comparison current position and the corresponding phoneme of the comparison target, and S (λ, B t [j]) is the similarity value between the space at the comparison current position and the corresponding phoneme of the comparison target, S (A t [i], λ) is the current position A method of calculating Korean similarity, characterized in that it represents a similarity value between a corresponding phoneme and a space of an input word.
한글 유사도 계산 장치에서 한글 유사도 계산 방법에 있어서,
두 한글 음절 간의 복수의 유사도 형태에 대하여 매핑될 유사도 점수들을 데이터베이스에 저장하는 단계; 및
입력어와 비교대상을 비교하고 상기 데이터베이스를 참조하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 단계를 포함하고,
상기 유사도 점수를 산출하는 단계에서, 상기 입력어 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들에 대하여, 상기 비교대상 앞에 공백을 붙인 단어의 앞에서부터 한 음절씩 누적한 음절들과 비교해 각 유사도 점수를 산출하고,
또한, 상기 입력어와 상기 비교대상의 음절을 음소 단위로 풀어 초성, 중성, 종성 순서로 나열한 후, 각 초성 뒤에 구분자(')을 삽입한 후, 상기 구분자가 포함된 입력어와 비교대상 간의 상기 유사도 점수를 산출하되,
각 음절에서 중성이나 종성에 비교하여 상기 구분자가 포함된 초성에 가중치를 더 크거나 같게 주는 것을 특징으로 하는 한글 유사도 계산 방법.
In the method of calculating the Korean similarity in the Korean similarity calculating device,
Storing similarity scores to be mapped to a plurality of similarity types between two Hangul syllables in a database; And
Comparing the input word with the comparison object and calculating a similarity score between the input word and the comparison object with reference to the database;
In the calculating of the similarity score, the syllables accumulated by one syllable from the front of the word with the space before the input word are compared with the syllables accumulated by the syllable from the word with the space before the comparison object. Calculate each similarity score,
In addition, the syllables of the input words and the comparison targets are solved in phoneme units, arranged in the order of initial, neutral, and final, followed by insertion of a delimiter (') after each initial, and then the similarity score between the input word including the delimiter and the comparison target. Calculate the
Hangul similarity calculation method characterized in that each syllable has a weight greater than or equal to the first consonant containing the delimiter compared to the neutral or the final consonant.
제7항에 있어서,
상기 데이터베이스는, 두 음소가 서로 일치하고 모두 초성인 경우에 대한 유사도값(m1), 두 음소가 서로 일치하고 모두 초성이 아닌 경우에 대한 유사도값(m2), 두 음소가 서로 일치하고 하나만 초성인 경우에 대한 유사도값(m3), 두 음소가 서로 다르고 모두 초성인 경우에 대한 유사도값(-n1), 두 음소가 서로 다르고 모두 초성이 아닌 경우에 대한 유사도값(-n2), 두 음소가 서로 다르고 하나만 초성인 경우에 대한 유사도값(-n3), 초성에 대하여 음소 삽입이나 삭제인 경우에 대한 유사도값(-i1), 초성이 아닌 경우에 대하여 음소 삽입이나 삭제인 경우에 대한 유사도값(-i2)을 저장하고,
알고리즘
Figure pat00007

에 기초하여, 비교 현재의 유사도 점수를 산출하되,
λ는 공백, SIM(At(i),Bt(j))는 비교 현재의 유사도값, max()는 ()안의 원소 중 최대값, SIM(At(i),Bt(j-1))은 상기 입력어의 처음부터 비교 현재까지의 음소들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음소들과의 유사도값, SIM(At(i-1),Bt(j))은 상기 상기 입력어의 처음부터 비교 이전까지의 음소들에 대하여, 상기 비교대상의 처음부터 비교 현재까지의 음소들과의 유사도값, SIM(At(i-1),Bt(j-1))은 상기 입력어의 처음부터 비교 이전까지의 음소들에 대하여, 상기 비교대상의 처음부터 비교 이전까지의 음소들과의 유사도값, S(At[i],Bt[j])은 비교 현재 위치에서의 상기 입력어와 상기 비교대상의 해당 음소 간의 유사도값, S(λ,Bt[j])는 비교 현재 위치에서의 공백과 비교대상의 해당 음소 간의 유사도값, S(At[i], λ)는 비교 현재 위치에서의 입력어의 해당 음소와 공백 간의 유사도값인 것을 특징으로 하는 한글 유사도 계산 방법.
The method of claim 7, wherein
The database has a similarity value (m 1 ) for two phonemes that coincide with each other and both initials, a similarity value (m 2 ) for two phonemes that coincide with each other and not all primarys, and two phonemes match each other and only one Similarity value for the case of a first consonant (m 3 ), similarity value for the case where two phonemes are different and both consonant (-n 1 ), similarity value for the case where the two phonemes are different and not all consonant (-n 2 ) , The similarity value for two phonemes that differ from each other and only one foremost (-n 3 ), the similarity value for phoneme insertion or deletion for a first consonant (-i 1 ), and the insertion or deletion of a phoneme for a non-choice Store the similarity value (-i 2 ) for the case,
algorithm
Figure pat00007

Based on the comparison current similarity score,
λ is blank, SIM (A t (i), B t (j)) is the current similarity value for comparison, max () is the maximum value among the elements in (), SIM (A t (i), B t (j- 1)) is a similarity value between the phonemes from the beginning of the input word to the comparison present time and from the beginning of the comparison object to the comparison time, SIM (A t (i-1), B t (j )) Is a similarity value with the phonemes from the beginning of the comparison object to the present comparison time, SIM (A t (i-1), B t (j) for the phonemes from the beginning of the input word to before comparison. -1)) is the similarity value with the phonemes from the beginning of the comparison object to the comparison time, S (A t [i], B t [j] ) Is the similarity value between the input word at the comparison current position and the corresponding phoneme of the comparison object, and S (λ, B t [j]) is the similarity value between the space at the comparison current position and the corresponding phoneme of the comparison object, S (A t [i], λ) is compared to the input control of the in-place Hangul similarity calculation method, characterized in that the phoneme and the similarity values between the spaces.
제1항 내지 제8항 중 어느 한 항에 있어서,
초성으로 사용되는 한글 자음 및 종성이 없거나 종성으로 사용되는 한글 자음을 분류한 복수의 자음 그룹, 및 한글 모음을 분류한 복수의 모음 그룹을 정의하여 제2데이터베이스에 저장하는 단계를 더 포함하고,
상기 유사도 점수를 산출하는 단계에서, 상기 제2데이터베이스를 기초로 상기 입력어와 상기 비교대상의 한글 자음 및 모음 각각의 그룹을 판단하여 상기 입력어와 상기 비교대상 간의 유사도 점수를 산출하는 것을 특징으로 하는 한글 유사도 계산 방법.
The method according to any one of claims 1 to 8,
Defining a plurality of consonant groups categorizing the Hangul consonants used as initial consonants and the non-singular consonants used as the final consonants, and a plurality of vowel groups categorizing the Hangul vowels and storing them in a second database;
And calculating the similarity score between the input language and the comparison object by determining a group of each of the input words and the Korean consonants and vowels of the comparison object based on the second database. Similarity calculation method.
제1항 내지 제9항 중 어느 한 항에 있어서,
리소스를 제3 데이터베이스에 저장하는 단계; 및
상기 유사도 점수를 산출하기 전에, 입력되는 상기 입력어와 비교할 상기 비교대상을 상기 제3 데이터베이스로부터 추출하는 단계
를 더 포함하는 것을 특징으로 하는 한글 유사도 계산 방법.
The method according to any one of claims 1 to 9,
Storing the resource in a third database; And
Extracting the comparison object to be compared with the input word from the third database before calculating the similarity score
Hangul similarity calculation method further comprising.
KR1020100091240A 2010-09-16 2010-09-16 Method for calculating similarity of korean word KR20120029505A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100091240A KR20120029505A (en) 2010-09-16 2010-09-16 Method for calculating similarity of korean word

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100091240A KR20120029505A (en) 2010-09-16 2010-09-16 Method for calculating similarity of korean word

Publications (1)

Publication Number Publication Date
KR20120029505A true KR20120029505A (en) 2012-03-27

Family

ID=46133875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100091240A KR20120029505A (en) 2010-09-16 2010-09-16 Method for calculating similarity of korean word

Country Status (1)

Country Link
KR (1) KR20120029505A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101322123B1 (en) * 2013-06-14 2013-10-28 인하대학교 산학협력단 Method for parallel computation of extended edit distance including swap operation
KR101501413B1 (en) * 2014-04-16 2015-03-16 인하대학교 산학협력단 Apparatus for searching architectural material using similarity of keyword and method thereof
KR20210112955A (en) * 2020-03-06 2021-09-15 아주대학교산학협력단 Swearwords detection system based on hangul jamo similarity and method of detecting the swearwords

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101322123B1 (en) * 2013-06-14 2013-10-28 인하대학교 산학협력단 Method for parallel computation of extended edit distance including swap operation
KR101501413B1 (en) * 2014-04-16 2015-03-16 인하대학교 산학협력단 Apparatus for searching architectural material using similarity of keyword and method thereof
KR20210112955A (en) * 2020-03-06 2021-09-15 아주대학교산학협력단 Swearwords detection system based on hangul jamo similarity and method of detecting the swearwords

Similar Documents

Publication Publication Date Title
US8117026B2 (en) String matching method and system using phonetic symbols and computer-readable recording medium storing computer program for executing the string matching method
JP4302326B2 (en) Automatic classification of text
Eskander et al. Foreign words and the automatic processing of Arabic social media text written in Roman script
KR20050007547A (en) Recognizing words and their parts of speech in one or more natural languages
Zitouni et al. Arabic diacritic restoration approach based on maximum entropy models
Boroş et al. A comparison of sequential and combined approaches for named entity recognition in a corpus of handwritten medieval charters
Mosavi Miangah FarsiSpell: A spell-checking system for Persian using a large monolingual corpus
Ljubešić et al. Discriminating between closely related languages on twitter
CN110287286B (en) Method and device for determining similarity of short texts and storage medium
KR101163458B1 (en) Method for Calculating Similarity of Korean Word
KR20120029505A (en) Method for calculating similarity of korean word
KR100509917B1 (en) Apparatus and method for checking word by using word n-gram model
KR100542757B1 (en) Automatic expansion Method and Device for Foreign language transliteration
Onyenwe et al. Toward an effective igbo part-of-speech tagger
CN111767733A (en) Document security classification discrimination method based on statistical word segmentation
Alqahtani et al. Investigating input and output units in diacritic restoration
KR102182248B1 (en) System and method for checking grammar and computer program for the same
Tuan et al. A study of text normalization in Vietnamese for text-to-speech system
Qafmolla Automatic language identification
Zeldes A characterwise windowed approach to Hebrew morphological segmentation
JP6055267B2 (en) Character string dividing device, model file learning device, and character string dividing system
Baldwin et al. Restoring punctuation and casing in English text
Tongtep et al. Simultaneous character-cluster-based word segmentation and named entity recognition in Thai language
KR20040018008A (en) Apparatus for tagging part of speech and method therefor
JP2006053866A (en) Detection method of notation variability of katakana character string

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee