KR20190115320A - Mobile apparatus and method for providing similar word corresponding to input word - Google Patents

Mobile apparatus and method for providing similar word corresponding to input word Download PDF

Info

Publication number
KR20190115320A
KR20190115320A KR1020180038219A KR20180038219A KR20190115320A KR 20190115320 A KR20190115320 A KR 20190115320A KR 1020180038219 A KR1020180038219 A KR 1020180038219A KR 20180038219 A KR20180038219 A KR 20180038219A KR 20190115320 A KR20190115320 A KR 20190115320A
Authority
KR
South Korea
Prior art keywords
word
cluster
similar
words
similarity
Prior art date
Application number
KR1020180038219A
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 KR1020180038219A priority Critical patent/KR20190115320A/en
Priority to PCT/KR2018/004622 priority patent/WO2019194342A1/en
Publication of KR20190115320A publication Critical patent/KR20190115320A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Abstract

Disclosed are a mobile apparatus for providing a similar word corresponding to an inputted word based on clustering of words in a vector space, and a method thereof. The method comprises the following steps: determining a cluster to which an input word belongs among a plurality of clusters generated by clustering words in a vector space; searching for a first similar word corresponding to the input word in the determined cluster, based on a pre-calculated similarity between words included in the determined cluster; searching for a second similar word corresponding to the input word in the other cluster based on the similarity between the words included in the cluster other than the determined cluster and the input word; and providing a similar word corresponding to the input word based on the searched first similar word and the searched second similar word.

Description

입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치 및 방법{Mobile apparatus and method for providing similar word corresponding to input word}Mobile apparatus and method for providing similar words corresponding to the input word {mobile apparatus and method for providing similar word corresponding to input word}

입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치 및 방법에 관한 것이다.The present invention relates to a mobile device and a method for providing a similar word corresponding to an input word.

스마트폰과 같은 모바일 장치의 보급이 보편화됨에 따라, 모바일 장치에서 사용자의 편의성을 증대시킬 수 있는 방법들에 대한 관심이 고조되고 있다. As the spread of mobile devices such as smart phones is becoming more common, there is a growing interest in methods that can increase user convenience in mobile devices.

모바일 장치는 사용자의 입력에 대해 소정의 프로세싱 과정을 통해 사용자가 원하는 방향의 출력을 제공함으로써, 사용자의 만족감을 높이고, 사용자 친화적인 제품이 될 수 있다.The mobile device can provide a user's satisfaction by providing an output in a direction desired by the user through a predetermined processing process for the user's input, and can be a user-friendly product.

벡터 공간상의 단어들에 대한 클러스터링에 기반하여 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치 및 방법을 제공하는 것이다.The present invention provides a mobile device and method for providing similar words corresponding to input words based on clustering of words in a vector space.

제 1 측면에 따른 입력된 단어에 대응되는 유사단어를 제공하는 방법은, 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 입력된 단어가 속한 클러스터를 결정하는 단계; 상기 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 상기 결정된 클러스터에서 상기 입력된 단어에 대응되는 제 1 유사 단어를 검색하는 단계; 상기 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 상기 입력된 단어 간의 유사도에 기초하여, 상기 다른 클러스터에서 상기 입력된 단어에 대응되는 제 2 유사 단어를 검색하는 단계; 및 상기 검색된 제 1 유사 단어와 상기 검색된 제 2 유사 단어에 기초하여, 상기 입력된 단어에 대응되는 유사 단어를 제공하는 단계;를 포함할 수 있다.A method of providing similar words corresponding to an input word according to the first aspect may include: determining a cluster to which an input word belongs among a plurality of clusters generated by clustering words in a vector space; Searching for a first similar word corresponding to the input word in the determined cluster, based on a pre-computed similarity between words included in the determined cluster; Searching for a second similar word corresponding to the input word in the other cluster based on a similarity between the words included in a cluster other than the determined cluster and the input word; And providing a similar word corresponding to the input word based on the searched first similar word and the searched second similar word.

제 2 측면에 따른 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치는, 사용자 인터페이스 장치; 컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및 상기 컴퓨터 실행가능 명령어를 실행함으로써, 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 상기 사용자 인터페이스 장치를 통해 입력된 단어가 속한 클러스터를 결정하고, 상기 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 상기 결정된 클러스터에서 상기 입력된 단어에 대응되는 제 1 유사 단어를 검색하고, 상기 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 상기 입력된 단어 간의 유사도에 기초하여, 상기 다른 클러스터에서 상기 입력된 단어에 대응되는 제 2 유사 단어를 검색하여, 상기 검색된 제 1 유사 단어와 상기 검색된 제 2 유사 단어에 기초하여, 상기 입력된 단어에 대응되는 유사 단어를 제공하는 프로세서;를 포함할 수 있다.A mobile device for providing similar words corresponding to an input word according to the second aspect includes a user interface device; Memory for storing computer executable instructions; And determining a cluster to which a word input through the user interface device belongs, from among a plurality of clusters generated by clustering words on a vector space by executing the computer executable instructions, and preliminarily between the words included in the determined cluster. Based on the calculated similarity, searching for a first similar word corresponding to the input word in the determined cluster, and based on a similarity between the input words and words included in a cluster other than the determined cluster, A processor that searches for a second similar word corresponding to the input word in another cluster and provides a similar word corresponding to the input word based on the searched first similar word and the searched second similar word; It may include.

제 3 측면에 따른 프로세서에 의해 실행 가능한 명령어들로 저장된 컴퓨터 판독 가능 저장매체는, 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 입력된 단어가 속한 클러스터를 결정하는 명령어들; 상기 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 상기 결정된 클러스터에서 상기 입력된 단어에 대응되는 제 1 유사 단어를 검색하는 명령어들; 상기 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 상기 입력된 단어 간의 유사도에 기초하여, 상기 다른 클러스터에서 상기 입력된 단어에 대응되는 제 2 유사 단어를 검색하는 명령어들; 및 상기 검색된 제 1 유사 단어와 상기 검색된 제 2 유사 단어에 기초하여, 상기 입력된 단어에 대응되는 유사 단어를 제공하는 명령어들;을 포함할 수 있다.A computer-readable storage medium stored as instructions executable by a processor according to the third aspect, includes: instructions for determining a cluster to which an input word belongs among a plurality of clusters generated by clustering words in vector space; Instructions for retrieving a first similar word corresponding to the input word in the determined cluster based on a pre-computed similarity between words included in the determined cluster; Instructions for searching for a second similar word corresponding to the input word in the other cluster based on a similarity between the words included in a cluster other than the determined cluster and the input word; And instructions for providing a similar word corresponding to the input word based on the searched first similar word and the searched second similar word.

도 1은 일 실시예에 따른 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치의 구성을 나타낸 블록도이다.
도 2는 일 실시예에 따라 벡터 공간상의 단어들에 대한 클러스터링에 기초하여 입력된 단어에 대응되는 유사단어를 검색하는 과정을 설명하기 위한 도면이다.
도 3은 일 실시예에 따라 클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 입력된 단어에 대응되는 유사단어를 제공하는 방법을 나타낸 흐름도이다.
도 5는 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우, 제 1 유사 단어 단어를 검색하는 단계와 제 2 유사 단어를 검색하는 단계에 대한 상세 흐름도이다.
도 6은 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터에서 제 1 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.
도 7은 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터가 아닌 다른 클러스터에서 제 2 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.
도 8은 일 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우, 제 1 유사 단어 단어를 검색하는 단계와 제 2 유사 단어를 검색하는 단계에 대한 상세 흐름도이다.
도 9는 일 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터에서 제 1 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.
도 10은 일 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터가 아닌 다른 클러스터에서 제 2 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.
도 11은 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 알고리즘의 프로그램 코드를 나타낸 도면이다.
도 12는 다른 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 알고리즘의 프로그램 코드를 나타낸 도면이다.
1 is a block diagram illustrating a configuration of a mobile device that provides a similar word corresponding to an input word, according to an exemplary embodiment.
FIG. 2 is a diagram for describing a process of searching for a similar word corresponding to an input word based on clustering of words in a vector space, according to an exemplary embodiment.
FIG. 3 is a diagram for describing a similarity matrix indicating a precomputed similarity between words included in a cluster, according to an exemplary embodiment.
4 is a flowchart illustrating a method of providing a similar word corresponding to an input word, according to an exemplary embodiment.
5 is a detailed flowchart of searching for a first similar word word and searching for a second similar word when searching for similar words based on a range corresponding to the similarity according to an embodiment.
6 is a diagram for describing a process of searching for a first similar word in a cluster to which an input word belongs, when searching for similar words based on a range corresponding to the similarity, according to an embodiment.
FIG. 7 is a diagram for describing a process of searching for a second similar word in a cluster other than the cluster to which the input word belongs, when searching for a similar word based on a range corresponding to the similarity according to an embodiment.
8 is a detailed flowchart of searching for a first similar word word and searching for a second similar word when searching for similar words based on a predetermined number according to a similarity ranking, according to an exemplary embodiment.
FIG. 9 is a diagram for describing a process of searching for a first similar word in a cluster to which an input word belongs, when searching for similar words based on a predetermined number according to a similarity rank, according to an exemplary embodiment.
FIG. 10 is a diagram for describing a process of searching for a second similar word in a cluster other than the cluster to which the input word belongs, when searching for similar words based on a predetermined number according to the similarity rank, according to an exemplary embodiment. to be.
FIG. 11 illustrates a program code of an algorithm for searching for a similar word based on a range corresponding to the similarity, according to an exemplary embodiment.
12 is a diagram of a program code of an algorithm for searching for similar words based on a predetermined number according to a similarity ranking according to another embodiment.

이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다. Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. The embodiments described below may be embodied in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of matters well known to those skilled in the art to which the following embodiments belong will be omitted.

한편, 본 명세서에서 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.On the other hand, when a certain configuration "includes" another configuration in this specification, unless otherwise stated, it means that it may further include other configurations other than the other configuration.

본 실시예들은 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치 및 방법에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.The embodiments of the present invention relate to a mobile device and a method for providing a similar word corresponding to an input word, and detailed descriptions of the matters well known to those of ordinary skill in the art to which the following embodiments belong are omitted. do.

도 1은 일 실시예에 따른 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치(100)의 구성을 나타낸 블록도이다.1 is a block diagram illustrating a configuration of a mobile device 100 that provides similar words corresponding to an input word, according to an exemplary embodiment.

도 1을 참조하면, 일 실시예에 따른 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치(100)는, 메모리(110), 프로세서(120), 사용자 인터페이스 장치(130)를 포함할 수 있다. 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.Referring to FIG. 1, a mobile device 100 that provides a similar word corresponding to an input word according to an embodiment may include a memory 110, a processor 120, and a user interface device 130. . Those skilled in the art will appreciate that other general purpose components may be further included in addition to the components illustrated in FIG. 1.

모바일 장치(100)는 OS(Operating System)를 탑재하고, 모바일 장치(100)에 설치된 애플리케이션을 실행하여, 사용자 입력에 따른 처리 결과를 디스플레이할 수 있는 전자 장치로서, 스마트폰, 태블릿 PC, 랩톱 컴퓨터 등이 될 수 있다. 애플리케이션은 애플리케이션 프로그램 또는 모바일 애플리케이션을 통칭하는 용어이다. 사용자는 모바일 장치(100)에 설치되어 있는 다양한 종류의 애플리케이션들 중에서 실행하고자 하는 애플리케이션을 선택하여 애플리케이션을 실행시킬 수 있다. The mobile device 100 includes an operating system (OS) and executes an application installed in the mobile device 100 to display a processing result according to a user input. The mobile device 100 is a smart phone, a tablet PC, or a laptop computer. And so on. Application is a term that collectively refers to an application program or a mobile application. The user may select an application to be executed from various types of applications installed in the mobile device 100 to execute the application.

모바일 장치(100)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 모바일 장치(100)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 모바일 장치(100)는 통신 모듈을 통해 서버(200)와 연결되어 신호 또는 데이터를 송수신할 수 있다. 예를 들어 모바일 장치(100)는 워드 임베딩(Word embedding) 모델을 업데이트 주기에 따라 서버(200)로부터 수신할 수 있다.The mobile device 100 may perform wired or wireless communication with another device or a network. To this end, the mobile device 100 may include a communication module supporting at least one of various wired and wireless communication methods. The mobile device 100 may be connected to the server 200 through a communication module to transmit and receive signals or data. For example, the mobile device 100 may receive a word embedding model from the server 200 according to an update cycle.

메모리(110)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 예를 들어, 메모리(110)는 애플리케이션, 애플리케이션 프로그래밍 인터페이스(API) 등과 같은 프로그램 및 다양한 종류의 데이터를 저장할 수 있다. The memory 110 may store software and / or a program. For example, the memory 110 may store an application, a program such as an application programming interface (API), and the like, and various kinds of data.

프로세서(120)는 메모리(110)에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 메모리(110)에 저장할 수도 있다. 또한, 프로세서(120)는 메모리(110)에 설치된 프로그램을 실행할 수도 있다. 또한, 프로세서(120)는 외부로부터 수신한 애플리케이션을 메모리(110)에 설치할 수도 있다.The processor 120 may access and use data stored in the memory 110 or store new data in the memory 110. In addition, the processor 120 may execute a program installed in the memory 110. In addition, the processor 120 may install an application received from the outside in the memory 110.

프로세서(120)는 적어도 하나의 프로세싱 모듈을 포함할 수 있다. 프로세서(120)는 사용자 인터페이스 장치(130)를 통해 수신한 사용자 입력에 대응되는 동작을 수행하도록 모바일 장치(100)에 포함된 다른 구성들을 제어할 수 있다. The processor 120 may include at least one processing module. The processor 120 may control other components included in the mobile device 100 to perform an operation corresponding to the user input received through the user interface device 130.

사용자 인터페이스 장치(130)는 사용자로부터 사용자 입력 등을 수신할 수 있다. 사용자 인터페이스 장치(130)는 모바일 장치(100)에서 애플리케이션 실행 결과, 사용자 입력에 대응되는 처리 결과, 모바일 장치(100)의 상태 등의 정보를 디스플레이할 수 있다. 사용자 인터페이스 장치(130)는 사용자로부터 입력을 수신하거나 모바일 장치(100)로부터 출력을 제공하기 위한 하드웨어 유닛들을 포함할 수 있으며, 이들을 구동하기 위한 전용 소프트웨어 모듈을 포함할 수도 있다. 예를 들어, 사용자 인터페이스 장치(130)는 터치 스크린이 될 수 있으나, 이에 한정되지 않는다. The user interface device 130 may receive a user input from a user. The user interface device 130 may display information such as an application execution result, a processing result corresponding to a user input, a state of the mobile device 100, and the like in the mobile device 100. The user interface device 130 may include hardware units for receiving input from a user or providing output from the mobile device 100, and may include a dedicated software module for driving them. For example, the user interface device 130 may be a touch screen, but is not limited thereto.

메모리(110)는 프로세서(120)에 의해 실행 가능한 명령어들을 저장할 수 있다. 프로세서(120)는 메모리(110)에 저장된 명령어들을 실행할 수 있다. 프로세서(120)는 사용자 입력에 따라 모바일 장치(100)에 설치된 애플리케이션을 실행할 수 있다. The memory 110 may store instructions executable by the processor 120. The processor 120 may execute instructions stored in the memory 110. The processor 120 may execute an application installed in the mobile device 100 according to a user input.

프로세서(120)는 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 사용자 인터페이스 장치(130)를 통해 입력된 단어가 속한 클러스터를 결정할 수 있다. 프로세서(120)는 입력된 단어가 속한 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 입력된 단어가 속한 클러스터에서 입력된 단어에 대응되는 제 1 유사 단어를 검색할 수 있다. 프로세서(120)는 입력된 단어가 속한 클러스터가 아닌 다른 클러스터에 포함된 단어들과 입력된 단어 간의 유사도에 기초하여, 입력된 단어가 속한 클러스터가 아닌 다른 클러스터에서 입력된 단어에 대응되는 제 2 유사 단어를 검색할 수 있다. 프로세서(120)는 검색된 제 1 유사 단어와 검색된 제 2 유사 단어에 기초하여, 입력된 단어에 대응되는 유사 단어를 제공할 수 있다. 프로세서(120)는 입력된 단어에 대응되는 유사 단어를 사용자 인터페이스 장치(130)를 통해 디스플레이하거나, 다른 연산 작업을 수행하는 프로세싱 모듈에 전달할 수 있다. The processor 120 may determine a cluster to which a word input through the user interface device 130 belongs, from among a plurality of clusters generated by clustering words on a vector space. The processor 120 may search for a first similar word corresponding to the input word in the cluster to which the input word belongs, based on a pre-computed similarity between the words included in the cluster to which the input word belongs. The processor 120 may further include a second similarity corresponding to a word input from a cluster other than the cluster to which the input word belongs, based on a similarity between the words entered in a cluster other than the cluster to which the input word belongs. You can search for words. The processor 120 may provide a similar word corresponding to the input word based on the searched first similar word and the searched second similar word. The processor 120 may display a similar word corresponding to the input word through the user interface device 130 or transmit it to a processing module that performs another operation.

한편, 프로세서(120)는 입력된 단어에 대응되는 유사 단어를 검색하는 다양한 방식에 따라 동작할 수 있으며, 이에 대해서는 이하 상세하게 설명한다.Meanwhile, the processor 120 may operate according to various methods of searching for similar words corresponding to the input word, which will be described in detail below.

도 2는 일 실시예에 따라 벡터 공간상의 단어들에 대한 클러스터링에 기초하여 입력된 단어에 대응되는 유사단어를 검색하는 과정을 설명하기 위한 도면이다.FIG. 2 is a diagram for describing a process of searching for a similar word corresponding to an input word based on clustering of words in a vector space, according to an exemplary embodiment.

단어를 벡터화하여 표현하는 워드 임베딩(Word embedding) 과정을 통해, 단어들이 벡터 공간상에 있는 것으로 처리될 수 있다. 이때, 워드 임베딩을 위한 워드 임베딩 모델로서 워드투벡(Word2Vec, Word embedding to Vector) 모델이 이용될 수 있다. 한편, 이와 같은 워드 임베딩 모델을 이용하면, 미리 정해진 단어군들에 대응되는 벡터들이 단어-벡터 데이터베이스에 미리 마련될 수 있다.Through the word embedding process of vectorizing words, the words may be treated as being in vector space. In this case, a word embedding to vector (Word2Vec) model may be used as a word embedding model for word embedding. Meanwhile, using the word embedding model, vectors corresponding to predetermined word groups may be prepared in the word-vector database.

상호 유사한 관계에 있는 단어들의 벡터들은 벡터 공간상에 가까운 위치에 분포할 수 있다. 다시 말해서, 벡터 공간상에서 서로 가까운 거리에 있는 벡터들은 상호 간 유사도가 높은 유사 단어들일 수 있다. 따라서, 벡터 공간상의 벡터들은 벡터들 위치 분포 또는 단어들 간의 유사도에 기초하여 몇몇의 그룹으로 분류되는 클러스터링 작업이 수행될 수 있다. 각 클러스터에 포함된 단어들의 경우, 미리 상호 간의 유사도를 계산해둠으로써, 클러스터 내부의 유사 단어 검색을 신속히 수행할 수 있고, 메모리 사용을 크게 줄일 수 있다.Vectors of words having similar relations may be distributed at positions close to the vector space. In other words, vectors that are close to each other in vector space may be similar words having high similarity with each other. Thus, clustering operations may be performed in which vectors in vector space are classified into several groups based on the vector position distribution or the similarity between words. In the case of words included in each cluster, the similarity between each other is calculated in advance, so that the similar word search in the cluster can be performed quickly and the memory usage can be greatly reduced.

한편, 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들이 있는 경우, 입력된 단어에 대한 유사 단어를 검색하고자 하면, 도 2에 도시된 바와 같이, 입력된 단어가 속한 클러스터부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터 순서로 검색하는 것이 적절할 수 있다. 또한, 입력된 단어와의 유사도가 극히 낮은 단어들을 포함하는 클러스터라고 예상되는 경우에 대해서는, 유사 단어 검색을 하지 않는 것이 적절할 수 있다.Meanwhile, when there are a plurality of clusters generated by clustering words in a vector space, and if a similar word for the input word is to be searched, as shown in FIG. 2, the input word belongs to the cluster to which the input word belongs. It may be appropriate to search in a cluster order other than the cluster. In addition, it may be appropriate not to perform a similar word search for a case where it is expected that the cluster includes words having extremely low similarity with the input word.

도 3은 일 실시예에 따라 클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 설명하기 위한 도면이다.FIG. 3 is a diagram for describing a similarity matrix indicating a precomputed similarity between words included in a cluster, according to an exemplary embodiment.

앞서 도 2에서 설명한 바와 같이, 입력된 단어에 대한 유사 단어를 검색하고자 하는 경우, 입력된 단어가 속한 클러스터에 포함된 단어들부터 입력된 단어와의 유사도를 확인해 볼 수 있다. 이때, 벡터 공간상의 단어들을 클러스터링하는 과정에서 생성해 놓은, 클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스가 이용될 수 있다. 도 3에서는 유사도가 높은 단어들일 수록 낮은 값을 가지고, 유사도가 낮은 단어들일수록 높은 값을 가지는 유사도 매트릭스를 도시하였으나, 이에 한정되는 것은 아니다.As described above with reference to FIG. 2, when a similar word for the input word is to be searched, the similarity with the input word may be checked from words included in the cluster to which the input word belongs. In this case, a similarity matrix representing a precomputed similarity between the words included in the cluster generated in the process of clustering the words in the vector space may be used. In FIG. 3, the similarity matrix has a lower value as words having high similarity and a higher value as words having low similarity, but is not limited thereto.

도 4는 일 실시예에 따른 입력된 단어에 대응되는 유사단어를 제공하는 방법을 나타낸 흐름도이다.4 is a flowchart illustrating a method of providing a similar word corresponding to an input word, according to an exemplary embodiment.

410 단계에서, 모바일 장치(100)는 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 입력된 단어가 속한 클러스터를 결정할 수 있다.In operation 410, the mobile device 100 may determine a cluster to which an input word belongs among a plurality of clusters generated by clustering words on a vector space.

420 단계에서, 모바일 장치(100)는 입력된 단어가 속한 클러스터로 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 결정된 클러스터에서 입력된 단어에 대응되는 제 1 유사 단어를 검색할 수 있다.In operation 420, the mobile device 100 may search for the first similar word corresponding to the word input in the determined cluster, based on a pre-computed similarity between the words included in the cluster determined as the cluster to which the input word belongs. have.

430 단계에서, 모바일 장치(100)는 입력된 단어가 속한 클러스터로 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 입력된 단어 간의 유사도에 기초하여, 다른 클러스터에서 입력된 단어에 대응되는 제 2 유사 단어를 검색할 수 있다.In operation 430, the mobile device 100 based on a similarity between the words included in another cluster and the input word other than the cluster determined as the cluster to which the input word belongs, the second similarity corresponding to the word input in another cluster. You can search for words.

440 단계에서, 모바일 장치(100)는 검색된 제 1 유사 단어와 검색된 제 2 유사 단어에 기초하여, 입력된 단어에 대응되는 유사 단어를 제공할 수 있다.In operation 440, the mobile device 100 may provide a similar word corresponding to the input word based on the searched first similar word and the searched second similar word.

도 5는 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우, 제 1 유사 단어 단어를 검색하는 단계와 제 2 유사 단어를 검색하는 단계에 대한 상세 흐름도이다.5 is a detailed flowchart of searching for a first similar word word and searching for a second similar word when searching for similar words based on a range corresponding to the similarity according to an embodiment.

510 단계에서, 모바일 장치(100)는 클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 이용하여, 입력된 단어가 속한 클러스터로 결정된 클러스터에 포함된 단어들 중에서 입력된 단어로부터 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위(허용치) 내의 상기 제 1 유사 단어를 검색할 수 있다. In operation 510, the mobile device 100 uses a similarity matrix representing a pre-computed similarity among words included in the cluster to determine whether the input word is similar to the input word among words included in the cluster determined as the cluster to which the input word belongs. The first similar word may be searched within a predetermined range (allowed value) corresponding to the reference similarity that determines.

도 6은 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터에서 제 1 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.6 is a diagram for describing a process of searching for a first similar word in a cluster to which an input word belongs, when searching for similar words based on a range corresponding to the similarity, according to an embodiment.

도 6을 참조하면, 입력된 단어로부터 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 이내의 단어를 제 1 유사 단어로 검색할 수 있다. 다시 말해서, 입력된 단어와 같은 클러스터이면서, 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 이내의 단어를 입력된 단어에 대응되는 제 1 유사단어로 결정할 수 있다.Referring to FIG. 6, the first similar word may be searched for a word within a predetermined range corresponding to a reference similarity that determines similarity from the input word. In other words, a word that is within the predetermined range corresponding to the reference similarity that determines the similarity while being the same cluster as the input word may be determined as the first similar word corresponding to the input word.

다시 도 5를 참조하면, 520 단계에서, 모바일 장치(100)는 입력된 단어로부터 입력된 단어가 속한 클러스터로 결정된 클러스터가 아닌 다른 클러스터까지의 최단 거리가 소정의 범위 내인 다른 클러스터에 포함된 단어들 중에서 입력된 단어로부터 소정의 범위 내의 제 2 유사 단어를 검색할 수 있다.Referring back to FIG. 5, in operation 520, the mobile device 100 includes words included in another cluster whose shortest distance from the input word to another cluster other than the cluster determined as the cluster to which the input word belongs is within a predetermined range. The second similar word within a predetermined range may be searched for from among the words entered.

도 7은 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터가 아닌 다른 클러스터에서 제 2 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.FIG. 7 is a diagram for describing a process of searching for a second similar word in a cluster other than the cluster to which the input word belongs, when searching for a similar word based on a range corresponding to the similarity according to an embodiment.

도 7에는 입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리가 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 이내인지에 따라 제 2 유사 단어를 검색함을 나타내고 있다. 입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리는 삼각 부등식을 이용하여, 입력된 단어와 다른 클러스터의 중심 단어 간의 거리에서 다른 클러스터의 중심 단어와 다른 클러스터의 중심 단어로부터 가장 먼 거리에 있는 단어 간의 거리를 뺌으로서 계산할 수 있다.FIG. 7 shows that the second similar word is searched according to whether the shortest distance from the input word to a cluster other than the cluster to which the input word belongs is within a predetermined range corresponding to a reference similarity for determining whether the input word is similar. The shortest distance from the input word to a cluster other than the cluster to which the input word belongs is the furthest from the center word of another cluster and the center word of another cluster, using the triangular inequality, the distance between the input word and the center word of the other cluster. The distance between words in a distance can be calculated by 뺌.

입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리가 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위를 초과하면, 해당 클러스터에서는 제 2 유사 단어를 검색하지 않을 수 있다. If the shortest distance from the input word to a cluster other than the cluster to which the input word belongs is more than a predetermined range corresponding to the reference similarity determining whether or not the similarity is similar, the cluster may not search for the second similar word.

반면, 입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리가 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 이내이면, 해당 클러스터에서 제 2 유사 단어를 검색할 수 있다. 이때, 입력된 단어와 입력된 단어가 속한 클러스터가 아닌 다른 클러스터의 중심 단어 간의 거리가 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 이내인 경우에는 다른 클러스터에 포함된 모든 단어들에 대해 유사도를 계산할 수 있다. 반면, 입력된 단어와 입력된 단어가 속한 클러스터가 아닌 다른 클러스터의 중심 단어 간의 거리가 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위를 초과하는 경우, 다른 클러스터에 포함된 단어들 중에서 다른 클러스터의 중심 단어로부터 먼 거리에 있는 단어(즉, 중심 단어와 가장 낮은 유사도를 갖는 단어)부터 소정의 범위 내에 있는지 판단하고, 중심 단어로부터 동일한 거리에 있는 모든 단어들이 소정의 범위 밖이라고 최초 판단되면, 중심 단어로부터 최초 판단된 거리 내에 있는 모든 단어들에 대해서는 제 2 유사 단어를 검색하지 않을 수 있다.On the other hand, if the shortest distance from the input word to a cluster other than the cluster to which the input word belongs is within a predetermined range corresponding to the reference similarity determining whether or not the similarity is similar, the second similar word may be searched for in the corresponding cluster. In this case, when the distance between the input word and the center word of a cluster other than the cluster to which the input word belongs is within a predetermined range corresponding to the reference similarity determining whether or not the similarity is similar, the similarity of all the words included in the other clusters. Can be calculated. On the other hand, when the distance between the input word and the center word of a cluster other than the cluster to which the input word belongs is more than a predetermined range corresponding to the reference similarity that determines similarity, other clusters among words included in other clusters If it is determined that the word is far from the center word of the word (that is, the word having the lowest similarity with the center word) within a predetermined range, and if it is first determined that all words that are the same distance from the center word are out of the predetermined range The second similar word may not be searched for for all words that are within the first determined distance from the center word.

도 8은 일 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우, 제 1 유사 단어 단어를 검색하는 단계와 제 2 유사 단어를 검색하는 단계에 대한 상세 흐름도이다.8 is a detailed flowchart of searching for a first similar word word and searching for a second similar word when searching for similar words based on a predetermined number according to a similarity ranking, according to an exemplary embodiment.

810 단계에서, 모바일 장치(100)는 클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 이용하여, 입력된 단어가 속한 클러스터로 결정된 클러스터에 포함된 단어들 중에서 입력된 단어와의 유사도 순위에서 소정의 개수에 대응되는 순위까지의 제 1 유사 단어를 검색할 수 있다. 모바일 장치(100)는 제 1 유사 단어 각각에 대응되는 유사도를 우선순위 큐에 저장할 수 있다.In operation 810, the mobile device 100 uses a similarity matrix indicating a precomputed similarity among words included in the cluster, and the similarity with the input word among words included in the cluster determined as the cluster to which the input word belongs. The first similar word from the rank to the rank corresponding to the predetermined number may be searched. The mobile device 100 may store the similarity corresponding to each of the first similar words in the priority queue.

도 9는 일 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터에서 제 1 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.FIG. 9 is a diagram for describing a process of searching for a first similar word in a cluster to which an input word belongs, when searching for similar words based on a predetermined number according to a similarity rank, according to an exemplary embodiment.

도 9를 참조하면, 입력된 단어가 속한 클러스터에 포함된 단어들 중에서 입력된 단어와의 유사도 순위에 따른 소정의 개수에 대응되는 순위까지의 제 1 유사 단어를 검색할 수 있다. 이때, 소정의 개수는 사용자에 의해 지정될 수 있다. 도 9에서는 소정의 개수가 '7'인 경우이다. 도 9를 참조하면, 입력된 단어가 속한 클러스터에 포함된 단어들 중에서 입력된 단어와의 유사도가 높은 7순위까지의 단어들이 제 1 유사 단어로 결정된 것을 알 수 있다. 입력된 단어가 속한 클러스터에 포함된 단어들에 대해서, 입력된 단어와의 유사도가 우선순위 큐의 가장 좋지 않은 유사도보다 좋다면, 현재 단어의 유사도가 우선순위 큐에 입력되고, 가장 좋지 않은 유사도를 갖는 단어의 유사도는 삭제되는 방식을 반복한 결과이다. 제 1 유사 단어로 결정된 일곱 개의 단어들 각각에 대응되는 유사도가 우선순위 큐에 저장되며, 유사도가 가장 높은 단어부터 유사도가 가장 낮은 단어까지 순서대로 우선순위 큐에 저장될 수 있다. 우선순위 큐의 크기는 소정의 개수와 같으므로, '7'일 수 있다. 도 9를 보면, 우선순위 큐에 저장된 최상위 유사도가 '2'이고, 최하위 유사도가 '8'임을 알 수 있다. Referring to FIG. 9, a first similar word may be searched up to a rank corresponding to a predetermined number according to a similarity rank with the input word among words included in the cluster to which the input word belongs. In this case, the predetermined number may be designated by the user. In FIG. 9, the predetermined number is '7'. Referring to FIG. 9, it can be seen that words of up to seven ranks having high similarity with the input word among the words included in the cluster to which the input word belongs are determined as the first similar word. For words included in the cluster to which the entered word belongs, if the similarity with the entered word is better than the worst similarity in the priority queue, the similarity of the current word is entered in the priority queue and the worst similarity is determined. The similarity of a word has a result of repeating the method of deletion. Similarity corresponding to each of the seven words determined as the first similar word may be stored in the priority queue, and may be stored in the priority queue in order from the highest word of similarity to the lowest word of similarity. Since the size of the priority queue is equal to a predetermined number, it may be '7'. 9, it can be seen that the highest similarity stored in the priority queue is '2' and the lowest similarity is '8'.

다시 도 8을 참조하면, 820 단계에서, 모바일 장치(100)는 입력된 단어로부터 다른 클러스터까지의 최단 거리가 우선순위 큐에 저장된 최하위 유사도에 대응되는 범위 내인 다른 클러스터에 포함된 단어들 중에서 현재 우선순위 큐에 저장된 최하위 유사도보다 입력된 단어에 유사한 제 2 유사 단어를 검색할 수 있다. 모바일 장치(100)는 검색된 제 2 유사 단어에 기초하여 현재 우선순위 큐를 갱신할 수 있다.Referring back to FIG. 8, in operation 820, the mobile device 100 may present priority among words included in other clusters in which the shortest distance from the input word to another cluster is within a range corresponding to the lowest similarity stored in the priority queue. A second similar word similar to the input word may be searched for than the lowest similarity stored in the ranking queue. The mobile device 100 may update the current priority queue based on the retrieved second similar word.

도 10은 일 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우, 입력된 단어가 속한 클러스터가 아닌 다른 클러스터에서 제 2 유사 단어를 검색하는 과정을 설명하기 위한 도면이다.FIG. 10 is a diagram for describing a process of searching for a second similar word in a cluster other than the cluster to which the input word belongs, when searching for similar words based on a predetermined number according to the similarity rank, according to an exemplary embodiment. to be.

입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리가 우선순위 큐에 저장된 최하위 유사도에 대응되는 범위를 초과하면, 해당 클러스터에서는 제 2 유사 단어를 검색하지 않을 수 있다. 이때, 입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리는 삼각 부등식을 이용하여 계산할 수 있다.If the shortest distance from the input word to a cluster other than the cluster to which the input word belongs exceeds the range corresponding to the lowest similarity stored in the priority queue, the cluster may not search for the second similar word. In this case, the shortest distance from the input word to a cluster other than the cluster to which the input word belongs may be calculated using a triangular inequality.

반면, 입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리가 우선순위 큐에 저장된 최하위 유사도에 대응되는 범위 이내이면, 해당 클러스터에서 제 2 유사 단어를 검색할 수 있다. 이때, 입력된 단어로부터 입력된 단어가 속한 클러스터가 아닌 다른 클러스터까지의 최단 거리가 짧은 클러스터부터, 입력된 단어에 대응되는 제 2 유사 단어를 검색할 수 있다. 다른 클러스터에 포함된 단어들 중에서 현재 우선순위 큐에 저장된 최하위 유사도보다 입력된 단어에 유사한 제 2 유사 단어를 검색하여, 검색된 제 2 유사 단어에 기초하여 현재 우선순위 큐를 갱신할 수 있다. 이때, 다른 클러스터에 포함된 단어들 중에서 다른 클러스터의 중심 단어로부터 먼 거리에 있는 단어(즉, 중심 단어와 가장 낮은 유사도를 갖는 단어)부터 현재 우선순위 큐에 저장된 최하위 유사도보다 입력된 단어에 유사한지 판단하고, 중심 단어로부터 동일한 거리에 있는 모든 단어들이 현재 우선순위 큐에 저장된 최하위 유사도보다 낮다고 최초 판단되면, 중심 단어로부터 최초 판단된 거리 내에 있는 모든 단어들에 대해서는 제 2 유사 단어를 검색하지 않을 수 있다.On the other hand, if the shortest distance from the input word to a cluster other than the cluster to which the input word belongs is within a range corresponding to the lowest similarity stored in the priority queue, the second similar word may be searched for in the corresponding cluster. In this case, the second similar word corresponding to the input word may be searched for from the cluster having the shortest distance from the input word to a cluster other than the cluster to which the input word belongs. Among the words included in other clusters, a second similar word that is similar to the input word than the lowest similarity stored in the current priority queue may be searched, and the current priority queue may be updated based on the found second similar word. At this time, among words included in other clusters, words that are far from the center word of other clusters (that is, words having the lowest similarity with the center word) are similar to words inputted from the lowest similarity stored in the current priority queue. If it is determined that all words at the same distance from the center word are lower than the lowest similarity stored in the current priority queue, the second similar word may not be searched for for all words within the first determined distance from the center word. have.

도 11은 일 실시예에 따라, 유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 알고리즘의 프로그램 코드를 나타낸 도면이다.FIG. 11 illustrates a program code of an algorithm for searching for a similar word based on a range corresponding to the similarity, according to an exemplary embodiment.

도 12는 다른 실시예에 따라, 유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 알고리즘의 프로그램 코드를 나타낸 도면이다.12 is a diagram of a program code of an algorithm for searching for similar words based on a predetermined number according to a similarity ranking according to another embodiment.

도 11과 도 12에 도시된 각각의 알고리즘 프로그램 코드는 일 예로서, 앞서 설명한 내용에 따라 변형될 수 있으며, 이에 한정되는 것은 아니다.Each algorithm program code illustrated in FIGS. 11 and 12 may be modified according to the above description as an example, but is not limited thereto.

상술한 입력된 단어에 대응되는 유사단어를 제공하는 방법에 관한 실시예들은 컴퓨터에서, 입력된 단어에 대응되는 유사단어를 제공하는 방법을 수행하도록 하는 컴퓨터 판독 가능 저장매체에 저장된 컴퓨터 프로그램 또는 애플리케이션 형태로 제공될 수 있다. Embodiments of a method for providing a similar word corresponding to the input word described above are in the form of a computer program or application stored in a computer readable storage medium for performing a method for providing a similar word corresponding to the input word in a computer. It may be provided as.

한편, 상술한 실시예들은 컴퓨터에 의하여 실행 가능한 명령어 및 데이터를 저장하는 컴퓨터로 읽을 수 있는 기록매체의 형태로 구현될 수 있다. 상기 명령어 및 데이터 중 적어도 하나는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, 마그네틱 테이프, 플로피 디스크, 광자기 데이터 저장 장치, 광학 데이터 저장 장치, 하드 디스크, 솔리드-스테이트 디스크(SSD), 그리고 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 저장할 수 있고, 프로세서나 컴퓨터가 명령어를 실행할 수 있도록 프로세서나 컴퓨터에 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 제공할 수 있는 어떠한 장치라도 될 수 있다. Meanwhile, the above-described embodiments may be implemented in the form of a computer-readable recording medium storing instructions and data executable by a computer. At least one of the instructions and data may be stored in the form of program code, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation. Such computer-readable recording media include read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD + Rs, CD-RWs, CD + RWs, DVD -ROMs, DVD-Rs, DVD + Rs, DVD-RWs, DVD + RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, Magnetic Tape, Floppy Disks, Magneto-optical Data Storage Devices, optical data storage devices, hard disks, solid-state disks (SSDs), and instructions or software, associated data, data files, and data structures, which can be stored on the processor or computer so that the processor or computer can execute the instructions. It may be any device capable of providing instructions or software, associated data, data files, and data structures.

이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 발명의 범위는 전술한 실시예들의 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.So far looked at the center of the embodiments. Those skilled in the art to which the disclosed embodiments belong will appreciate that the disclosed embodiments can be implemented in a modified form without departing from the essential characteristics. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the invention is set forth in the claims rather than the foregoing description of the embodiments, and all differences within the scope will be construed as being included in the scope of the invention.

Claims (11)

벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 입력된 단어가 속한 클러스터를 결정하는 단계;
상기 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 상기 결정된 클러스터에서 상기 입력된 단어에 대응되는 제 1 유사 단어를 검색하는 단계;
상기 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 상기 입력된 단어 간의 유사도에 기초하여, 상기 다른 클러스터에서 상기 입력된 단어에 대응되는 제 2 유사 단어를 검색하는 단계; 및
상기 검색된 제 1 유사 단어와 상기 검색된 제 2 유사 단어에 기초하여, 상기 입력된 단어에 대응되는 유사 단어를 제공하는 단계;
를 포함하는, 입력된 단어에 대응되는 유사단어를 제공하는 방법.
Determining a cluster to which an input word belongs among a plurality of clusters generated by clustering words in a vector space;
Searching for a first similar word corresponding to the input word in the determined cluster, based on a pre-computed similarity between words included in the determined cluster;
Searching for a second similar word corresponding to the input word in the other cluster based on a similarity between the words included in a cluster other than the determined cluster and the input word; And
Providing a similar word corresponding to the input word based on the searched first similar word and the searched second similar word;
Method for providing a similar word corresponding to the input word, comprising a.
제 1 항에 있어서,
유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우,
상기 제 1 유사 단어를 검색하는 단계는,
클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 이용하여, 상기 결정된 클러스터에 포함된 단어들 중에서 상기 입력된 단어로부터 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 내의 상기 제 1 유사 단어를 검색하고,
상기 제 2 유사 단어를 검색하는 단계는,
상기 입력된 단어로부터 상기 다른 클러스터까지의 최단 거리가 상기 소정의 범위 내인 상기 다른 클러스터에 포함된 단어들 중에서 상기 입력된 단어로부터 상기 소정의 범위 내의 상기 제 2 유사 단어를 검색하는, 입력된 단어에 대응되는 유사단어를 제공하는 방법.
The method of claim 1,
If you search for similar words based on a range that corresponds to similarity,
The searching for the first similar word may include:
The first within a predetermined range corresponding to a reference similarity that determines similarity from the input words among the words included in the determined cluster by using a similarity matrix indicating a precomputed similarity among the words included in the cluster; Search for similar words,
Searching for the second similar word,
In the input word, searching for the second similar word within the predetermined range from the input word among words included in the other cluster whose shortest distance from the input word to the other cluster is within the predetermined range. A method for providing corresponding pseudowords.
제 2 항에 있어서,
상기 제 2 유사 단어를 검색하는 단계는,
상기 다른 클러스터에 포함된 단어들 중에서 상기 다른 클러스터의 중심 단어로부터 먼 거리에 있는 단어부터 상기 소정의 범위 내에 있는지 판단하여, 상기 중심 단어로부터 동일한 거리에 있는 모든 단어들이 상기 소정의 범위 밖이라고 최초 판단되면, 상기 중심 단어로부터 상기 최초 판단된 거리 내에 있는 모든 단어들에 대해서는 상기 제 2 유사 단어를 검색하지 않는, 입력된 단어에 대응되는 유사단어를 제공하는 방법.
The method of claim 2,
Searching for the second similar word,
Among the words included in the other cluster, it is determined whether a word far from the center word of the other cluster is within the predetermined range, and the first determination is that all words at the same distance from the center word are outside the predetermined range. And not searching for the second similar word for all words within the first determined distance from the central word.
제 1 항에 있어서,
유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우,
상기 제 1 유사 단어를 검색하는 단계는,
클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 이용하여, 상기 결정된 클러스터에 포함된 단어들 중에서 상기 입력된 단어와의 상기 유사도 순위에서 상기 소정의 개수에 대응되는 순위까지의 상기 제 1 유사 단어를 검색하여, 상기 제 1 유사 단어 각각에 대응되는 유사도를 우선순위 큐에 저장하고,
상기 제 2 유사 단어를 검색하는 단계는,
상기 입력된 단어로부터 상기 다른 클러스터까지의 최단 거리가 상기 우선순위 큐에 저장된 최하위 유사도에 대응되는 범위 내인 상기 다른 클러스터에 포함된 단어들 중에서 현재 우선순위 큐에 저장된 최하위 유사도보다 상기 입력된 단어에 유사한 상기 제 2 유사 단어를 검색하여, 상기 검색된 제 2 유사 단어에 기초하여 상기 현재 우선순위 큐를 갱신하는, 입력된 단어에 대응되는 유사단어를 제공하는 방법.
The method of claim 1,
When searching for similar words based on a predetermined number according to the similarity ranking,
The searching for the first similar word may include:
Using a similarity matrix indicating a precomputed similarity between the words included in the cluster, the first from the similarity rank with the input word among the words included in the determined cluster to a rank corresponding to the predetermined number; Search for one similar word, and store similarity corresponding to each of the first similar words in a priority queue,
Searching for the second similar word,
The shortest distance from the input word to the other cluster is similar to the input word than the lowest similarity stored in the current priority queue among words included in the other cluster within a range corresponding to the lowest similarity stored in the priority queue. Searching for the second similar word and updating the current priority queue based on the searched second similar word to provide a similar word corresponding to the input word.
제 4 항에 있어서,
상기 제 2 유사 단어를 검색하는 단계는,
상기 다른 클러스터에 포함된 단어들 중에서 상기 다른 클러스터의 중심 단어로부터 먼 거리에 있는 단어부터 상기 현재 우선순위 큐에 저장된 최하위 유사도보다 상기 입력된 단어에 유사한지 판단하여, 상기 중심 단어로부터 동일한 거리에 있는 모든 단어들이 상기 현재 우선순위 큐에 저장된 최하위 유사도보다 낮다고 최초 판단되면, 상기 중심 단어로부터 상기 최초 판단된 거리 내에 있는 모든 단어들에 대해서는 상기 제 2 유사 단어를 검색하지 않는, 입력된 단어에 대응되는 유사단어를 제공하는 방법.
The method of claim 4, wherein
Searching for the second similar word,
Among words included in the other cluster, a word farther from the center word of the other cluster is determined to be similar to the input word than the lowest similarity stored in the current priority queue, and is located at the same distance from the center word. If all words are initially determined to be lower than the lowest similarity stored in the current priority queue, corresponding words that are not searched for the second similar word are not searched for for all words within the first determined distance from the central word. How to provide similar words.
사용자 인터페이스 장치;
컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및
상기 컴퓨터 실행가능 명령어를 실행함으로써, 벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 상기 사용자 인터페이스 장치를 통해 입력된 단어가 속한 클러스터를 결정하고, 상기 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 상기 결정된 클러스터에서 상기 입력된 단어에 대응되는 제 1 유사 단어를 검색하고, 상기 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 상기 입력된 단어 간의 유사도에 기초하여, 상기 다른 클러스터에서 상기 입력된 단어에 대응되는 제 2 유사 단어를 검색하여, 상기 검색된 제 1 유사 단어와 상기 검색된 제 2 유사 단어에 기초하여, 상기 입력된 단어에 대응되는 유사 단어를 제공하는 프로세서;
를 포함하는 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치.
User interface devices;
Memory for storing computer executable instructions; And
By executing the computer executable instructions, from among a plurality of clusters generated by clustering words on a vector space, a cluster to which a word input through the user interface device belongs is determined, and precomputed between words included in the determined cluster. Search for a first similar word corresponding to the input word in the determined cluster, and based on the similarity between the input word and words included in a cluster other than the determined cluster, based on the similarity degree. A processor for searching for a second similar word corresponding to the input word in a cluster and providing a similar word corresponding to the input word based on the searched first similar word and the searched second similar word;
A mobile device providing a similar word corresponding to the input word comprising a.
제 6 항에 있어서,
상기 프로세서는,
유사도에 대응되는 범위에 기초하여 유사 단어를 검색하는 경우,
클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 이용하여, 상기 결정된 클러스터에 포함된 단어들 중에서 상기 입력된 단어로부터 유사 여부를 결정하는 기준 유사도에 대응되는 소정의 범위 내의 상기 제 1 유사 단어를 검색하고,
상기 입력된 단어로부터 상기 다른 클러스터까지의 최단 거리가 상기 소정의 범위 내인 상기 다른 클러스터에 포함된 단어들 중에서 상기 입력된 단어로부터 상기 소정의 범위 내의 상기 제 2 유사 단어를 검색하는, 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치.
The method of claim 6,
The processor,
If you search for similar words based on a range that corresponds to similarity,
The first within a predetermined range corresponding to a reference similarity that determines similarity from the input words among the words included in the determined cluster by using a similarity matrix indicating a precomputed similarity between words included in the cluster; Search for similar words,
In the input word, searching for the second similar word within the predetermined range from the input word among words included in the other cluster whose shortest distance from the input word to the other cluster is within the predetermined range. A mobile device that provides a corresponding word.
제 7 항에 있어서,
상기 프로세서는,
상기 다른 클러스터에 포함된 단어들 중에서 상기 다른 클러스터의 중심 단어로부터 먼 거리에 있는 단어부터 상기 소정의 범위 내에 있는지 판단하여, 상기 중심 단어로부터 동일한 거리에 있는 모든 단어들이 상기 소정의 범위 밖이라고 최초 판단되면, 상기 중심 단어로부터 상기 최초 판단된 거리 내에 있는 모든 단어들에 대해서는 상기 제 2 유사 단어를 검색하지 않는, 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치.
The method of claim 7, wherein
The processor,
Among the words included in the other cluster, it is determined whether a word far from the center word of the other cluster is within the predetermined range, and the first determination is that all words at the same distance from the center word are outside the predetermined range. And searching for the second similar word for all words within the first determined distance from the center word.
제 6 항에 있어서,
상기 프로세서는,
유사도 순위에 따른 소정의 개수에 기초하여 유사 단어를 검색하는 경우,
클러스터에 포함된 단어들 간의 미리 계산된 유사도를 나타내는 유사도 매트릭스를 이용하여, 상기 결정된 클러스터에 포함된 단어들 중에서 상기 입력된 단어와의 상기 유사도 순위에서 상기 소정의 개수에 대응되는 순위까지의 상기 제 1 유사 단어를 검색하여, 상기 제 1 유사 단어 각각에 대응되는 유사도를 우선순위 큐에 저장하고,
상기 입력된 단어로부터 상기 다른 클러스터까지의 최단 거리가 상기 우선순위 큐에 저장된 최하위 유사도에 대응되는 범위 내인 상기 다른 클러스터에 포함된 단어들 중에서 현재 우선순위 큐에 저장된 최하위 유사도보다 상기 입력된 단어에 유사한 상기 제 2 유사 단어를 검색하여, 상기 검색된 제 2 유사 단어에 기초하여 상기 현재 우선순위 큐를 갱신하는, 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치.
The method of claim 6,
The processor,
When searching for similar words based on a predetermined number according to the similarity ranking,
Using a similarity matrix indicating a precomputed similarity between the words included in the cluster, the first from the similarity rank with the input word among the words included in the determined cluster to a rank corresponding to the predetermined number; Search for one similar word, and store similarity corresponding to each of the first similar words in a priority queue,
The shortest distance from the input word to the other cluster is similar to the input word than the lowest similarity stored in the current priority queue among words included in the other cluster within a range corresponding to the lowest similarity stored in the priority queue. And searching for the second similar word to update the current priority queue based on the searched second similar word to provide a similar word corresponding to the input word.
제 9 항에 있어서,
상기 프로세서는,
상기 다른 클러스터에 포함된 단어들 중에서 상기 다른 클러스터의 중심 단어로부터 먼 거리에 있는 단어부터 상기 현재 우선순위 큐에 저장된 최하위 유사도보다 상기 입력된 단어에 유사한지 판단하여, 상기 중심 단어로부터 동일한 거리에 있는 모든 단어들이 상기 현재 우선순위 큐에 저장된 최하위 유사도보다 낮다고 최초 판단되면, 상기 중심 단어로부터 상기 최초 판단된 거리 내에 있는 모든 단어들에 대해서는 상기 제 2 유사 단어를 검색하지 않는, 입력된 단어에 대응되는 유사단어를 제공하는 모바일 장치.
The method of claim 9,
The processor,
Among words included in the other cluster, a word farther from the center word of the other cluster is determined to be similar to the input word than the lowest similarity stored in the current priority queue, and is located at the same distance from the center word. If all words are initially determined to be lower than the lowest similarity stored in the current priority queue, corresponding words that are not searched for the second similar word are not searched for for all words within the first determined distance from the central word. Mobile devices that provide similar words.
벡터 공간상의 단어들을 클러스터링하여 생성된 복수의 클러스터들 중에서 입력된 단어가 속한 클러스터를 결정하는 명령어들;
상기 결정된 클러스터에 포함된 단어들 간의 미리 계산된 유사도에 기초하여, 상기 결정된 클러스터에서 상기 입력된 단어에 대응되는 제 1 유사 단어를 검색하는 명령어들;
상기 결정된 클러스터가 아닌 다른 클러스터에 포함된 단어들과 상기 입력된 단어 간의 유사도에 기초하여, 상기 다른 클러스터에서 상기 입력된 단어에 대응되는 제 2 유사 단어를 검색하는 명령어들; 및
상기 검색된 제 1 유사 단어와 상기 검색된 제 2 유사 단어에 기초하여, 상기 입력된 단어에 대응되는 유사 단어를 제공하는 명령어들;
을 포함하는, 프로세서에 의해 실행 가능한 명령어들로 저장된 컴퓨터 판독 가능 저장매체.
Instructions for determining a cluster to which an input word belongs among a plurality of clusters generated by clustering words in a vector space;
Instructions for retrieving a first similar word corresponding to the input word in the determined cluster based on a pre-computed similarity between words included in the determined cluster;
Instructions for searching for a second similar word corresponding to the input word in the other cluster based on a similarity between the words included in a cluster other than the determined cluster and the input word; And
Instructions for providing a similar word corresponding to the input word based on the searched first similar word and the searched second similar word;
And a computer readable storage medium stored with instructions executable by the processor.
KR1020180038219A 2018-04-02 2018-04-02 Mobile apparatus and method for providing similar word corresponding to input word KR20190115320A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180038219A KR20190115320A (en) 2018-04-02 2018-04-02 Mobile apparatus and method for providing similar word corresponding to input word
PCT/KR2018/004622 WO2019194342A1 (en) 2018-04-02 2018-04-20 Mobile apparatus and method of providing similar word corresponding to input word

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180038219A KR20190115320A (en) 2018-04-02 2018-04-02 Mobile apparatus and method for providing similar word corresponding to input word

Publications (1)

Publication Number Publication Date
KR20190115320A true KR20190115320A (en) 2019-10-11

Family

ID=68100846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180038219A KR20190115320A (en) 2018-04-02 2018-04-02 Mobile apparatus and method for providing similar word corresponding to input word

Country Status (2)

Country Link
KR (1) KR20190115320A (en)
WO (1) WO2019194342A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581481B (en) * 2020-05-13 2024-03-08 北京达佳互联信息技术有限公司 Search term recommendation method and device, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052481A (en) * 1994-09-02 2000-04-18 Apple Computers, Inc. Automatic method for scoring and clustering prototypes of handwritten stroke-based data
US8108392B2 (en) * 2007-10-05 2012-01-31 Fujitsu Limited Identifying clusters of words according to word affinities
US9558400B2 (en) * 2013-03-07 2017-01-31 Ricoh Company, Ltd. Search by stroke
US9348510B2 (en) * 2014-07-02 2016-05-24 Clareity Security, LLC Comparing users handwriting for detecting and remediating unauthorized shared access
US9767353B2 (en) * 2014-08-29 2017-09-19 Ancestry.Com Operations Inc. System and method for transcribing historical records into digitized text

Also Published As

Publication number Publication date
WO2019194342A1 (en) 2019-10-10

Similar Documents

Publication Publication Date Title
US10353742B2 (en) Tracking large numbers of moving objects in an event processing system
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
US10282439B2 (en) Storing and querying multidimensional data using first and second indicies
US10108649B2 (en) Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
US9087105B2 (en) Rule-based extraction, transformation, and loading of data between disparate data sources
US8468146B2 (en) System and method for creating search index on cloud database
CN107704202B (en) Method and device for quickly reading and writing data
US11403303B2 (en) Method and device for generating ranking model
CN102479255B (en) Optimizing database query
CN105488050A (en) Database multi-index method, apparatus and system
CN105989015B (en) Database capacity expansion method and device and method and device for accessing database
US10678817B2 (en) Systems and methods of scalable distributed databases
US9465658B1 (en) Task distribution over a heterogeneous environment through task and consumer categories
US10885468B2 (en) Dynamic search system for real-time dynamic search and reporting
KR20190115320A (en) Mobile apparatus and method for providing similar word corresponding to input word
US11010381B2 (en) Method for managing index
US11550808B2 (en) Predicting storage requirements of a database management system based on application behavior and behavior of database queries
US11940879B2 (en) Data protection method, electronic device and computer program product
CN114840487A (en) Metadata management method and device for distributed file system
KR20220099745A (en) A spatial decomposition-based tree indexing and query processing methods and apparatus for geospatial blockchain data retrieval
JP2018060379A (en) Searching means selecting program, searching means selecting method and searching means selecting device
US11947822B2 (en) Maintaining a record data structure using page metadata of a bookkeeping page
US20190163810A1 (en) Search User Interface
JP2016081492A (en) Different type storage server and file storage method thereof
KR101499842B1 (en) Method and Apparatus for searching for data object

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application