KR102278288B1 - 음소 기반 텍스트 검색 장치 및 방법 - Google Patents

음소 기반 텍스트 검색 장치 및 방법 Download PDF

Info

Publication number
KR102278288B1
KR102278288B1 KR1020190130954A KR20190130954A KR102278288B1 KR 102278288 B1 KR102278288 B1 KR 102278288B1 KR 1020190130954 A KR1020190130954 A KR 1020190130954A KR 20190130954 A KR20190130954 A KR 20190130954A KR 102278288 B1 KR102278288 B1 KR 102278288B1
Authority
KR
South Korea
Prior art keywords
search
phoneme
phonemes
expression
word
Prior art date
Application number
KR1020190130954A
Other languages
English (en)
Other versions
KR20210047192A (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 KR1020190130954A priority Critical patent/KR102278288B1/ko
Publication of KR20210047192A publication Critical patent/KR20210047192A/ko
Application granted granted Critical
Publication of KR102278288B1 publication Critical patent/KR102278288B1/ko

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/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 문서에 개시되는 일 실시 예에 따른 음소 기반 텍스트 검색 방법은 검색 대상 문서에 대한 검색어를 획득하는 단계, 검색어를 음소 단위로 분할함으로써 하나 이상의 음소를 포함하는 검색식으로 변환하는 단계, 검색 대상 문서에 포함된 텍스트를 복수의 음소로 분할하는 단계, 및 분할된 복수의 음소 중 검색식과 매칭되는 부분을 검색하는 단계를 포함할 수 있다.

Description

음소 기반 텍스트 검색 장치 및 방법{APPARATUS AND METHOD FOR SEARCHING TEXT BASED ON PHONEME}
본 문서에서 개시되는 실시 예들은 음소 단위로 문서에서 특정 부분을 검색하는 장치 및 방법과 관련된다.
전자 문서와 관련하여 사용자는 특정 문서에서 사용자가 요구하는 문자를 포함하는 부분을 검색할 수 있고, 사용자가 요구하는 문자를 포함하는 문서를 검색할 수도 있다. 사용자는 찾고자 하는 검색어를 컴퓨팅 디바이스에 입력할 수 있고, 컴퓨팅 디바이스는 입력된 검색어와 매칭되는 부분을 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스는 사용자가 검색어 “한글”을 입력한 경우, 전자 문서에서 “한글”을 포함하는 부분을 검색하고, 검색된 부분을 출력할 수 있다.
최근 들어, 옛한글로 이루어진 문서가 디지털화됨에 따라, 옛한글 문서 내에서 검색의 필요성이 제기되고 있다. 옛한글은 현대 한글에서 사용되지 않는 음소 또는 음소의 조합을 사용하는 한글을 의미할 수 있다. 옛한글의 경우 현대 한글과 다른 특성을 가지고 있으므로, 검색 방법에 있어서도 새로운 기능이 요구될 수 있다.
옛한글로 이루어진 전자 문서에서 통상적인 검색 엔진을 이용하는 경우, 옛한글의 경우 그 표기 방식이 현대 한글과 상이할 수 있으므로, 검색어에 매칭되는 부분을 검색하기 어려울 수 있다. 예를 들어, 단어 “어마님”의 경우, 옛한글 전자 문서에서 연음으로 인해 “어마님” 또는 “어마니미” 등으로 표기될 수 있고, 검색어로 “어마님”을 입력하는 경우 단어 “어마니미”를 검색할 수 없다는 문제점이 있다. 다른 예를 들면, 옛한글 전자 문서에 포함된 한자 “中”의 경우, “中”, “
Figure 112019107491129-pat00001
”, “
Figure 112019107491129-pat00002
” 또는 “
Figure 112019107491129-pat00003
” 등으로 표기될 수 있으므로, 검색어로 한자 “中”을 입력하는 경우 “
Figure 112019107491129-pat00004
”, “
Figure 112019107491129-pat00005
” 또는 “
Figure 112019107491129-pat00006
” 등을 검색할 수 없다는 문제점이 있다. 이 외에도, 복자음 및 복모음으로 인한 문제, 음가가 없는 음소로 인한 문제, 및 동일한 단어에 대해 다양한 표기 방식을 사용하는 문제 등이 정확한 검색을 어렵게 할 수 있다.
본 발명의 실시 예들은, 전자 문서에 대한 검색을 수행할 때 사용자가 원하는 부분을 효율적이고 정확하게 검색할 수 있는 장치 및 방법을 제공하기 위한 것이다.
본 문서에 개시되는 일 실시 예에 따른 음소 기반 텍스트 검색 방법은 검색 대상 문서에 대한 검색어를 획득하는 단계, 검색어를 음소 단위로 분할함으로써 하나 이상의 음소를 포함하는 검색식으로 변환하는 단계, 검색 대상 문서에 포함된 텍스트를 복수의 음소로 분할하는 단계, 및 분할된 복수의 음소 중 검색식과 매칭되는 부분을 검색하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 분할하는 단계는, 텍스트를 조합형 유니코드로 변환하는 단계, 및 조합형 유니코드를 음소 단위 코드로 분할하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 분할하는 단계는, 텍스트에 포함된 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 분할하는 단계는, 텍스트 또는 분할된 복수의 음소에서 음가가 없는 음소를 제거하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 방법은 검색된 부분 또는 검색된 부분에 대응하는 인덱스를 출력하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 변환하는 단계는, 검색어를 정규표현식(Regex)으로 이루어진 검색식으로 변환하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 변환하는 단계는, 검색어 또는 검색식에 포함된 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 변환하는 단계는, 검색어 또는 검색식에서 음가가 없는 음소를 제거하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 검색어 또는 검색식은 음소 단위의 와일드 카드를 포함할 수 있다.
일 실시 예에 따르면, 변환하는 단계는, 검색어에 한자가 포함된 경우, 미리 저장된 데이터베이스에 기초하여 한자에 대응하는 하나 이상의 음소 세트를 획득하는 단계, 및 검색어를 한자 및 하나 이상의 음소 세트를 포함하는 검색식으로 변환하는 단계를 포함하고, 검색식은 한자를 포함하는 부분 또는 하나 이상의 음소 세트 중 하나를 포함하는 부분과 매칭되도록 구성될 수 있다.
일 실시 예에 따르면, 변환하는 단계는, 미리 저장된 음소 네트워크 정보에 기초하여 검색어에 포함된 음소와 연관된 다른 음소를 획득하는 단계, 및 검색어를 검색어에 포함된 음소 및 다른 음소를 포함하는 검색식으로 변환하는 단계를 포함하고, 검색식은 분할된 복수의 음소 중 음소 및 다른 음소 중 하나를 포함하는 부분과 매칭되도록 구성될 수 있다.
본 발명의 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 외부와 통신하도록 구성된 통신 회로, 메모리, 및 통신 회로 및 메모리와 전기적으로 연결된 프로세서를 포함하고, 프로세서는 검색 대상 문서에 대한 검색어를 획득하고, 검색어를 하나 이상의 음소를 포함하는 검색식으로 변환하고, 통신 회로를 이용하여 검색식을 외부 장치로 제공하도록 설정될 수 있다.
본 발명의 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 외부와 통신하도록 구성된 통신 회로, 메모리, 및 통신 회로 및 메모리와 전기적으로 연결된 프로세서를 포함하고, 프로세서는 외부 장치로부터 통신 회로를 이용하여 검색 대상 문서에 대한 검색어로부터 변환된 하나 이상의 음소를 포함하는 검색식을 획득하고, 검색 대상 문서에 포함된 텍스트를 복수의 음소로 분할하고, 분할된 복수의 음소 중 검색식과 매칭되는 부분을 검색하도록 설정될 수 있다.
본 문서에 개시되는 실시 예들에 따르면, 음소 단위로 분할된 검색식을 사용함으로써, 전자 문서에서 사용자가 원하는 부분을 효율적이고 정확하게 검색할 수 있다.
또한, 검색 대상 텍스트 및 검색어의 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리함으로써, 복잡한 복자음 및 복모음으로 인해 검색의 효율성 및 정확성이 저하되는 것을 방지할 수 있다.
또한, 검색 대상 텍스트 및 검색어에서 음가가 없는 음소를 제거함으로써, 연음 현상으로 인한 표기 및 음가가 없는 종성 등으로 인해 검색의 효율성 및 정확성이 저하되는 것을 방지할 수 있다.
또한, 음소 단위의 와일드 카드를 사용함으로써, 검색의 유연성을 향상시킬 수 있다.
또한, 데이터베이스에 기초하여 한자 및 그 한자에 대응하는 다양한 한글 표기를 포함하는 검색식을 제공함으로써, 한자 검색어에 의한 검색의 유연성을 향상시킬 수 있다.
또한, 음소 네트워크를 이용하여 유사 음소를 포함하는 검색식을 제공함으로써, 검색어에 대응하는 유사 음소로 표기된 단어에 대한 검색이 이루어질 수 있다.
또한, 폐용된 한글 자모의 쓰임에 대한 이해가 부족한 비전문가가 용이하게 활용할 수 있는 검색 방법을 제공할 수 있다.
또한, 유연한 검색식과 병렬적 검색어 획득 방법을 제공함으로써, 통시적 어원 연구가 어려운 한글의 어형 변화를 추적하는 검색이 가능하도록 할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 일 실시 예에 따른 음소 기반 텍스트 검색 장치의 동작 환경을 나타낸다.
도 2는 일 실시 예에 따른 음소 기반 텍스트 검색 장치의 구성을 나타내는 블록도이다.
도 3은 일 실시 예에 따른 음소 기반 텍스트 검색 시스템을 나타내는 블록도이다.
도 4는 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 5는 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 6은 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 7은 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 8은 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 9는 일 실시 예에 따른 음소 기반 텍스트 검색 장치에서 사용되는 예시적인 음소 네트워크를 시각적으로 도시한다.
도 10은 일 실시 예에 따른 음소 기반 텍스트 검색 방법을 설명하기 위한 흐름도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 발명의 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
도 1은 일 실시 예에 따른 음소 기반 텍스트 검색 장치의 동작 환경을 나타낸다.
도 1을 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 사용자 단말(110) 또는 서버(120) 형태로 구현될 수 있다. 사용자 단말(110)은 사용자(11)로부터 검색어를 수신할 수 있다. 검색어는, 예를 들어, “부텨”일 수 있다. 사용자 단말(110)은 수신된 검색어를 음소 단위로 분할하여 검색식으로 변환할 수 있다. 검색식은, 예를 들어, “ㅂ ㅜ ㅌ ㅣ ㅓ”일 수 있다. 사용자 단말(110)은 변환된 검색식을 서버(120)로 제공할 수 있다.
서버(120)는 외부로부터 또는 서버(120) 내부에 미리 저장된 검색 대상이 되는 전자 문서(12)를 획득할 수 있다. 서버(120)는 사용자 단말(110)로부터 검색식을 획득할 수 있다. 서버(120)는 전자 문서(12)에 포함된 텍스트를 음소 단위로 분할할 수 있다. 서버(120)는 검색식과 음소 단위로 분할된 텍스트를 비교함으로써, 텍스트에서 검색식에 포함된 일련의 음소와 매칭되는 부분을 검색할 수 있다. 예를 들어, 서버(120)는 검색식 “ㅂ ㅜ ㅌ ㅣ ㅓ”와 매칭되는 부분인 텍스트의 3행에 기재된 “부?”을 검색할 수 있다. 서버(120)는 검색된 부분 또는 검색된 부분에 대응하는 인덱스(예: 3행)를 출력할 수 있다.
사용자 단말(110) 및/또는 서버(120)는 음소 단위 검색을 위해 다양한 기능을 제공할 수 있다. 예를 들어, 복자음 및 복모음 음소를 단자음 및 단모음 음소로 분리하는 기능, 음가가 없는 음소를 제거하는 기능, 음소 단위의 와일드 카드를 제공하는 기능, 한자 검색어를 위한 검색식을 제공하는 기능 및 음소 네트워크를 이용하여 검색식을 제공하는 기능 등이 제공될 수 있다.
도 1에서는 전자 문서(12)가 옛한글로 이루어진 문서인 것으로 도시되었으나, 이에 제한되지 않고, 전자 문서(12)는 현대 한글로 이루어진 문서일 수도 있다.
도 1에서는 서버(120)와 사용자 단말(110)이 분리된 것으로 도시되었으나, 이에 제한되지 않고, 하나의 컴퓨팅 디바이스로 통합되어 구현될 수도 있다. 또한, 도 1에서는 서버(120) 및 사용자 단말(110)이 각각 하나의 디바이스인 것으로 도시되었으나, 이에 제한되지 않고, 서버(120) 및 사용자 단말(110)은 각각 2 이상의 컴퓨팅 디바이스로 분리되어 구현될 수도 있다.
또한, 도 1을 참조하여 설명된 서버(120)에 의해 수행되는 동작 중 적어도 일부는 사용자 단말(110)에 의해 수행될 수도 있고, 사용자 단말(110)에 의해 수행되는 동작 중 적어도 일부는 서버(120)에 의해 수행될 수도 있다.
도 2는 일 실시 예에 따른 음소 기반 텍스트 검색 장치의 구성을 나타내는 블록도이다.
도 2를 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 방법은 사용자 단말(210) 및 서버(220)에 의해 실행될 수 있다. 본 문서에서 음소 기반 텍스트 검색 장치는 사용자 단말(210)을 지칭할 수도 있고, 서버(220)를 지칭할 수도 있다. 사용자 단말(210) 및 서버(220)는 통합된 형태로 구현될 수도 있고, 각각이 분리된 형태로 구현될 수도 있다.
일 실시 예에 따른 사용자 단말(210)은 통신 회로(211), 메모리(212) 및 프로세서(213)를 포함할 수 있다. 통신 회로(211)는 외부와 통신하도록 구성될 수 있다. 통신 회로(211)는 무선 통신 인터페이스 및/또는 유선 통신 인터페이스를 포함할 수 있다. 예를 들어, 통신 회로(211)는 서버(220)와 데이터를 송수신할 수 있다. 메모리(212)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(212)는 사용자 단말(210)에서 취급되는 다양한 데이터를 저장할 수 있다. 예를 들어, 메모리(212)는 서버(220)로부터 수신된 데이터를 저장할 수 있고, 사용자 단말(210) 내부에서 처리된 데이터를 저장할 수도 있다. 프로세서(213)는 통신 회로(211) 및 메모리(212)와 전기적으로 연결될 수 있다. 프로세서(213)는 통신 회로(211) 및 메모리(212)를 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다.
일 실시 예에 따른 서버(220)는 통신 회로(221), 메모리(222) 및 프로세서(223)를 포함할 수 있다. 통신 회로(221)는 외부와 통신하도록 구성될 수 있다. 통신 회로(221)는 무선 통신 인터페이스 및/또는 유선 통신 인터페이스를 포함할 수 있다. 예를 들어, 통신 회로(221)는 사용자 단말(210) 및/또는 다른 외부 장치와 데이터를 송수신할 수 있다. 메모리(222)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(222)는 서버(220)에서 취급되는 다양한 데이터를 저장할 수 있다. 예를 들어, 메모리(222)는 사용자 단말(210) 또는 다른 외부 장치로부터 수신된 데이터를 저장할 수 있고, 서버(220) 내부에서 처리된 데이터를 저장할 수도 있다. 프로세서(223)는 통신 회로(221) 및 메모리(222)와 전기적으로 연결될 수 있다. 프로세서(223)는 통신 회로(221) 및 메모리(222)를 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다.
이하에서 사용자 단말(210)에 의해 수행되는 것으로 설명된 동작은 사용자 단말(210)의 프로세서(213)에 의해 수행되는 것으로 이해될 수 있고, 서버(220)에 의해 수행되는 것으로 설명된 동작은 서버(220)의 프로세서(223)에 의해 수행되는 것으로 이해될 수 있다. 또한, 사용자 단말(210)에 의해 수행되는 것으로 설명된 동작 중 적어도 일부는 서버(220)에 의해 수행될 수도 있고, 서버(220)에 의해 수행되는 것으로 설명된 동작 중 적어도 일부는 사용자 단말(230)에 의해 수행될 수도 있다.
일 실시 예에 따르면, 사용자 단말(210)은 검색 대상 문서에 대한 검색어를 획득할 수 있다. 사용자 단말(210)은 사용자로부터 입력 장치를 통해 검색어를 수신할 수 있다. 검색어는, 예를 들어, 한글 또는 한자를 포함할 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 검색어를 음소 단위로 분할함으로써 하나 이상의 음소를 포함하는 검색식으로 변환할 수 있다. 예를 들어, 사용자 단말(210)은 검색어 “어마님”을 음소 단위로 분할하여 검색식 “ㅇ ㅓ ㅁ ㅏ ㄴ ㅣ ㅁ”으로 변환할 수 있다. 다른 예를 들면, 사용자 단말(210)은 검색어 “ㅅㄱ"을 검색식 “ㅅ ㄱ”로 변환할 수 있다. 이 경우, 초성과 종성의 혼용을 고려하여 초성과 종성의 구분이 없는 한글 자모로 분할할 수 있고, 이를 위해 유니코드의 호환용 한글자모 영역(U+3130에서 U+318F)을 사용할 수 있다. 또한, 옛한글에서 단자음과 쌍자음이 빈번하게 혼용되는 점을 고려하여 쌍자음은 유니코드의 + 기호(하나 이상을 의미)를 활용하여 분할할 수 있고(예를 들어 'ㄲ'은 'ㄱ+'로 분할), 단자음에 정규식 기호 +를 부가하여 변환함으로써 단자음과 쌍자음이 동시에 검색되도록 할 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 검색어를 정규표현식(Regex)으로 이루어진 검색식으로 변환할 수 있다. 사용자 단말(210)은 사용자가 제공한 검색어를 여러 음소의 혼용 및 초성/종성 혼용 등을 표현할 수 있는 정규표현식 검색식으로 변환할 수 있다. 변환된 검색식에 통상적인 정규표현식 처리 엔진을 적용함으로써, 검색의 유연성과 구현의 용이성을 동시에 확보할 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 검색어 또는 검색식에 포함된 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리할 수 있다. 복자음 음소 및 복모음 음소의 분리는 미리 저장된 데이터베이스(예: 복자음-단자음/복모음-단모음 맵핑 테이블)에 기초하여 수행될 수 있다. 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리함으로써, 복잡한 복자음 및 복모음으로 인해 검색의 효율성 및 정확성이 저하되는 것을 방지할 수 있다. 예를 들어, 사용자 단말(210)은 검색어에 포함된 “ㅺ" 및 “ㅴ" 등과 같은 복자음을 “ㅅ ㄱ” 및 “ㅂ ㅅ ㄱ” 등과 같은 단자음으로 분리할 수 있고, “ㄲ”과 같은 쌍자음을 “ㄱ+”과 같이 단자음과 정규표현식 기호의 조합으로 변환할 수 있다. 다른 예를 들면, 사용자 단말(210)은 검색어에 포함된 “ㅕ” 및 “ㅘ” 등과 같은 복모음을 “ㅣ ㅓ” 및 “ㅗ ㅏ” 등과 같은 단모음으로 분리할 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 검색어 또는 검색식에서 음가가 없는 음소를 제거할 수 있다. 음가가 없는 음소를 제거함으로써, 연음 현상으로 인한 표기 및 음가가 없는 종성 등으로 인해 검색의 효율성 및 정확성이 저하되는 것을 방지할 수 있다. 예를 들어, 사용자 단말(210)은 검색어 “어마님”에서 음가가 없는 음소 “ㅇ”을 제거하여 검색식 “ㅓ ㅁ ㅏ ㄴ ㅣ ㅁ”을 획득할 수 있다.
일 실시 예에 따르면, 검색어 또는 검색식은 음소 단위의 와일드 카드를 포함할 수 있다. 음소 단위의 와일드 카드를 사용함으로써, 검색의 유연성을 향상시킬 수 있다. 예를 들어, 사용자 단말(210)은 검색어 “ㄹ(모음 와일드 카드)ㄹ”을 획득할 수 있다. 사용자 단말(210)은 검색어를 정규표현식 “(ㄹ)([ㅏ-ㅣㆍㆎ]+)(ㄹ)” 으로 변환할 수 있다. 여기서 “[ㅏ-ㅣㆍㆎ]”는 한글의 모든 단모음에 대응되고, 하나 이상을 의미하는 정규표현식 기호 +가 부가됨으로써 “[ㅏ-ㅣㆍㆎ]+”는 모든 단모음 및 복모음에 대응된다. 상술한 검색어를 이용하여 검색 대상 문서에서 “
Figure 112019107491129-pat00007
” 및 “를”을 동시에 검색할 수 있다. 와일드 카드는 상술한 것과 같이 임의의 (자음 및/또는 모음) 음소의 검색, 지정된 음소 중 하나의 검색 또는 인접 연산 등을 위한 것일 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 검색어에 한자가 포함된 경우, 미리 저장된 데이터베이스에 기초하여 한자에 대응하는 하나 이상의 음소 세트를 획득하고, 검색어를 한자 및 하나 이상의 음소 세트를 포함하는 검색식으로 변환할 수 있다. 검색식은 한자를 포함하는 부분 또는 하나 이상의 음소 세트 중 하나를 포함하는 부분과 매칭되도록 구성될 수 있다. 데이터베이스에 기초하여 한자 및 그 한자에 대응하는 다양한 한글 표기를 포함하는 검색식을 제공함으로써, 한자 검색어에 의한 검색의 유연성을 향상시킬 수 있다. 예를 들어, 사용자 단말(210)은 검색어 “中”을 획득할 수 있다. 한자 “中”은 한자로 표기될 수도 있고, 옛한글 문서에서 한글 “
Figure 112019107491129-pat00008
”, “
Figure 112019107491129-pat00009
” 또는 “
Figure 112019107491129-pat00010
” 등으로 표기될 수도 있다. 사용자 단말(210)은 한자음 데이터베이스를 이용하여 한자 “中”에 대응하는 음소 세트 “
Figure 112019107491129-pat00011
”, “
Figure 112019107491129-pat00012
” 또는 “
Figure 112019107491129-pat00013
”을 획득할 수 있다. 한자음 데이터베이스는 다양한 전자 문서에 기재된 한자와 한자음이 병기된 부분에 기초하여 구축될 수 있다. 사용자 단말(210)은 “中”, “
Figure 112019107491129-pat00014
”, “
Figure 112019107491129-pat00015
” 또는 “
Figure 112019107491129-pat00016
”을 검색하기 위한 검색식을 획득할 수 있다. 검색식은, 예를 들어, “中 | (ㅈ ㅜ ㆁ) | (ㄷ ㅣ ㅜ ㆁ) | (ㅈ ㅣ ㅜ ㆁ)”일 수 있다. 여기서, 기호 “|”는 논리 연산자 “OR”에 대응할 수 있다. 검색식은 분석 대상 문서에 포함된 “中”, “
Figure 112019107491129-pat00017
”, “
Figure 112019107491129-pat00018
” 또는 “
Figure 112019107491129-pat00019
”과 매칭될 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 미리 저장된 음소 네트워크 정보에 기초하여 검색어에 포함된 음소와 연관된 다른 음소를 획득하고, 검색어를 검색어에 포함된 음소 및 다른 음소를 포함하는 검색식으로 변환할 수 있다. 검색식은 검색어에 포함된 음소 및 다른 음소 중 하나를 포함하는 부분과 매칭되도록 구성될 수 있다. 사용자 단말(210)은 음소 네트워크 정보에 기초하여 검색어와 포함된 음소와 연관된 하나 이상의 다른 음소를 사용자에게 제공할 수 있다. 사용자는 하나 이상의 다른 음소 중 적어도 일부를 선택할 수 있다. 사용자 단말(210)은 검색어에 포함된 음소 및 선택된 음소 중 하나를 포함하는 부분과 매칭되도록 검색식을 구성할 수 있다. 음소 네트워크를 이용하여 유사 음소를 포함하는 검색식을 제공함으로써, 유사 음소로 표기된 부분에 대한 검색이 이루어질 수 있다. 예를 들어, 사용자 단말(210)은 검색어 “꽃”을 획득할 수 있다. “꽃”은 옛한글 문서에서 “
Figure 112019107491129-pat00020
” 또는 “곶”등으로 표기될 수 있다. 사용자 단말(210)은 “꽃”을 “ㄱ+ㅗㅊ”으로 분할한 후, 음소 네트워크를 이용하여 음소 “ㅊ”과 유사한 음소로 “ㅅ” 및 “ㅈ”을 사용자가 선택하게 할 수 있다. 사용자 단말(210)은, 예를 들어, 검색식 “(ㄱ+)(ㅗ)([ㅈㅊㅅ]+) ”을 획득할 수 있다. 검색식은 분석 대상 문서에 포함된 “꽃” 및 “곶”과 매칭될 수 있다.
일 실시 예에 따르면, 서버(220)는 검색 대상 문서에 포함된 텍스트를 복수의 음소로 분할할 수 있다. 서버(220)는 사용자 단말(210)로부터 검색식을 획득할 수 있다. 서버(220)는 음소 단위로 분할된 검색식과 검색 대상 문서에 포함된 텍스트를 매칭하기 위해 텍스트 또한 음소 단위로 분할하여 내부 처리용 텍스트를 구축할 수 있다. 예를 들어, 서버(220)는 텍스트를 조합형 유니코드로 변환하고, 및 조합형 유니코드를 음소 단위 코드로 분할할 수 있다. 서버(220)는 PUA(private users area) 코드의 디지털 텍스트를 유니코드 조합형으로 변환할 수 있다. 서버(220)는 유니코드 조합형에서 유니코드 정준 분해를 활용하여 음절 단위 코드를 초성/중성/종성으로 이루어진 음소 단위 코드로 분리할 수 있다.
일 실시 예에 따르면, 서버(220)는 검색식과 텍스트의 매칭을 위해 검색식에 수행된 처리 과정 중 일부를 검색 대상 문서의 텍스트에 동일하게 적용할 수 있다. 예를 들어, 서버(220)는 텍스트에 포함된 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리할 수 있다. 다른 예를 들면, 서버(220)는 텍스트 또는 분할된 복수의 음소에서 음가가 없는 음소를 제거할 수 있다.
일 실시 예에 따르면, 서버(220)는 텍스트로부터 분할된 복수의 음소 중 검색식과 매칭되는 부분을 검색할 수 있다. 서버(220)는 음소 단위로 분할된 내부 처리용 텍스트와 검색식을 비교하여 서로 매칭되는 부분을 검색할 수 있다.
일 실시 예에 따르면, 사용자 단말(210)은 분석 대상 문서에서 검색된 부분 또는 검색된 부분에 대응하는 인덱스를 출력할 수 있다. 서버(220)는 검색 대상 문서의 원문과 내부 처리용 텍스트 간의 인덱스를 구축함으로써, 내부 처리용 텍스트에서 검색된 부분과 대응되는 검색 대상 문서의 대응 부분에 대한 정보를 획득할 수 있다. 사용자 단말(210)은 검색된 부분에 대한 정보를 서버(220)로부터 수신할 수 있고, 수신된 정보에 기초하여 검색된 부분 또는 인덱스를 출력할 수 있다. 예를 들어, 사용자 단말(210)은 분석 대상 문서에서 검색된 부분을 디스플레이할 수 있다. 다른 예를 들면, 사용자 단말(210)은 분석 대상 문서에서 검색된 부분에 대한 인덱스(예: 2페이지 10열)를 출력할 수 있다.
상술한 것과 같이, 음소 단위로 분할된 검색식을 사용함으로써, 전자 문서에서 사용자가 원하는 부분을 효율적이고 정확하게 검색할 수 있다.
도 3은 일 실시 예에 따른 음소 기반 텍스트 검색 시스템을 나타내는 블록도이다.
도 3을 참조하면, 클라이언트(310)는 사용자에 의해 입력되는 검색어를 획득할 수 있다. 클라이언트(310)는 Regex 변환 알고리즘을 이용하여 Regex 검색식을 생성할 수 있다. 클라이언트(310)는 Regex 검색식을 서버(320)로 제공할 수 있다.
서버(320)는 분석 대상 문서를 획득할 수 있다. 서버(320)는 분석 대상 문서에 포함된 텍스트로부터 음소 단위로 분리된 텍스트 데이터를 획득할 수 있다. 서버(320)는 분석 대상 문서를 이용하여 데이터베이스를 구축할 수 있다. 예를 들어, 서버(320)는 분석 대상 문서에서 한자와 한자의 한글 표기가 병기된 부분에 기초하여 한자(예: 中)와 한자의 한글 표기(예:
Figure 112019107491129-pat00021
,
Figure 112019107491129-pat00022
또는
Figure 112019107491129-pat00023
)를 매칭하는 데이터베이스를 구축할 수 있다. 다른 예를 들면, 서버(320)는 분석 대상 문서에 기초하여 음소를 혼용하는 단어(예: 꽃과 곶, 또는 를과
Figure 112019107491129-pat00024
)를 매칭하는 데이터베이스를 구축할 수 있다. 또 다른 예를 들면, 서버(320)는 음소 네트워크 데이터베이스를 저장할 수 있다. 데이터베이스는 클라이언트(310)의 Regex 변환 알고리즘으로 제공될 수 있고, Regex 검색식의 생성에 활용될 수 있다. 서버(320)는 Regex 검색 엔진을 이용하여 Regex 검색식과 음소 단위로 분리된 텍스트 데이터를 비교할 수 있다. 서버(320)는 Regex 검색 엔진을 이용하여 검색 결과를 도출할 수 있다.
도 4는 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 4를 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 사용자로부터 검색어(410)를 수신하고, 수신된 검색어(410)를 검색식(420)으로 변환하고, 검색식(420)을 이용하여 검색 결과(430)를 획득할 수 있다.
예를 들어, 음소 기반 텍스트 검색 장치는 검색어(410) “어마님”을 획득할 수 있다. 검색어(410) “어마님”은 음소 단위로 분할될 수 있고, 검색어(410) 또는 검색식(420)에서 음가가 없는 음소 “ㅇ”이 제거될 수 있다. 상술한 처리를 통해 검색식(420) “ㅓ ㅁ ㅏ ㄴ ㅣ ㅁ”이 획득될 수 있다.
음소 기반 텍스트 검색 장치는 매칭된 검색식(431), 인덱스(432) 및 검색된 부분(433)을 포함하는 검색 결과(430)를 출력할 수 있다. 검색식(420)에 연산자 “|” 또는 와일드 카드가 포함되지 않았으므로, 매칭된 검색식(431)은 모두 검색식(420) “ㅓ ㅁ ㅏ ㄴ ㅣ ㅁ”과 동일할 수 있다. 인덱스(432)는 검색된 부분을 나타내는 정보(예: 행 또는 단어의 순번)일 수 있다. 검색된 부분(433)은 검색식(431)과 매칭된 부분 및 매칭된 부분과 인접한 부분을 함께 포함할 수 있다. 검색 결과(430)를 살펴보면, 분석 대상 문서에서 “어마님” 또는 “어마니미”가 포함된 부분이 검색된 것을 확인할 수 있다. 상술한 것과 같이, 음소 단위의 분리에 의해 연음 현상으로 인한 표기를 반영한 검색 결과가 도출될 수 있다.
도 5는 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 5를 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 사용자로부터 검색어(510)를 수신하고, 수신된 검색어(510)를 검색식(520)으로 변환하고, 검색식(520)을 이용하여 검색 결과(530)를 획득할 수 있다.
예를 들어, 음소 기반 텍스트 검색 장치는 검색어(510) “ㅺ”을 획득할 수 있다. 검색어(510) “ㅺ”은 음소 단위로 분할될 수 있다. 상술한 처리를 통해 검색식(520) “ㅅ ㄱ”이 획득될 수 있다.
음소 기반 텍스트 검색 장치는 매칭된 검색식(531), 인덱스(532) 및 검색된 부분(533)을 포함하는 검색 결과(530)를 출력할 수 있다. 검색식(520)에 연산자 “|” 또는 와일드 카드가 포함되지 않았으므로, 매칭된 검색식(531)은 모두 검색식(520) “ㅅ ㄱ”과 동일할 수 있다. 인덱스(532)는 검색된 부분을 나타내는 정보(예: 행 또는 단어의 순번)일 수 있다. 검색된 부분(533)은 검색식(531)과 매칭된 부분 및 매칭된 부분과 인접한 부분을 함께 포함할 수 있다. 검색 결과(530)를 살펴보면, 분석 대상 문서에서 “
Figure 112019107491129-pat00025
”, “ㅅ긔”, “부?긔”, “
Figure 112019107491129-pat00026
” 또는 “잇고”가 포함된 부분이 검색된 것을 확인할 수 있다. 상술한 것과 같이, 복자음의 분리에 의해 연음 현상 및 다양한 복자음의 표기를 반영한 검색 결과가 도출될 수 있다.
도 6은 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 6을 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 사용자로부터 검색어(610)를 수신하고, 수신된 검색어(610)를 검색식(620)으로 변환하고, 검색식(620)을 이용하여 검색 결과(630)를 획득할 수 있다.
예를 들어, 음소 기반 텍스트 검색 장치는 검색어(610) “부텨”를 획득할 수 있다. 검색어(610) “부텨”는 음소 단위로 분할될 수 있고, 복모음 “ㅕ”는 “ㅣㅓ”로 분할될 수 있다. 상술한 처리를 통해 검색식(620) “ㅂ ㅜ ㅌ ㅣ ㅓ”가 획득될 수 있다.
음소 기반 텍스트 검색 장치는 매칭된 검색식(631), 인덱스(632) 및 검색된 부분(633)을 포함하는 검색 결과(630)를 출력할 수 있다. 검색식(620)에 연산자 “|” 또는 와일드 카드가 포함되지 않았으므로, 매칭된 검색식(631)은 모두 검색식(620) “ㅂ ㅜ ㅌ ㅣ ㅓ”과 동일할 수 있다. 인덱스(632)는 검색된 부분을 나타내는 정보(예: 행 또는 단어의 순번)일 수 있다. 검색된 부분(633)은 검색식(631)과 매칭된 부분 및 매칭된 부분과 인접한 부분을 함께 포함할 수 있다. 검색 결과(630)를 살펴보면, 분석 대상 문서에서 “부톄”, “부?긔” 또는 “부텨와” 가 포함된 부분이 검색된 것을 확인할 수 있다. 상술한 것과 같이, 음소의 분리 및 복모음의 분리에 의해 검색어와 다른 자음(예: ㅅ) 또는 모음(예: ㅣ)이 결합된 표기를 반영한 검색 결과가 도출될 수 있다.
도 7은 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 7을 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 사용자로부터 검색어(710)를 수신하고, 수신된 검색어(710)를 검색식(720)으로 변환하고, 검색식(720)을 이용하여 검색 결과(730)를 획득할 수 있다.
예를 들어, 음소 기반 텍스트 검색 장치는 검색어(710) “ㅁ(모음 와일드 카드)ㄴ”을 획득할 수 있다. “모음 와일드 카드”는 다양한 문자, 기호 또는 그들의 조합으로 미리 설정될 수 있다. 검색어(710) “ㅁ(모음 와일드 카드)ㄴ”는 음소 단위로 분할될 수 있고, 정규표현식으로 변환될 수 있다. 상술한 처리를 통해 검색식(720) “ㅁ)([ㅏ-ㅣㆍㆎ]+)(ㄴ)( 이 획득될 수 있다. 검색식(720)에서 “ㅁ”은 초성 “ㅁ” 또는 종성 “ㅁ” 양자에 대응될 수 있으며, “[ㅏ-ㅣㆍㆎ]+” 는 모든 단모음 및 복모음에 대응될 수 있고, “ㄴ”은 초성 “ㄴ” 또는 종성 “ㄴ” 양자에 대응될 수 있다.
음소 기반 텍스트 검색 장치는 매칭된 검색식(731), 인덱스(732) 및 검색된 부분(733)을 포함하는 검색 결과(730)를 출력할 수 있다. 검색식(720)에 와일드 카드가 포함되어 있으므로, 매칭된 검색식(731)은 다양한 모음 중 하나가 포함된 형태로 나타날 수 있다. 인덱스(732)는 검색된 부분을 나타내는 정보(예: 행 또는 단어의 순번)일 수 있다. 검색된 부분(733)은 검색식(731)과 매칭된 부분 및 매칭된 부분과 인접한 부분을 함께 포함할 수 있다. 검색 결과(730)를 살펴보면, 분석 대상 문서에서 “어마님”, “
Figure 112019107491129-pat00027
”, “즈믄”, “
Figure 112019107491129-pat00028
” 또는 “몬져”가 포함된 부분이 검색된 것을 확인할 수 있다. 상술한 것과 같이, 와일드 카드의 사용에 의해 옛한글에서 나타날 수 있는 다양한 표기 방법을 반영한 검색 결과가 도출될 수 있다.
도 8은 일 실시 예에 따른 음소 기반 텍스트 검색 장치에 의해 출력되는 예시적인 검색 결과를 도시한다.
도 8을 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 사용자로부터 검색어(810)를 수신하고, 수신된 검색어(810)를 검색식(820)으로 변환하고, 검색식(820)을 이용하여 검색 결과(830)를 획득할 수 있다.
예를 들어, 음소 기반 텍스트 검색 장치는 검색어(810) “中”을 획득할 수 있다. 검색어(810) “中”으로부터 데이터베이스에 기초하여 “中”에 대응하는 복수의 음소 세트 “
Figure 112019107491129-pat00029
”, “
Figure 112019107491129-pat00030
” 및 “
Figure 112019107491129-pat00031
” 등이 획득될 수 있고, 한자 또는 음소 세트 중 하나를 포함하는 부분과 매칭되도록 구성된 정규표현식으로 변환될 수 있다. 상술한 처리를 통해 검색식(820) “中 | (ㅈ ㅜ ㆁ) | (ㄷ ㅣ ㅜ ㆁ) | (ㅈ ㅣ ㅜ ㆁ))”이 획득될 수 있다.
음소 기반 텍스트 검색 장치는 매칭된 검색식(831), 인덱스(832) 및 검색된 부분(833)을 포함하는 검색 결과(830)를 출력할 수 있다. 검색식(820)에 연산자 “|”가 포함되어 있으므로, 매칭된 검색식(831)은 “中”, “ㅈ ㅜ ㆁ”, “ㄷ ㅣ ㅜ ㆁ” 또는 “ㅈ ㅣ ㅜ ㆁ”으로 나타날 수 있다. 인덱스(832)는 검색된 부분을 나타내는 정보(예: 행 또는 단어의 순번)일 수 있다. 검색된 부분(833)은 검색식(831)과 매칭된 부분 및 매칭된 부분과 인접한 부분을 함께 포함할 수 있다. 검색 결과(830)를 살펴보면, 분석 대상 문서에서 “中”, “
Figure 112019107491129-pat00032
” 또는 “
Figure 112019107491129-pat00033
” 등이 포함된 부분이 검색된 것을 확인할 수 있다. 상술한 것과 같이, 한자 및 한자와 매칭되는 음소 세트를 이용함으로써 옛한글에서 나타날 수 있는 한자에 대한 다양한 표기 방법을 반영한 검색 결과가 도출될 수 있다.
도 9는 일 실시 예에 따른 음소 기반 텍스트 검색 장치에서 사용되는 예시적인 음소 네트워크를 시각적으로 도시한다.
도 9를 참조하면, 일 실시 예에 따른 음소 기반 텍스트 검색 장치는 음소 네트워크 모델을 이용할 수 있다. 음소 네트워크 모델은 한글 자음 및 모음을 포함할 수 있다. 음소 네트워크 모델에서 발음이 유사한 음소는 서로 인접하게 배치될 수 있고, 서로 연결될 수 있다. 예를 들어, 음소 “ㄱ”의 경우 음소 “ㅋ”, “ㅈ” 및 “ㆁ” 등과 연결될 수 있고 (지정된 거리 내에) 인접하게 배치될 수 있다. 음소 “ㅏ”의 경우 음소 “ㅣ” 및 “ㆍ”와 연결될 수 있고 (지정된 거리 내에) 인접하게 배치될 수 있다. 도 9에서 기호 “ø”는 자음 탈락 또는 모음 탈락을 의미할 수 있다. 음소 네트워크 모델에 의해 종성 대표음, 받침 변이, 비음화, 유음화, 구개음화, 유성음의 기재, 순경음의 기재, 자음 축약, 자음 탈락, 모음 탈락, 연음 규칙, 두음 법칙, 전설 모음화, 원순 모음화 및 이중 모음화 등과 같은 다양한 기재 방식, 음운 현상 및 발음 규칙을 반영하고, 모음 기본자와 초출자 사이의 관계를 반영하여 검색식을 생성할 수 있다.
예를 들어, 검색어 “꽃”이 입력된 경우, 음소 기반 텍스트 검색 장치는 음소 네트워크 모델을 이용하여 검색식을 확장할 수 있다. 음소 기반 텍스트 검색 장치는 음소 네트워크 모델 내에서 종성 “ㅊ”과 인접한 음소인 “ㅈ”, “ㅅ”, “ㅌ” 및 “ㅋ”을 사용자에게 제공할 수 있다. 사용자는, 예를 들어, 출력된 4개의 음소 중 “ㅈ” 및 “ㅅ”을 선택할 수 있다. 음소 기반 텍스트 검색 장치는 사용자의 선택을 반영하여, 선택된 음소를 포함하는 검색식 “(ㄱ+)(ㅗ)([ㅈㅊㅅ]+)”를 획득할 수 있다. 상술한 검색식을 이용하여, 검색어 “꽃”이 입력된 경우, 검색 대상 문서에서, “꽃”, “곳”, “고지” 및 “
Figure 112019107491129-pat00034
” 등과 같은 부분을 검색할 수 있다.
다른 예를 들면, 검색어 “마슬”이 입력된 경우, 음소 기반 텍스트 검색 장치는 음소 네트워크 모델을 이용하여 검색식을 확장할 수 있다. 음소 기반 텍스트 검색 장치는 음소 네트워크 모델 내에서 첫 번째 중성 “ㅏ”과 인접한 음소인 “ㅣ” 및 “ㆍ”을 사용자에게 제공할 수 있다. 사용자는 출력된 2개의 음소 중 “ㆍ”을 선택할 수 있다. 음소 기반 텍스트 검색 장치는 음소 네트워크 모델 내에서 두 번째 초성 “ㅅ”과 인접한 음소인 “ㅎ”, “ㄷ”, “ㅊ”, “ㅌ”, “ㅿ” 및 “ø”(자음 탈락을 의미)를 사용자에게 제공할 수 있다. 사용자는 출력된 6개의 음소 중 “ㅿ” 및 “ø”를 선택할 수 있다. 음소 기반 텍스트 검색 장치는 사용자의 선택을 반영하여, 선택된 음소를 포함하는 검색식 “(ㅁ+)(ㅏ)([ㅅㅿ]?)|([ㅡㆍㅜ])(ㄹ+)”를 획득할 수 있다. 검색식에서 “?”는 0개 이상을 의미할 수 있다. 상술한 검색식을 이용하여, 검색어 “마슬”이 입력된 경우, 검색 대상 문서에서, “마을”, “
Figure 112019107491129-pat00035
”, “
Figure 112019107491129-pat00036
”, “
Figure 112019107491129-pat00037
”, “
Figure 112019107491129-pat00038
” 및 “마실” 등과 같은 부분을 검색할 수 있다.
또 다른 예를 들면, 검색어 “
Figure 112019107491129-pat00039
”이 입력된 경우, 음소 기반 텍스트 검색 장치는 음소 네트워크 모델을 이용하여 검색식을 확장할 수 있다. 음소 기반 텍스트 검색 장치는 음소 네트워크 모델 내에서 종성 “ㅸ”과 인접한 음소인 “ø”, “ㅂ”, “ㅗ” 및 “ㅜ”을 사용자에게 제공할 수 있다. 사용자는, 예를 들어, 출력된 4개의 음소 중 “ㅂ”, “ㅗ” 및 “ㅜ”을 선택할 수 있다. 음소 기반 텍스트 검색 장치는 사용자의 선택을 반영하여, 선택된 음소를 포함하는 검색식 “(ㄷ+)(ㅗ)([ㅸㅂ]+|[ㅗㅜ])”를 획득할 수 있다. 상술한 검색식을 이용하여, 검색어 “
Figure 112019107491129-pat00040
”이 입력된 경우, 검색 대상 문서에서, “
Figure 112019107491129-pat00041
”, “돕” 및 “도와” 등과 같은 부분을 검색할 수 있다.
도 9의 음소 네트워크는 예시적인 것으로, 도시된 형태에 제한되지 않고, 다양한 형태로 이루어질 수 있다.
도 10은 일 실시 예에 따른 음소 기반 텍스트 검색 방법을 설명하기 위한 흐름도이다.
이하에서는 도 2의 사용자 단말(210) 또는 서버(220)가 도 10의 프로세스를 수행하는 것을 가정한다. 또한, 도 10의 설명에서, 사용자 단말(210) 또는 서버(220)에 의해 수행되는 것으로 기술된 동작은 사용자 단말(210)의 프로세서(213) 또는 서버(220)의 프로세서(223)에 의해 제어되는 것으로 이해될 수 있다.
도 10을 참조하면, 단계 1010에서, 사용자 단말(210)은 검색 대상 문서에 대한 검색어를 획득할 수 있다. 단계 1020에서, 사용자 단말(210)은 검색어를 하나 이상의 음소를 포함하는 검색식으로 변환할 수 있다. 단계 1030에서, 사용자 단말(210)은 검색식을 서버(220)로 제공할 수 있다. 단계 1040에서, 서버(220)는 사용자 단말(210)로부터 검색식을 획득할 수 있다. 단계 1050에서, 서버(220)는 검색 대상 문서에 포함된 텍스트를 복수의 음소로 분할할 수 있다. 단계 1060에서, 서버(220)는 분할된 복수의 음소 중 검색식과 매칭되는 부분을 검색할 수 있다.
도 10에서는, 단계 1010 내지 1030이 사용자 단말(210)에 의해 수행되고, 단계 1040 내지 1060이 서버(220)에 의해 수행되는 것으로 도시되었으나, 이에 제한되지 않고, 서버(220)에 의해 수행되는 동작 중 적어도 일부가 사용자 단말(210)에 의해 수행될 수도 있고, 사용자 단말(210)에 의해 수행되는 동작 중 적어도 일부가 서버(220)에 의해 수행될 수도 있다. 예를 들어, 단계 1020은 서버(220)에 의해 수행될 수 있고, 이 경우 단계 1030 및 1040은 생략되고, 서버(220)가 사용자 단말(210)로부터 검색어를 획득하는 단계가 추가될 수 있다. 다른 예를 들면, 단계 1050 및 단계 1060은 사용자 단말(210)에 의해 수행될 수 있고, 이 경우 단계 1030 및 1040은 생략될 수 있다.
본 문서의 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤 구성요소가 다른 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소를 통하여 연결될 수 있다.
본 문서에서, "~하도록 설정된(adapted to or configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 설정된 (또는 구성된) 프로세서"는 해당 동작들을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU)를 의미할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어(firmware)로 구성된 유닛(unit)을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다.
일 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
일 실시 예에 따른 구성 요소(예: 모듈 또는 프로그램 모듈) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소를 더 포함할 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램 모듈)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 일 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (13)

  1. 음소 기반 텍스트 검색 방법에 있어서,
    검색 대상 문서에 대한 검색어를 획득하는 단계;
    상기 검색어를 음소 단위로 분할함으로써 하나 이상의 음소를 포함하는 검색식으로 변환하는 단계;
    상기 검색 대상 문서에 포함된 텍스트를 복수의 음소로 분할하는 단계; 및
    상기 분할된 복수의 음소 중 상기 검색식과 매칭되는 부분을 검색하는 단계를 포함하고,
    상기 변환하는 단계는,
    상기 검색어 또는 상기 검색식에 포함된 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리하는 단계;
    미리 저장된 음소 네트워크 정보에 기초하여 상기 검색어에 포함된 음소와 연관된 하나 이상의 다른 음소를 사용자에게 제공하는 단계;
    상기 하나 이상의 다른 음소 중 적어도 일부에 대한 상기 사용자의 선택을 수신하는 단계; 및
    상기 검색어를 상기 검색어에 포함된 음소 및 상기 하나 이상의 다른 음소 중 적어도 일부를 포함하는 상기 검색식으로 변환하는 단계를 포함하는 것을 특징으로 하는, 방법.
  2. 제 1 항에 있어서,
    상기 분할하는 단계는,
    상기 텍스트를 조합형 유니코드로 변환하는 단계; 및
    상기 조합형 유니코드를 음소 단위 코드로 분할하는 단계를 포함하는 것을 특징으로 하는, 방법.
  3. 제 1 항에 있어서,
    상기 분할하는 단계는,
    상기 텍스트에 포함된 상기 복자음 음소 및 상기 복모음 음소를 상기 단자음 음소 및 상기 단모음 음소로 분리하는 단계를 포함하는 것을 특징으로 하는, 방법.
  4. 제 1 항에 있어서,
    상기 분할하는 단계는,
    상기 텍스트 또는 상기 분할된 복수의 음소에서 음가가 없는 음소를 제거하는 단계를 포함하는 것을 특징으로 하는, 방법.
  5. 제 1 항에 있어서,
    상기 검색된 부분 또는 상기 검색된 부분에 대응하는 인덱스를 출력하는 단계를 더 포함하는 것을 특징으로 하는, 방법.
  6. 제 1 항에 있어서,
    상기 변환하는 단계는,
    상기 검색어를 정규표현식(Regex)으로 이루어진 상기 검색식으로 변환하는 단계를 포함하는 것을 특징으로 하는, 방법.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 변환하는 단계는,
    상기 검색어 또는 상기 검색식에서 음가가 없는 음소를 제거하는 단계를 포함하는 것을 특징으로 하는, 방법.
  9. 제 1 항에 있어서,
    상기 검색어 또는 상기 검색식은 음소 단위의 와일드 카드를 포함하는 것을 특징으로 하는, 방법.
  10. 제 1 항에 있어서,
    상기 변환하는 단계는,
    상기 검색어에 한자가 포함된 경우, 미리 저장된 데이터베이스에 기초하여 상기 한자에 대응하는 하나 이상의 음소 세트를 획득하는 단계; 및
    상기 검색어를 상기 한자 및 상기 하나 이상의 음소 세트를 포함하는 상기 검색식으로 변환하는 단계를 포함하고,
    상기 검색식은 상기 한자를 포함하는 부분 또는 상기 하나 이상의 음소 세트 중 하나를 포함하는 부분과 매칭되도록 구성된 것을 특징으로 하는, 방법.
  11. 삭제
  12. 음소 기반 텍스트 검색 장치에 있어서,
    외부와 통신하도록 구성된 통신 회로;
    메모리; 및
    상기 통신 회로 및 메모리와 전기적으로 연결된 프로세서를 포함하고,
    상기 프로세서는,
    검색 대상 문서에 대한 검색어를 획득하고,
    상기 검색어를 하나 이상의 음소를 포함하는 검색식으로 변환하고,
    상기 통신 회로를 이용하여 상기 검색식을 외부 장치로 제공하도록 설정되고,
    상기 프로세서는,
    상기 검색어 또는 상기 검색식에 포함된 복자음 음소 및 복모음 음소를 단자음 음소 및 단모음 음소로 분리하고,
    미리 저장된 음소 네트워크 정보에 기초하여 상기 검색어에 포함된 음소와 연관된 하나 이상의 다른 음소를 사용자에게 제공하고,
    상기 하나 이상의 다른 음소 중 적어도 일부에 대한 상기 사용자의 선택을 수신하고,
    상기 검색어를 상기 검색어에 포함된 음소 및 상기 하나 이상의 다른 음소 중 적어도 일부를 포함하는 상기 검색식으로 변환하도록 설정된 것을 특징으로 하는, 장치.
  13. 삭제
KR1020190130954A 2019-10-21 2019-10-21 음소 기반 텍스트 검색 장치 및 방법 KR102278288B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190130954A KR102278288B1 (ko) 2019-10-21 2019-10-21 음소 기반 텍스트 검색 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190130954A KR102278288B1 (ko) 2019-10-21 2019-10-21 음소 기반 텍스트 검색 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210047192A KR20210047192A (ko) 2021-04-29
KR102278288B1 true KR102278288B1 (ko) 2021-07-16

Family

ID=75728250

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190130954A KR102278288B1 (ko) 2019-10-21 2019-10-21 음소 기반 텍스트 검색 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102278288B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100542757B1 (ko) * 2003-10-02 2006-01-20 한국전자통신연구원 음운변이 규칙을 이용한 외래어 음차표기 자동 확장 방법및 그 장치
KR20070036293A (ko) * 2005-09-29 2007-04-03 엔에이치엔(주) 음소 분리를 통한 문자열 검색 방법, 웹 문서 검색 방법 및방법 실행 프로그램을 기록한 저장매체
KR102244110B1 (ko) * 2015-02-17 2021-04-26 삼성전자주식회사 이종 언어간 동일성을 판단하는 전자 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이명훈 외 4인, 간판영상에서 한글 인식 성능향상을 위한 가중치 기반 음소 단위 분할 교정, 한국콘텐츠학회논문지 제12권 제2호, 2012.02. 105-115페이지. 1부.*

Also Published As

Publication number Publication date
KR20210047192A (ko) 2021-04-29

Similar Documents

Publication Publication Date Title
JP5599662B2 (ja) 統計的な方法を用いて漢字を自国語の発音列に変換するシステムおよび方法
JP4570509B2 (ja) 読み生成装置、読み生成方法及びコンピュータプログラム
KR20070008489A (ko) 한글 표출 장치 및 그 방법
KR20230009564A (ko) 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치
US10387543B2 (en) Phoneme-to-grapheme mapping systems and methods
KR102278288B1 (ko) 음소 기반 텍스트 검색 장치 및 방법
JP7102710B2 (ja) 情報生成プログラム、単語抽出プログラム、情報処理装置、情報生成方法及び単語抽出方法
Hlaing et al. Automatic syllable segmentation of Myanmar texts using finite state transducer
JP4845523B2 (ja) 文字処理装置、方法、プログラムおよび記録媒体
JP2008059389A (ja) 語彙候補出力システム、語彙候補出力方法及び語彙候補出力プログラム
US10614065B2 (en) Controlling search execution time for voice input facility searching
JP5795302B2 (ja) 形態素解析装置、方法、及びプログラム
JP3952964B2 (ja) 読み情報決定方法及び装置及びプログラム
JP6300596B2 (ja) 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
JP5533576B2 (ja) 情報作成装置、情報作成方法及びプログラム
KR101080880B1 (ko) 외래어의 자동 음차 표기 방법 및 장치
KR101767625B1 (ko) 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법
JP2001109740A (ja) 中国語文書作成装置及び中国語文書作成方法
JP3234338B2 (ja) 漢字変換装置
JP2000235567A (ja) 声調符号無入力式中国語文字変換装置
JP3048793B2 (ja) 文字変換装置
JPH10269208A (ja) 仮名漢字変換装置
JPH08305698A (ja) 自然語解析方法及び装置
JP2738386B2 (ja) 仮名漢字変換装置
JP5252209B2 (ja) 読み生成装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant