PC나 모바일 기기 상에서 문자(영문, 한글, 숫자, 특수 문자 등 입력 가능한 모든 형태를 포괄하는 의미임)를 입력하는 과정에서 오타가 발생할 경우, 통상적인 오타 수정 방법은 백스페이스(Backspace) 등의 삭제 기능키를 이용해 오타가 난 문자 이후에 입력된 문자들을 모두 지운 다음 올바른 문자를 다시 입력하거나, 마우스(PC의 경우) 또는 손가락 터치로(모바일 기기의 경우) 커서를 오타가 난 문자로 옮긴 다음 오타가 난 문자를 지우고 올바른 문자를 다시 입력해 오타를 수정하는 것이었다.If you make a typo while typing characters (including English, Korean, numbers, special characters, etc.) on your PC or mobile device, the usual way to correct typos is to delete the backspace. Use the function keys to erase all characters entered after the typo, then type the correct character again, or move the cursor to the typo using the mouse (for PC) or finger touch (for mobile devices) I corrected a typo by deleting the characters and retyping the correct characters.
그런데, 백스페이스 등의 삭제 기능키를 이용해 오타를 수정하는 방식은 오타가 난 문자뿐만 아니라 오타가 난 문자와 현재의 커서 위치 사이에 정상적으로 입력된 문자들까지도 모두 지워져 버리는 문제가 있다. 또한 마우스를 이용해 커서를 오타가 난 문자로 옮겨 오타를 수정하는 방식은 키보드에서 손을 떼어 마우스를 잡고 원하는 위치로 커서를 옮기는 동작과 오타를 수정한 이후에 커서를 현재의 위치로 다시 옮기는 동작이 필요하게 되어, 조작이 번거롭고 시간이 많이 소비되게 되는 문제가 있다. 이는 손가락 터치를 사용해 커서를 옮기는 경우에도 마찬가지이다. 모바일 기기와 같은 소형 터치스크린을 갖는 장치의 경우에는 작은 화면 내에서 손가락 터치로 커서를 원하는 위치로 이동시켜야 하기 때문에 커서를 정확한 위치로 이동시키는 것이 더욱 어렵고 번거롭게 된다.However, a method of correcting a typo using a delete function key such as a backspace has a problem in that not only a typo character but also all characters normally input between the typo character and the current cursor position are erased. In addition, the method of correcting a typo by moving the cursor to a typo character using the mouse is to release the mouse from the keyboard, move the cursor to the desired position, and move the cursor back to the current position after correcting the typo. There is a problem that the operation is cumbersome and time consuming. The same is true when the cursor is moved using a finger touch. In the case of a device having a small touch screen such as a mobile device, it is more difficult and cumbersome to move the cursor to the correct position because a finger touch must move the cursor to a desired position within the small screen.
이러한 문제점을 해소하기 위해 등장한 것이 소위 자동 수정 기능으로 불리는 오타 수정 방법이다. 이 기능은 이미 상용화되어 다양한 모바일 기기에 탑재되어 있는 것으로서, 사용자가 A라는 단어를 입력했을 때 A라는 단어가 오타로 판단되면 자동으로 B라는 단어로 고쳐주는 것이다. 자동으로 수정 입력되는 B라는 단어는 라이브러리에 이미 입력되어 있는 것이고, 사용자에 의해 직접 입력되는 것이 아니다.In order to solve this problem, a so-called automatic correction function called an error correction method has appeared. This function is already commercially available and installed in various mobile devices. When the user enters the word A and the word A is determined to be a typo, the function automatically corrects the word B. The word B, which is automatically corrected, is already entered in the library and is not directly entered by the user.
이와 같이 종래의 자동 수정 기능은 사용자가 수정 의도를 가지고 입력한 단어가 아니라 시스템이 사용자가 입력하였을 것으로 추정하는 단어를 수정 입력 단어로 설정하기 때문에, 추정의 정확성이 떨어지는 경우에는 사용자가 전혀 의도치 않은 엉뚱한 단어가 입력되어 버리는 문제가 발생하게 된다. 이는 라이브러리에 등록된 단어들에 한계가 있다는 점에 일부 기인한다. 현재 PC나 모바일 기기 상에서는 사용자들이 신조어나 줄임말을 빈번히 사용하고 있고 있기 때문에 라이브러리의 업데이트가 자주 이루어지지 않을 경우에는 이러한 라이브러리의 한계로 인한 문제가 더욱 심각하게 나타나게 된다. 이러한 이유로 많은 사용자들은 장치에 자동 단어 수정 기능이 탑재되어 있음에도 불구하고, 이 기능을 off 상태로 설정해 작동하지 않도록 한 채 문자를 입력하고 있다.As described above, the conventional automatic correction function sets the word that the system assumes to be entered by the user as a corrected input word instead of the word that the user inputs with the intention of correcting it. The wrong word is entered that is not. This is due in part to the limitations of words registered in the library. Because users frequently use new words or abbreviations on PCs or mobile devices, the problem caused by the limitations of these libraries becomes more serious when the library is not updated frequently. For this reason, many users are entering text while the device is equipped with automatic word correction, but this feature is turned off to disable it.
이러한 종래의 자동 수정 기능의 문제점을 보완하기 위해, 본 발명자는 완전히 새로운 오타 수정 방법을 발명하였다. 본 발명자가 고안한 새로운 오타 수정 방법에서는 사용자가 신규 문자열을 입력하고 수정 명령을 내리면, 입력된 신규 문자열을 사용자가 원하는 수정 목표 문자열로 인식하고, 신규 문자열과 이미 입력된 문자열들을 서로 비교해 이미 입력되어 있던 문자열들 중에 신규 문자열과 연관성이 높은 문자열을 수정 후보 문자열로 판단해 신규 문자열로 치환한다. 사용자가 직접 수정 명령을 내리는 방식 외에 시스템이 자동으로 사용자의 수정 의도를 파악하는 방식도 가능하다. 이러한 새로운 오타 수정 방법은 한국 등록특허 제10-1294558호로 등록되었다.In order to supplement this problem of the conventional automatic correction function, the inventor invented a completely new error correction method. In the new typo correcting method devised by the present invention, when a user inputs a new string and issues a modification command, the new string is recognized as a desired target string for modification, and the new string is already inputted by comparing the input string with each other. Among the existing strings, a string highly related to the new string is determined as a candidate candidate for modification and replaced with a new string. In addition to the user's direct modification command, the system can automatically determine the user's intention to modify. This new typo correction method is registered in Korea Patent Registration No. 10-1294558.
이와 같은 새로운 오타 수정 방법에서는 잘못 입력된 문자열을 사용자가 수정 의도를 가지고 새로 입력한 신규 문자열로 치환하기 때문에, 종래의 자동 수정 기능에 비해 사용자의 의도에 부합하는 오타 수정 기능을 제공할 수 있다. 이러한 오타 수정 방법은 사용자가 수정 의도를 가지고 새로 입력한 수정 목표 문자열과 이미 입력되어 있던 문자열들 사이의 연관성을 판단해 연관성이 높은 문자열을 치환하도록 작동하는 것이기 때문에, 문자열 사이의 연관성 판단의 정확도에 따라 오타 수정 기능의 정확성이 결정된다. In this new typo correcting method, the wrong input string is replaced with a new string newly input by the user with the intention of correcting, and thus, a typo correcting function corresponding to the user's intention can be provided as compared with the conventional automatic correction function. This method of correcting a typo is designed to replace the highly related string by judging the association between the newly entered modification target string with the intention of modification and the previously entered string. Therefore, the accuracy of the typo correction function is determined.
한국 등록특허 제10-1294558호의 명세서에 기재되어 있는 바와 같이, 연관성 판단 방법으로는 기존의 자동 수정 기능에서 사용자가 실제 입력한 단어와 라이브러리 상의 단어의 연관성을 판단하던 종래의 방식, 예컨대 자판에서 서로 이웃하는 문자들 또는 입력 순서가 뒤바뀐 문자들을 기반으로 연관성을 판단하는 방식이 사용 가능하다. 다만, 이러한 종래의 방식에서는 사용자에 의해 발생할 수 있는 다양한 오타 동작들을 종합적으로 고려함에 있어서 연관성 판단의 정량적인 수치화가 제대로 이루어지지 않았다. 또한, 사용자마다 다른 오타 입력 습관이 연관성 판단에 있어서 정량적으로 정확하게 고려되지 않았다. 나아가, 한국 등록특허 제10-1294558호의 오타 수정 방식에 따르면 이미 입력된 오타를 포함한 단어 전체를 다시 입력하지 않고 오타가 난 문자열만을 올바른 문자열로 치환하는 완전히 새로운 기능이 구현되는데, 기존의 연관성 판단 방법은 이러한 부분 문자열 간 연관성 판단의 특수성을 전혀 고려하지 않았기 때문에 한국 등록특허 제10-1294558호의 오타 수정 방식의 보다 정확한 구현을 위해서는 새로운 연관성 판단 방식이 필요하게 되었다.As described in the specification of Korean Patent No. 10-1294558, the association determination method is a conventional method of determining the association between a word actually input by a user and a word in a library in a conventional automatic correction function, such as in a keyboard. A method of determining association based on neighboring characters or characters whose input order is reversed may be used. However, in such a conventional method, the quantitative quantification of the correlation determination has not been properly performed in consideration of various typographical operations that may occur by the user. In addition, a typo input habit that differs from user to user is not considered quantitatively and accurately in determining association. Furthermore, according to the typographical modification method of Korean Patent No. 10-1294558, a completely new function is implemented to replace only the misspelled string with the correct string without retyping the entire word including the already entered typo. Has not considered any particularity of the association determination between the substrings, so a new association determination method is required for a more accurate implementation of the typos correction method of Korean Patent No. 10-1294558.
도1은 사용자의 수정 명령에 의해 입력된 문자열들 내에 포함되어 있는 오타를 새로 입력된 수정 목표 문자열로 수정하는 실시예를 도시한다. 도1에서 사용자는 Happy Easter everyone의 입력을 의도하였으나, 실제로 입력한 것은 Hsppy Easter wveryone이다. 사용자는 먼저 wveryone의 오류를 발견하고, 이를 수정하기 위하여 Hsppy Easter wveryone 이후에 한 칸을 띄우고 everyone을 입력한다. 그 이후 수정 명령을 내린다. 수정 명령은 다양한 형태로 실시될 수 있다. 장치 내에 수정 명령 버튼을 별도로 형성할 수도 있고, 모바일 장치를 살짝 흔들거나 키보드 영역을 상, 하, 좌, 우로 이동시키는 터치 동작을 수정 명령으로 인식하게 할 수도 있다. 어떠한 방식으로든 everyone의 입력 후에 수정 명령이 내려지면, 시스템은 everyone을 수정 목표 문자열로 인식하게 된다. 그 이후, 수정 목표 문자열인 everyone과 그 이전에 입력된 문자열들 사이의 연관성이 계산된다. 이미 입력된 문자열들 중 wveryone이 수정 목표 문자열인 everyone과 연관성이 높으므로 wveryone은 everyone으로 치환 입력되어, Hsppy Easter wveryone everyone은 Hsppy Easter everyone으로 수정된다. 구체적인 연관성 판단 방법에 대해서는 후술한다. 이 상태에서 사용자는 Hsppy의 오타를 추가로 발견하고 everyone에 한 칸을 띄우고 happy라는 올바른 문자열을 입력한 후 재차 수정 명령을 내린다. 그러면, happy가 수정 목표 문자열로 인식되고, 이미 입력된 문자열들과의 연관성이 계산된다. 계산결과, Hsppy가 happy와 연관성이 높이므로, Hsppy는 happy로 치환 입력되고, 그 과정에서 happy가 문장의 첫 단어임이 인식이 되면서 h가 대문자로 바뀌어 Hsppy Easter everyone은 Happy Easter everyone으로 입력된다. 이로써 수정 과정이 완료된다. 수정 목표 문자열을 그 이전에 입력된 어느 정도 범위의 문자열들과 대비하여 연관성을 계산할 것인지, 예컨대 이전 입력된 10 문자열과 대비할 것인지, 100 문자열과 대비할 것인지, 아니면 문서 전체의 문자열들과 대비할 것인지는 시스템의 환경에 따라 자유롭게 설정될 수 있다.FIG. 1 illustrates an embodiment of correcting a typo included in character strings input by a user's correction command with a newly input correction target character string. In FIG. 1, the user intends to input Happy Easter everyone, but actually inputs Hsppy Easter wveryone. The user first finds an error in the wveryone and puts a space after Hsppy Easter wveryone to fix it. After that, give a modify command. The modification command may be implemented in various forms. A modification command button may be separately formed in the device, or a touch action for gently shaking the mobile device or moving the keyboard area up, down, left, and right may be recognized as a modification command. If the modification command is issued after everyone's input in any way, the system recognizes everyone as the modification target string. After that, the association between the modification target string everyone and the previously entered strings is calculated. Since wveryone is highly related to everyone who is the target string to be modified, wveryone is replaced by everyone, and Hsppy Easter wveryone everyone is modified to Hsppy Easter everyone. A detailed association determination method will be described later. In this state, the user finds an additional typo in Hsppy, puts a space in everyone, enters the correct string happy, and issues the corrective command again. Then, happy is recognized as the modification target string, and the association with the strings already entered is calculated. As a result of the calculation, Hsppy is associated with happy, Hsppy is replaced by happy, and in the process, h is capitalized as happy is recognized as the first word of the sentence, and Hsppy Easter everyone is input as Happy Easter everyone. This completes the modification process. It is up to the system to determine whether the target string is modified against a range of previously entered strings, for example, against 10 previously entered strings, 100 strings, or strings throughout the document. It can be set freely according to the environment.
도2 내지 도6은 다양한 오타 발생 유형과 이에 따른 오타 수정 동작을 도시한다.2 through 6 illustrate various types of typographical errors and corresponding typo correcting operations.
도2는 문자열 내의 문자의 일부가 이웃한 자판의 문자로 잘못 입력된 경우를 도시한다. 도2에서 사용자는 everyone의 입력을 의도하였으나, 실제로 입력된 것은 wvwryone이다. 사용자가 wvwryone의 오류를 발견하고 이를 수정하기 위해 everyone을 입력한 다음 수정 명령을 내리게 되면, everyone은 수정 목표 문자열로 인식되고 이미 입력된 문자열들과 연관성이 계산된다. 이 때 everyone과 wveryone은 첫번째와 세번째 문자가 e인지 w인지에서만 차이가 있는데, e와 w는 자판에서 서로 이웃하여 배치된 입력키이므로 e로 입력되었어야 할 것이 w로 잘못 입력되었을 가능성이 높고, 따라서 wvwryone은 everyone과 연관성이 높은 수정 대상 문자열 후보로 선정되고, 수정 목표 문자열인 everyone로 수정되게 된다.Fig. 2 shows a case where a part of the characters in the character string is wrongly input as the characters of the neighboring keyboard. In FIG. 2, the user intended everyone's input, but actually entered is wvwryone. If the user finds an error in wvwryone, enters everyone to correct it, then issues a correction command, everyone is recognized as the target string to be corrected and the association is calculated with the strings already entered. At this time, everyone and wveryone differ only in whether the first and third characters are e or w. Since e and w are input keys placed adjacent to each other on the keyboard, it is highly likely that the input e must have been entered incorrectly as w. Therefore, wvwryone is selected as a candidate string for modification that is highly related to everyone, and is modified to everyone, the target string for modification.
도3은 문자열 내의 문자의 일부가 이웃하지 않은 자판의 문자로 잘못 입력된 경우를 도시한다. 도3에서 사용자는 everyone의 입력을 의도하였으나, 실제로 입력된 것은 everione이다. 사용자가 잘못 입력한 문자열(everione)과 실제 의도한 올바른 문자열(everyone)을 비교해 보면, 두 문자열은 다섯번째 문자가 i인지 y인지에서만 차이가 있음을 알 수 있다. 그러나, 도2와 같이 양 문자열에 상이하게 입력된 문자가 서로 이웃한 자판인 경우에만 연관성 높은 문자열로 판단하게 되면, 도3의 경우는 다섯번째 문자인 i와 y가 서로 이웃하지 않기 때문에 everione은 수정 목표 문자열인 everyone과 연관성 높은 문자열로 선정되지 못하고 오타는 수정되지 않게 된다.Fig. 3 shows a case where a part of the characters in the character string is wrongly input as the characters of the non-neighboring keyboard. In Fig. 3, the user intended everyone's input, but actually the input is everione. If you compare the string you entered incorrectly (everione) with the actual intended string (everyone), you can see that the two strings differ only in whether the fifth character is i or y. However, when it is determined that the characters are differently related to the two strings as shown in FIG. 2, only when the characters are adjacent to each other, the string is highly related. In FIG. 3, since the fifth characters i and y do not neighbor each other, everione It cannot be selected as a string that is highly related to the target string to be modified, and typos are not corrected.
본 발명은 도3과 같이 이웃하지 않은 자판의 문자가 잘못 입력된 경우도 연관성 판단에서 완전히 배제되지 않도록 하기 위해, 다양한 오타 수정 동작을 정의하고 이들 오타 수정 동작마다 각각 오타 수정 동작 점수를 부여한 다음, 이미 입력된 문자열을 새로 입력된 수정 목표 문자열로 수정하는데 필요한 오타 수정 동작 점수의 총합을 미리 설정된 소정의 임계값과 비교해 이미 입력된 문자열이 새로 입력된 수정 목표 문자열과 연관성이 높은 문자열인지를 판단하도록 구성된다. 구체적으로 본 발명의 실시예에서는 오타 수정 동작 점수의 총합이 소정의 임계값 이하인 경우 두 문자열이 서로 높은 연관성을 갖는 문자열에 해당하는 것으로 판단하도록 구성하고 있다. 예컨대, 본 실시예에서는 도2 및 도3과 같이 문자열 내에 있는 문자를 수정하는 동작 모두에 각각의 오타 수정 동작 점수를 부여하고 있다. 그런데, 도2와 같이 이웃한 자판의 경우에는 도3과 같은 이웃하지 않은 자판의 경우보다 오타가 발생할 가능성이 높다. 따라서 이러한 발생 가능성을 연관성 판단에 반영하기 위해 도3과 같이 이웃하지 않은 자판의 문자로 수정하는 경우에는 오타 수정 동작 점수가 도2의 오타 수정 동작에 부여되는 점수보다 높게 실시됨이 바람직할 것이다. 본 실시예에서는 도2의 오타 수정 동작에 5점의 점수를 부여하고, 도3의 오타 수정 동작에는 10점을 부여하도록 실시한다. 또한, 본 실시예에서는 이러한 오타 수정 동작 점수를 비교하는 기준값(오타 수정 동작 점수 임계값)을 15점으로 설정한다.The present invention defines various typo correcting actions and assigns a typo correcting operation score to each of these typo correcting actions so that even when characters of non-neighbory keyboards are incorrectly inputted as shown in FIG. Compare the sum of the typo correction action scores required to correct the already inputted string with the newly entered modification target string to determine whether the already inputted string is a string that is highly related to the newly entered modification target string. It is composed. Specifically, in the embodiment of the present invention, when the sum of the typo correcting operation scores is less than or equal to a predetermined threshold value, the two strings are configured to determine that they correspond to a string having a high correlation with each other. For example, in the present embodiment, as shown in Figs. 2 and 3, each typo correcting operation score is assigned to all of the operations for correcting the characters in the character string. However, in the case of the adjacent keyboard as shown in FIG. 2, a typo is more likely to occur than in the case of the non-neighbored keyboard shown in FIG. Therefore, in order to reflect this possibility in the correlation determination, when correcting the characters of the non-neighboring keyboard as shown in FIG. 3, it may be preferable that the error correction operation score is higher than the score given to the error correction operation of FIG. 2. In this embodiment, five points are given to the typo correcting operation of FIG. 2, and ten points are assigned to the typo correcting operation of FIG. In addition, in the present embodiment, a reference value (an error correction operation score threshold) for comparing such a mistake correction operation score is set to 15 points.
이러한 연관성 판단 방법에 따르면, 도2에서 wvwryone을 수정 목표 문자열인 everyone으로 수정하기 위해서는 첫번째와 세번째 문자인 w를 이웃한 자판의 문자인 e로 수정하는 동작이 필요하다. 첫번째 문자인 w를 e로 수정하는 동작에 5점, 세번째 문자인 w를 e로 수정하는 동작에 5점이 설정되어 있으므로, 이들의 합인 10점이 오타 수정 동작 점수가 된다. 여기서 10점의 오타 수정 동작 점수는 오타 수정 동작 점수 임계값인 15점보다 작은 값이므로, 두 문자열은 연관성이 높은 문자열로 판단되고 wvwryone은 수정 목표 문자열인 everyone의 수정 대상 문자열 후보로 선정된다. According to this association determination method, in order to modify wvwryone to everyone as the modification target string in FIG. 2, an operation of modifying the first and third letters w to the letters e of the neighboring keyboard is required. Since five points are set in the operation of modifying the first character w to e and five points are set in the operation of modifying the third character w to e, 10 points, the sum of these points, are a typo correcting operation score. Here, since the 10 typo correcting operation score is smaller than the 15 typo correcting threshold, the two strings are determined to be highly related strings, and wvwryone is selected as the candidate string for modification of everyone, the correct target string.
또한, 도3에서 everione을 everyone을 수정하기 위해서는 네번째 문자인 i를 y로 수정하는 단일의 오타 수정 동작이 필요하다. 이때, i와 y는 서로 이웃하지 않는 자판의 문자이므로 이러한 오타 수정 동작에는 10점의 오타 수정 동작 점수가 부여된다. 10점의 오타 수정 동작 점수는 오타 수정 동작 점수 임계값인 15점보다 작은 값이므로 두 문자열은 연관성이 높은 문자열로 판단되어 everione은 수정 목표 문자열인 everyone의 수정 대상 문자열 후보로 선정된다.In addition, in order to correct everione everyone in FIG. 3, a single typo correcting operation of modifying the fourth character i to y is required. At this time, since i and y are characters of keyboards that do not neighbor each other, the typo correcting operation score of 10 points is assigned to the typo correcting operation. Since the 10 typo correcting operation score is smaller than the 15 typo correcting threshold, the two strings are judged to be highly related strings, and everione is selected as the candidate string for modification of everyone, the correct target string.
도4는 문자열 내에 입력된 연속된 2개의 문자의 순서가 서로 뒤바뀌어 입력된 경우를 도시한다. 도4에서 사용자는 believe의 입력을 의도하였으나, 실제로 입력된 것은 beleive이다. 이 경우, 오타를 수정하기 위한 가장 간단한 동작은 네번째 문자인 e와 다섯번째 문자인 i의 위치를 서로 교환하는 것이다. 그러나 도2 및 도3과 관련해 설명한 오타 수정 동작에 따라 beleive를 believe로 수정하려면 네번째 문자인 e를 i로 변경하고 다섯번째 문자인 i를 e로 변경해야 하기 때문에, 서로 이웃하지 않는 자판의 문자를 2번 변경하게 되어 총 20점의 오타 수정 동작 점수가 부여되고, 20점의 오타 수정 동작 점수는 임계값인 15점보다 큰 값이므로 beleive는 수정 목표 문자열인 believe와 연관성이 없는 문자열로 판단되어 오타는 수정되지 않게 된다. 실제로 이와 같이 연속된 문자의 순서가 뒤바뀌어 입력되는 경우는 문자를 빠른 속도를 입력하는 과정에서 자주 발생하게 된다. 그럼에도 도2 및 도3과 관련해 설명한 연관성 판단 방법에 의해서만 문자열의 연관성을 판단하면, 도4와 같이 빈번하게 발생할 수 있는 오타가 수정되지 못하는 문제가 발생하게 된다.4 illustrates a case where two consecutive characters entered in a character string are inputted in reverse order. In FIG. 4, the user intends to input believe, but the input is actually beleive. In this case, the simplest action for correcting a typo is to swap the positions of the fourth character e and the fifth character i. However, to correct beleive to believe according to the typo correcting operation described with reference to FIGS. 2 and 3, the fourth character e must be changed to i and the fifth character i must be changed to e. A total of 20 typo correcting action scores are given to change twice, and since 20 typo correcting action scores are larger than the threshold value of 15 points, beleive is determined to be a string that is not related to believe, the correct target string. Will not be modified. In fact, when the sequence of letters is reversed and inputted in this way, characters are frequently generated during a high speed input process. Nevertheless, if the association of the character string is determined only by the association determination method described with reference to FIGS. 2 and 3, a typographical error that may occur frequently as shown in FIG. 4 may not be corrected.
본 실시예에서는 이러한 문제점을 해소하기 위해 문자열 내에 입력된 연속된 2개의 문자의 순서를 서로 교환하는 동작을 별도의 오타 수정 동작으로 정의하고, 이러한 동작에 8점의 오타 수정 동작 점수를 부여하고 있다. 도4에 도시된 예에서, beleive는 네번째 문자인 e와 다섯번째 문자인 i의 위치를 서로 교환하는 동작에 의해 수정 목표 문자열인 believe로 수정될 수 있으므로 8점의 오타 수정 동작 점수를 갖게 되고, 8점의 오타 수정 동작 점수는 임계값인 15보다 작은 값이므로 beleive는 수정 목표 문자열인 believe와 연관성이 높은 문자열로 판단되어 believe로 수정되게 된다.In this embodiment, in order to solve such a problem, the operation of exchanging the sequence of two consecutive characters inputted into the character string is defined as a separate typo correcting operation, and the operation is given a typo correcting operation score of 8 points. . In the example shown in Fig. 4, the beleive can be modified to believe as a modification target string by an operation of exchanging positions of the fourth character e and the fifth character i, so that the beleive has an error correction operation score of eight points. Since the error correction operation score of 8 points is smaller than the threshold value of 15, the beleive is determined to be a string highly related to the believe target string believe and is corrected to believe.
도5 및 도6은 입력된 문자열에 불필요한 문자가 삽입되거나 필요한 문자가 누락되어 오타가 발생한 경우를 도시한다. 도5는 god의 입력을 의도하였으나 실제로는 g와 d 사이에 불필요한 o이 하나 더 삽입되어 good로 입력된 경우이며, 도6은 good의 입력을 의도하였으나 의도치 않게 o가 하나 누락되어 god로 입력된 경우이다. 실제로 이러한 오류는 문자를 빠르게 입력하는 과정에서 쉽게 발생할 수 있다. 이 경우 잘못 기재된 문자열은 불필요하게 삽입된 o를 삭제하거나(도5의 경우) 의도치 않게 누락된 o를 추가하는(도6의 경우) 수정 동작을 통해 수정될 수 있다. 그러나, 도2 내지 도4에 도시된 오타 수정 동작('잘못된 문자의 교체'나 '이웃한 문자들의 사이의 위치 교환')은 기본적으로 새로 입력된 수정 목표 문자열과 동일한 길이의 문자열을 대상으로 연관성을 판단하는 것이기 때문에, 도5와 같이 불필요한 문자가 문자열에 삽입되거나 도6과 같이 필요한 문자가 문자열에서 누락되어 오타가 발생한 경우에는 이들 문자열을 수정 목표 문자열과 연관성 있는 문자열로 판단하지 못하게 된다.5 and 6 illustrate a case where a typo occurs because an unnecessary character is inserted into an input character string or a required character is missing. Figure 5 is intended to enter the god, but in reality the case is inserted into the good and one more unnecessary o is inserted between g and d, Figure 6 is intended to enter good, but unintentionally o missing one input to god If it is. In fact, these errors can easily occur during the fast text entry process. In this case, an incorrectly written string may be modified through a corrective operation of deleting an unnecessaryly inserted o (in case of FIG. 5) or adding an unintentionally missing o (in case of FIG. 6). However, the typo correcting operation shown in Figs. 2 to 4 ('replacement of wrong characters' or 'position exchange between neighboring characters') is basically associated with a string of the same length as the newly input correction target string. Therefore, when an unnecessary character is inserted into a character string as shown in FIG. 5 or a necessary character is missing from the character string as shown in FIG. 6, a typographic error cannot be determined as a character string associated with the target string to be modified.
이러한 문제점을 해소하기 위해, 본 실시예에서는 문자열에서 문자를 삭제하거나 문자열에 문자를 추가하는 동작을 별도의 오타 수정 동작으로 정의하고, 이러한 동작에 10점의 오타 수정 동작 점수를 부여하고 있다.In order to solve such a problem, in the present embodiment, an operation of deleting a character from a string or adding a character to the string is defined as a separate typo correcting operation, and the operation is given a typo correcting operation score of 10 points.
도5에 도시된 예에서, god는 첫번째 문자인 g와 마지막 문자인 d 사이에 o를 하나 추가하는 동작에 의해 good로 수정될 수 있고, 도6에서 good는 첫번재 문자인 g와 마지막 문자인 d 사이에 입력된 2개의 o 중에서 하나를 삭제하는 동작에 의해 god로 수정될 수 있다. 따라서 도5 및 도6에 도시된 수정 동작에는 각각 10점의 오타 수정 동작 점수가 부여된다. 여기서 10점의 오타 수정 동작 점수는 15점의 임계값보다 작은 값이므로, 이들 문자열은 수정 목표 문자열과 연관성이 높은 문자열로 판단되어 수정 대상 문자열 후보군으로 선정되게 된다.In the example shown in Figure 5, god can be modified to good by adding one o between the first character g and the last character d, and in Figure 6 good is the first character g and the last character Can be modified to god by deleting one of the two o's entered between d. Accordingly, the correction operation shown in FIGS. 5 and 6 is given a typo correction operation score of 10 points, respectively. Here, since the typo correcting operation score of 10 points is smaller than the threshold value of 15 points, these strings are determined to be strings highly related to the target string of modifications and are selected as candidate strings for modification.
이상 기술한 바와 같이, 본 발명은 (i) 다양한 오타 유형을 커버할 수 있도록 복수의 오타 수정 동작을 정의한 다음, (ii) 이들 각각의 오타 수정 동작마다 오타 수정 동작 점수를 부여하고, (iii) 이미 입력된 문자열을 새로 입력된 수정 목표 문자열로 수정하기 위해 필요한 오타 수정 동작 점수 합계의 최소값을 산출해, (iv) 이러한 오타 수정 동작 점수의 합계를 미리 정해둔 소정의 임계값과 비교함으로써 수정 목표 문자열과 높은 연관성을 갖는 수정 대상 문자열 후보를 선정하도록 구성되기 때문에, 사용자의 수정 의도를 보다 정확히 반영해 오타를 수정할 수 있는 오타 수정 방법을 제공할 수 있게 된다.As described above, the present invention defines (i) a plurality of typo correcting operations to cover various typo types, (ii) assigns a typo correcting operation score to each of these typo correcting operations, and (iii) Calculate the minimum value of the total typo correcting action score required to correct the already inputted string with the newly input corrected target string, and (iv) compare the sum of the typo correcting action scores with a predetermined threshold value. Since it is configured to select a candidate string for modification having a high correlation with the string, it is possible to provide an error correction method that can correct the typo by more accurately reflecting the user's intention to modify.
도7은 사용자가 입력된 문자열에 오류가 있음을 발견한 다음, 전체 문자열 내에 포함되는 일부 문자열만을 수정 목표 문자열로 입력해 오타를 수정하는 경우를 도시한다. 도7에서 사용자는 remember의 입력을 의도하였으나, 실제로 입력된 것은 renember이다. 이때, 빠르고 경제적으로 오타를 수정하려면, 올바른 전체 문자열을 수정 목표 문자열로 새로 입력하기보다는, 오타가 발생한 문자를 포함하는 부분 문자열만을 수정 목표 문자열로 입력해서 오타를 수정하는 것이 바람직하다. 즉, 도7에서 보다 경제적으로 오타를 수정하기 위해서는 전체 문자열인 remember를 수정 목표 문자열로 새로 입력하기보다 잘못 입력된 문자인 n(세번째 문자)을 포함하는 부분 문자열만 수정 목표 문자열로 입력하는 것이 바람직할 것이다(예컨대, rem, eme, mem, ...). 이와 같이 문자열 내의 일부 문자열만 수정 목표 문자열로 입력해 오타를 수정하고자 할 때, 사용자는 잘못 입력된 문자로부터 수정 목표 문자열을 입력하거나 잘못 입력된 문자까지의 문자열을 수정 목표 문자열로 입력하는 경우가 많을 것이다(예컨대, 도7의 실시예에서 mem이나 rem을 입력). 따라서 오타 수정 동작이 문자열의 시작 또는 끝 문자에 수행되는 경우에는 오타 수정 동작에 가중치를 부여할 필요가 있다. 본 실시예에서는 문자열의 시작 또는 끝 문자에 오타 수정 동작이 수행될 때, 변경 전후의 문자가 오타가 발생할 가능성이 낮은 '이웃하지 않는 자판의 문자'인 경우에는, 오타 수정 동작 점수에 5점의 가산점을 부가하도록 하고 있다. 이러한 방법에 따르면, 이미 입력된 문자열을 수정 목표 문자열로 수정하기 위해 이미 입력된 문자열의 시작 또는 끝 문자를 수정하는 경우에, (i) 수정 전후의 문자가 오타가 발생할 가능성이 낮은 '이웃하지 않는 자판의 문자'인 경우에는 오타 수정 동작 점수에 추가 가산점이 부여되게 되어 이러한 문자열은 수정 대상 문자열 후보군에서 쉽게 제외되게 되고, (ii) 오타가 발생할 가능성이 높은 '이웃한 자판의 문자'인 경우는 수정 대상 문자열 후보로서 유지될 확률을 높일 수 있다.FIG. 7 illustrates a case where a user finds an error in an input string, and then corrects a typo by inputting only a partial string included in the entire string as a modification target string. In FIG. 7, the user intends to input remember, but the input is actually renember. At this time, in order to correct a typo in a fast and economical manner, it is preferable to correct a typo by inputting only a partial string including a character in which a typo occurs as a target string, rather than newly inputting a correct entire string as a target string of correction. That is, in order to economically correct a typo in FIG. 7, it is preferable to input only the partial string including the n (third character), which is an incorrectly input character, as a correct target string rather than newly remembering the entire string as the modification target string. (E.g. rem, eme, mem, ...). As described above, when a user wants to correct a typo by inputting only some strings as a target string of correction, a user often enters a target string of characters from an incorrectly input character or a character string that is incorrectly input as a target string of correction. (Eg, enter mem or rem in the embodiment of FIG. 7). Therefore, when the typo correcting operation is performed at the beginning or end of the character string, it is necessary to give a weight to the typo correcting operation. In the present embodiment, when a typo correcting operation is performed on a character at the beginning or end of a string, when the character before and after the change is a 'character of a non-neighboring keyboard' that is less likely to cause a typo, the typo correcting score is 5 points. The addition point is added. According to this method, in the case of modifying the beginning or ending character of the already inputted string to modify the already inputted string into the modification target string, (i) the characters before and after the modification are not 'neighbors' which are less likely to cause a typo. 'Character of the keyboard', additional points are added to the typo correcting action score, and these strings are easily excluded from the candidate string for modification, and (ii) in the case of 'characters of the neighboring keyboard' that are more likely to make a typo. The probability of being retained as the candidate string for modification can be increased.
이하에서는 하나의 예시를 통해 본 발명에 따른 오타 수정 동작을 상세히 설명한다. 도7은 사용자가 remember의 입력을 의도하였으나, 실제로는 renember로 잘못 입력된 경우를 도시한다. 사용자는 먼저 renember의 오류를 발견하고, 이를 수정하기 위하여 renember 이후에 한 칸을 띄우고 mem을 입력한다. 그 이후 수정 명령을 내린다. 수정 명령이 내려지면, 시스템은 mem를 수정 목표 문자열로 인식하고, 수정 목표 문자열이 mem과 그 이전에 입력된 문자열 사이의 연관성이 계산된다.Hereinafter, a typo correcting operation according to the present invention will be described in detail with one example. 7 illustrates a case in which the user intends to input remember, but is actually incorrectly inputted as renember. The user first finds an error in renember, then puts a space after renember and enters mem to fix it. After that, give a modify command. When a modification command is issued, the system recognizes mem as the modification target string, and the association between the modification target string and mem and the string previously entered is calculated.
우선 새로 입력된 수정 목표 문자열인 mem과 동일한 길이의 문자열[ren, ene, nem, emb, mbe, ber]에 대해 연관성 계산이 시작된다. 각각의 문자열에 대한 오타 수정 동작 점수는 아래와 같다. 아래 표에 기재된 바와 같이, 수정 목표 문자열과 동일한 길이의 문자열 가운데 오타 수정 동작 점수 임계값(15점) 이하의 오타 수정 동작 점수를 갖는 것은 nem밖에 없다. 따라서 nem만 수정 대상 문자열 후보로 선정된다. First, the association calculation is started on the string [ren, ene, nem, emb, mbe, ber] of the same length as mem, the newly modified target string. The typo correcting operation score for each string is as follows. As shown in the table below, only nem has a typo correcting operation score below the typo correcting operation score threshold (15 points) among the strings having the same length as the correcting target string. Therefore, only nem is selected as the candidate string for modification.
표 1 비교 대상 문자열 | 수정 목표 문자열 | 오타 수정 동작 점수 |
ren | mem | (1) 첫번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(2) 세번째 문자를 이웃한 자판의 문자로 수정: 5점(3) 시작 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점오타 수정 동작 점수: 20점
|
ene | mem | (1) 첫번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(2) 두번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(3) 세번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(4) 시작 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점(5) 끝 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점오타 수정 동작 점수: 40점
|
nem | mem | (1) 첫번째 문자를 이웃한 자판의 문자로 수정: 5점오타 수정 동작 점수: 5점
|
emb | mem | (1) 첫번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(2) 두번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(3) 세번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(4) 시작 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점(5) 끝 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점오타 수정 동작 점수: 40점
|
mbe | mem | (1) 두번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(2) 세번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(3) 끝 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점오타 수정 동작 점수: 25점
|
ber | mem | (1) 첫번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(2) 세번째 문자를 이웃하지 않은 자판의 문자로 수정: 10점(3) 시작 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점(4) 끝 문자를 이웃하지 않은 자판의 문자로 수정: 가산점 5점오타 수정 동작 점수: 30점
|
Table 1 String to compare | Modification goal string | Typo Correction Behavior Score |
ren | mem | (1) Modify the first character to the character of a non-neighboring keyboard: 10 points (2) Modify the third character to the character of a neighboring keyboard: 5 points Point Correction: 20 points |
ene | mem | (1) Modify the first character to the character of the non-neighbors keyboard: 10 points (2) Modify the second character to the character of the non-neighbors keyboard: 10 points Point (4) Correct the start character to the character of a non-neighboring keyboard: 5 additional points (5) Modify the end character to the character of the non-neighbored keyboard: 5 additional points Correct typos |
nem | mem | (1) Correct the first letter to the letters of the neighboring keyboard: 5 typo Corrective action score: 5 points |
emb | mem | (1) Modify the first character to the character of the non-neighbors keyboard: 10 points (2) Modify the second character to the character of the non-neighbors keyboard: 10 points Point (4) Correct the start character to the character of a non-neighboring keyboard: 5 additional points (5) Modify the end character to the character of the non-neighbored keyboard: 5 additional points Correct typos |
mbe | mem | (1) Modify the second character to the character of a non-neighboring keyboard: 10 points (2) Modify the third character to the character of a non-neighboring keyboard: 10 points 5 typo Correction score: 25 |
ber | mem | (1) Modify the first letter to the text of a non-neighboring keyboard: 10 points (2) Modify the third letter to the text of a non-neighboring keyboard: 10 points Correction of 5 (4) end characters to characters of non-neighboring keyboards: 5 additional points Correction of typos Correction score: 30 |
다음으로 수정 목표 문자열과 다른 길이의 문자열(예컨대, re, rene, ...)을 기준으로 전술한 '불필요한 문자의 삭제'나 '필요한 문자의 추가' 방법으로 오타를 수정하는 방법들에 대해 판단한다. 본 예시의 경우에는 이러한 방법에 의한 수정 동작 중에서 오타 수정 동작 점수가 15 이하인 수정 동작이 존재하지 않는다. 결국, 본 예시에서는, nem만이 mem과 연관성이 높은 문자열로 판단되게 되고, nem은 mem으로 치환되어 renember는 remember로 수정되게 된다. 이와 같이, 본 발명에서는 수정 목표 문자열과 같은 길이의 문자열만 연관성 비교하지 않고, 길이가 한자 이상 차이가 나는 문자열들 간 비교도 실행하므로 연관성 판단의 정확성이 보다 개선된다.Next, judging the methods of correcting a typo by the above-mentioned 'delete unnecessary characters' or 'add necessary characters' based on the target string and a string having a different length (for example, re, rene, ...). do. In this example, there is no correction operation having a typo correction operation score of 15 or less among the correction operations by this method. As a result, in this example, only nem is determined to be a string highly related to mem, nem is replaced with mem, and renember is modified to remember. As described above, the present invention does not compare only the strings having the same length as the modification target string, but also compares the strings having different lengths by one or more characters, thereby improving the accuracy of the association judgment.
한편, 동일한 사용자는 일반적으로 유사한 유형의 오타를 반복해서 발생시키는 경우가 많다. 따라서, 사용자가 오타 수정 기능에 보다 만족감을 느낄 수 있도록 하기 위해서는, 장치 내에서 발생한 오타 수정 동작을 기억해 두고, 오타 수정 동작의 발생 빈도에 따라 오타 수정 동작 점수를 자동으로 조정해서 사용자에게 커스터마이징 되도록 구성하는 것이 바람직하다. 이러한 구성에 의하면, 사용자에 의해 자주 발생하는 오타 수정 동작에는 낮은 동작 점수가 부여되고 사용자에 의해 자주 발생하지 않는 오타 수정 동작에는 높은 동작 점수가 부여되어, 사용자에 의해 자주 발생하는 오타의 유형에 맞는 문자열이 수정 대상 문자열 후보군으로 쉽게 선정될 수 있게 되고, 사용자는 오타 수정 기능에 충분한 만족감을 느낄 수 있게 된다.On the other hand, the same user generally generates a similar type of typo repeatedly. Therefore, in order to allow the user to feel more satisfied with the typo correction function, the typo correction operation that is generated in the device is memorized, and the typos correction operation score is automatically adjusted according to the frequency of occurrence of the typo correction operation to be customized for the user. It is desirable to. According to this configuration, a low operation score is given to a typo correcting operation that is frequently generated by the user, and a high operation score is given to a typo correcting operation that is not frequently generated by the user. The character string can be easily selected as the candidate character string to be modified, and the user can be sufficiently satisfied with the error correction function.
또한, 각각의 오타 수정 동작에 부여되는 오타 수정 동작 점수는 사용자가 직접 설정 및 수정할 수 있도록 구성하는 것이 바람직하다. 도8은 사용자가 오타 수정 동작 점수를 설정 및 수정할 수 있도록 구성된 '설정' 화면의 일례를 도시한다. 사용자는 도8에 도시된 것과 같은 설정 화면에서 손가락 터치 등을 이용해 각각의 오타 수정 동작에 대한 오타 수정 동작 점수를 자신의 기호에 맞게 조정할 수 있다. 이러한 구성에 의하면 사용자는 자신에게 가장 적합한 연관성 판단 방법을 설정할 수 있게 되어 오타 수정 기능에 보다 큰 만족감을 느낄 수 있게 된다.In addition, it is preferable to configure a typo correcting operation score that is assigned to each typo correcting operation so that a user can directly set and correct it. 8 shows an example of a 'setting' screen configured to allow a user to set and correct a typo correcting operation score. The user may adjust a typo correcting operation score for each typo correcting operation to his / her preference by using a finger touch or the like on the setting screen as shown in FIG. 8. According to such a configuration, the user can set a method of determining the most appropriate association, so that the user can feel more satisfied with the error correction function.
이상의 실시예들은 본 발명을 설명하기 위해 예시적인 목적으로 제시된 것일 뿐이며, 본 발명을 제한하거나 한정하는 것이 아니다. 본 발명이 적용되는 기술 분야의 통상의 지식을 가진 자라면, 본 발명의 범위를 벗어나지 않는 범위 내에서 본 발명에 다양한 변형 및 수정을 가할 수 있다. The above embodiments are presented for illustrative purposes only to illustrate the present invention, but do not limit or limit the present invention. Those skilled in the art to which the present invention is applied can make various changes and modifications to the present invention without departing from the scope of the present invention.