KR102355731B1 - 해석 프로그램, 해석 방법 및 해석 장치 - Google Patents

해석 프로그램, 해석 방법 및 해석 장치 Download PDF

Info

Publication number
KR102355731B1
KR102355731B1 KR1020200187563A KR20200187563A KR102355731B1 KR 102355731 B1 KR102355731 B1 KR 102355731B1 KR 1020200187563 A KR1020200187563 A KR 1020200187563A KR 20200187563 A KR20200187563 A KR 20200187563A KR 102355731 B1 KR102355731 B1 KR 102355731B1
Authority
KR
South Korea
Prior art keywords
data
bitmap
character string
english
index
Prior art date
Application number
KR1020200187563A
Other languages
English (en)
Other versions
KR20210002435A (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 후지쯔 가부시끼가이샤
Publication of KR20210002435A publication Critical patent/KR20210002435A/ko
Application granted granted Critical
Publication of KR102355731B1 publication Critical patent/KR102355731B1/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/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • 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

Landscapes

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

Abstract

본 발명은 단어 및 프레이즈(phrase)의 인식과, 단어 및 프레이즈에 대한 값을 이용한 해석을 행하는 것을 목적으로 한다.
해석 장치(100)는, 단어 또는 프레이즈가 등록된, 복수의 등록 항목을 갖는 사전을 기초로 하여, 복수의 등록 항목 각각에 관한 인덱스를 생성한다. 해석 장치(100)는, 인덱스에, 복수의 등록 항목 각각에 대해, 각 항목의 선두와 말미를 판별 가능한 플래그를 설정한다.

Description

해석 프로그램, 해석 방법 및 해석 장치{ANALYSIS PROGRAM, ANALYSIS METHOD, AND ANALYSIS DEVICE}
본 발명은 해석 프로그램 등에 관한 것이다.
대상 문서를 형태소 해석하여, 단어 단위로 분할하는 종래 기술(종래 기술 1)이 알려져 있다. 종래 기술 1에서는, 예컨대, 형태소 해석에 이용되는 사전에 일본어의 프레이즈(phrase)(숙어)를 등록한 경우, 프레이즈가 분할 후보로서 최적이라고 판정했을 때에, 해당하는 프레이즈가 출력된다.
그러나, 종래 기술 1에서는, 영어의 프레이즈를 등록하면, 무조건적으로 스페이스로 분할되어, 프레이즈는 출력되지 않는다. 예컨대, 종래 기술 1에서는, 형태소 해석에 이용되는 사전에 「White House」를 등록해도, 최적의 분할 후보가 「White」와 「House」로 판정되고, 의미를 갖는 통합 「White House」가, 최적의 분할 후보로서 판단되지 않는다.
또한, 대상 문서를, 단어 단위로 부호화하는 종래 기술(종래 기술 2)이 알려져 있다. 종래 기술 2에서는, 대상 문서군을 형태소 해석하여, 대상 문서군을 단어 단위로 부호화하고, 단어의 존재 유무에 관한 전치(轉置) 인덱스를 생성한다. 예컨대, 종래 기술 2에서는, 복수 회 출현하는 각 단어를 부호화하고, 전치 인덱스를 생성하고 있다.
한편, 다른 종래 기술(종래 기술 3)로서, 특허문헌 1에 개시된 기술이 존재한다. 특허문헌 1에서는, 대상 문헌 중에서 프레이즈를 수집하고, 동시 출현 통계값을 취득하는 것이 기재되어 있다.
일본 특허 공개 제2006-48685호 공보
그러나, 전술한 종래 기술에서는, 영어 단어 및 독립된 의미를 갖는 프레이즈를 형태소 해석에 이용되는 사전에 등록해도, 의미 단위로 영어 단어나 프레이즈를 분할할 수 없다고 하는 문제가 있다.
예컨대, 종래 기술 1에서는, 복수 회 출현하는 영어 단어나 프레이즈를 사전에 등록해도, 분할 출력되는 영어 단어나 프레이즈는 의미 단위의 단락으로는 반드시 되어 있지 않다. 이 때문에, 종래 기술 2에서 생성된 전치 인덱스에 대응되어 있는 영어 단어나 프레이즈는, 검색 시에 충분히 도움이 된다고는 할 수 없다.
또한, 특허문헌 1에서는, 대상 안건으로부터 프레이즈를 직접 수집하고, 그 공기(共起) 관계를 보는 경우, 공기 관계에 기초하여 양호 프레이즈만을 추출하는 작업이 필요해진다. 또한, 특허문헌 1에서는, 「off」나 「out」 등의 스톱 워드를, 「take off」나 「take out」 등, 다른 단어와 일체화하여 취급하는 처리도 필요하다.
하나의 측면에서는, 본 발명은, 단어 및 독립된 의미를 갖는 프레이즈의 식별과, 단어 및 프레이즈에 대한, 부호 할당이나, 전치 인덱스의 생성을 행할 수 있는 해석 프로그램, 해석 방법 및 해석 장치를 제공하는 것을 목적으로 한다.
제1 안에서는, 컴퓨터에 하기의 처리를 실행시킨다. 컴퓨터는, 사전에 등록된 단어 또는 프레이즈를 기초로 하여, 복수의 등록 항목 각각을 좁혀 가기 위한 인덱스를 생성한다. 컴퓨터는, 인덱스에, 복수의 등록 항목 각각에 대해, 각 항목의 선두와 말미를 판별 가능한 플래그를 설정한다.
단어 및 독립된 의미를 갖는 프레이즈의 식별과, 단어 및 프레이즈에 대한 부호 할당이나, 전치 인덱스의 생성을 행할 수 있다.
도 1은 본 실시예에 따른 해석 장치의 처리의 일례를 설명하기 위한 도면이다.
도 2는 본 실시예에 따른 해석 장치의 구성을 도시한 기능 블록도이다.
도 3은 문자열 데이터의 데이터 구조의 일례를 도시한 도면이다.
도 4는 사전 데이터의 데이터 구조의 일례를 도시한 도면이다.
도 5는 배열 데이터의 데이터 구조의 일례를 도시한 도면이다.
도 6은 인덱스의 데이터 구조의 일례를 도시한 도면이다.
도 7은 인덱스의 해시화를 설명하기 위한 도면이다.
도 8은 인덱스 데이터의 데이터 구조의 일례를 도시한 도면이다.
도 9는 해시화한 인덱스를 복원하는 처리의 일례를 설명하기 위한 도면이다.
도 10은 단어 또는 프레이즈를 추출하는 처리의 일례를 설명하기 위한 도면(1)이다.
도 11은 단어 또는 프레이즈를 추출하는 처리의 일례를 설명하기 위한 도면(2)이다.
도 12는 해석 장치의 설정부의 처리 순서를 도시한 흐름도이다.
도 13은 해석 장치의 추출부의 처리 순서를 도시한 흐름도이다.
도 14는 해석 장치와 동일한 기능을 실현하는 컴퓨터의 하드웨어 구성의 일례를 도시한 도면이다.
이하에, 본원이 개시하는 해석 프로그램, 해석 방법 및 해석 장치의 실시예를 도면에 기초하여 상세히 설명한다. 한편, 이 실시예에 의해 본 발명이 한정되는 것은 아니다.
[실시예]
도 1은 본 실시예에 따른 해석 장치의 처리의 일례를 설명하기 위한 도면이다. 도 1에 도시된 바와 같이, 해석 장치는, 문자열 데이터(140a)로부터, 분할 후보가 되는 단어 및 의미 있는 프레이즈를 추출하는 경우에, 하기의 처리를 실행한다. 예컨대, 문자열 데이터(140a)는, 영어로 기재된 문서의 데이터인 것으로 한다.
해석 장치는, 문자열 데이터(140a)와, 사전 데이터(140b)를 비교한다. 사전 데이터(140b)는, 분할 후보가 되는 단어 및 프레이즈를 정의한 데이터이다. 본 실시예에서는 일례로서, 프레이즈를 구성하는 복수의 단어 사이에 존재하는 스페이스를 「△」로 나타낸다.
해석 장치는, 문자열 데이터(140a)를 선두로부터 주사(走査)하여, 사전 데이터(140b)에 정의된 단어 또는 프레이즈에 히트한 문자열을 추출하고, 배열 데이터(140c)에 저장한다.
배열 데이터(140c)는, 문자열 데이터(140a)에 포함되는 문자열 중, 사전 데이터(140b)에 정의된 단어 또는 프레이즈를 갖는다. 각 단어, 프레이즈의 단락에는, <US(unit separator)>를 등록한다. 예컨대, 해석 장치는, 문자열 데이터(140a)와, 사전 데이터(140b)를 비교에 의해, 사전 데이터(140b)에 등록된 「white」, 「White△House」, 「white△hunter」가 순서대로 히트한 경우에는, 도 1에 도시된 배열 데이터(140c)를 생성한다.
해석 장치는, 배열 데이터(140c)를 생성하면, 배열 데이터(140c)에 대응하는 인덱스(140d)를 생성한다. 인덱스(140d)는, 문자와, 오프셋을 대응시킨 정보이다. 오프셋은, 배열 데이터(140c) 상에 존재하는 해당하는 문자의 위치를 나타내는 것이다. 예컨대, 문자 「w」가, 배열 데이터(140c)의 선두로부터 n1 문자째에 존재하는 경우에는, 인덱스(140d)의 문자 「w」에 대응하는 행(비트맵)에 있어서, 오프셋 n1의 위치에 플래그 「1」이 선다.
또한, 본 실시예에 있어서의 인덱스(140d)는, 단어 또는 프레이즈의 「선두」, 「말미」, <US>의 위치도, 오프셋과 대응시킨다. 예컨대, 단어 「white」의 선두는 「w」, 말미는 「e」가 된다. 단어 「white」의 선두 「w」가, 배열 데이터(140c)의 선두로부터 n2 문자째에 존재하는 경우에는, 인덱스(140d)의 선두에 대응하는 행에 있어서, 오프셋 n2의 위치에 플래그 「1」이 선다. 단어 「white」의 말미 「e」가, 배열 데이터(140c)의 선두로부터 n3 문자째에 존재하는 경우에는, 인덱스(140d)의 「말미」에 대응하는 행에 있어서, 오프셋 n3의 위치에 플래그 「1」이 선다.
프레이즈 「White△House」의 선두는 「W」, 말미는 「e」가 된다. 프레이즈 「White△House」의 선두 「W」가, 배열 데이터(140c)의 선두로부터 n4 문자째에 존재하는 경우에는, 인덱스(140d)의 「선두」에 대응하는 행에 있어서, 오프셋 n4의 위치에 플래그 「1」이 선다. 프레이즈 「White△House」의 말미 「e」가, 배열 데이터(140c)의 선두로부터 n5 문자째에 존재하는 경우에는, 인덱스(140d)의 「말미」에 대응하는 행에 있어서, 오프셋 n5의 위치에 플래그 「1」이 선다.
또한, 「<US>」가, 배열 데이터(140c)의 선두로부터 n6 문자째에 존재하는 경우에는, 인덱스(140d)의 「<US>」에 대응하는 행에 있어서, 오프셋 n6의 위치에 플래그 「1」이 선다.
해석 장치는, 인덱스(140d)를 참조함으로써, 문자열 데이터(140a)에 포함되는 단어 및 프레이즈를 구성하는 문자의 위치, 문자의 선두, 말미, 단락(<US>)을 파악할 수 있다. 또한, 인덱스(140d)로부터 판단 가능한 선두로부터 말미까지 포함되는 문자열은, 의미 있는 하나의 문자열(프레이즈)이라고 할 수 있다.
해석 장치는, 인덱스(140d)를 기초로 하여, 선두로부터 말미까지의 문자열을 단락의 단위로 하여, 최장(最長) 일치 문자열을 판정함으로써, 문자열 데이터(140a)로부터, 분할 가능한 단어 또는 프레이즈를 추출한다. 도 1에 도시된 추출 결과(140e)에는, 단어 「White」, 의미 있는 프레이즈 「White△House」, 「white△hunter」가 추출되어 있다.
상기한 바와 같이, 해석 장치는, 문자열 데이터(140a) 및 사전 데이터(140b)를 기초로 하여, 사전 데이터(140b)의 등록 항목에 관한 인덱스(140d)를 생성하고, 각 등록 항목에 대해, 선두와 말미를 판별 가능한 플래그를 설정한다. 그리고, 해석 장치는, 인덱스(140d)를 이용함으로써, 문자열 데이터(140a)로부터 복수의 분할 가능한 단어 또는 프레이즈를 추출한다. 예컨대, 인덱스(140d)는, 사전 데이터(140b)에 정의된 의미 있는 문자열의 덩어리가 각각, 선두·말미의 플래그에 의해, 식별 가능하게 되어 있고, 선두로부터 말미까지의 문자열을 단락의 단위로 하여, 최장 일치 문자열을 판정함으로써, 분할 가능한 단어 또는 프레이즈를 추출하고 있다. 이 때문에, 단어 및 독립된 의미를 갖는 프레이즈를 인식할 수 있고, 단어 및 프레이즈에 대한 값을 이용한 해석을 행할 수 있다.
예컨대, 단어 및 프레이즈에 대한 값을 이용한 해석의 일례로서는, 해석 장치가 추출한 단어, 및 프레이즈를 처리 단위로 하여, 문자열 데이터의 벡터화를 행하는 처리를 들 수 있다.
또한, 본 실시예에 따른 해석 장치는, 인덱스(140d)를 이용하여, 문자열 데이터(140a)로부터, 단어 및 프레이즈를 추출하고 있고, 특허문헌 1과 같은 동시 출현 통계값을 산출하고 있지 않다. 이 때문에, 계산 비용을 삭감하는 것도 가능하다. 한편, 배경 사정으로서, 의미 단위로서의 프레이즈 사전을 준비하고자 하면, 사전의 사이즈가 지나치게 커지기 때문에, 종래에서는 의미 단위로서의 프레이즈에 대응한 부호화는 이루어져 있지 않다.
도 2는 본 실시예에 따른 해석 장치의 구성을 도시한 기능 블록도이다. 도 2에 도시된 바와 같이, 해석 장치(100)는, 통신부(110)와, 입력부(120)와, 표시부(130)와, 기억부(140)와, 제어부(150)를 갖는다.
통신부(110)는, 네트워크를 통해, 다른 외부 장치와 통신을 행하는 처리부이다. 통신부(110)는, 통신 장치에 대응한다. 예컨대, 해석 장치(100)는, 외부 장치로부터, 문자열 데이터(140a), 사전 데이터(140b) 등을 수신하여, 기억부(140)에 저장해도 좋다.
입력부(120)는, 각종의 정보를 해석 장치(100)에 입력하기 위한 입력 장치이다. 예컨대, 입력부(120)는, 키보드나 마우스, 터치 패널 등에 대응한다.
표시부(130)는, 제어부(150)로부터 출력되는 각종의 정보를 표시하기 위한 표시 장치이다. 예컨대, 표시부(130)는, 액정 디스플레이나 터치 패널에 대응한다.
기억부(140)는, 문자열 데이터(140a), 사전 데이터(140b), 배열 데이터(140c), 인덱스 데이터(145), 추출 결과(140e)를 갖는다. 기억부(140)는, (Flash Memory) 등의 반도체 메모리 소자나, HDD(Hard Disk Drive) 등의 기억 장치에 대응한다.
문자열 데이터(140a)는, 처리 대상이 되는 문서의 데이터이다. 도 3은 문자열 데이터의 데이터 구조의 일례를 도시한 도면이다. 도 3에 도시된 바와 같이, 문자열 데이터(140a)는, 예컨대, 영어로 기재된 것이 된다. 도 3에 도시된 예에서는, 단어 사이의 스페이스 「△」의 도시를 생략한다.
사전 데이터(140b)는, 분할 후보가 되는 단어 또는 프레이즈를 정의하는 정보이다. 사전 데이터(140b)에 포함되는 프레이즈는, 복수의 단어로 구성되며, 하나의 의미 있는 프레이즈가 된다. 도 4는 사전 데이터의 데이터 구조의 일례를 도시한 도면이다. 도 4에 도시된 바와 같이, 이 사전 데이터(140b)는, 단어·프레이즈와, 품사와, 활용형을 대응시킨다. 이 중, 단어·프레이즈는, 분할 후보가 되는 단어 또는 프레이즈를 나타내는 것이다. 품사는, 「단어·프레이즈」의 난에 저장된 단어의 품사를 나타내는 것이다. 활용형은, 「단어·프레이즈」의 난에 저장된 단어의 각 활용형을 나타내는 것이다.
배열 데이터(140c)는, 문자열 데이터(140a)에 포함되는 문자열 중, 사전 데이터(140b)에 정의된 단어 또는 프레이즈를 갖는다. 도 5는 배열 데이터의 데이터 구조의 일례를 도시한 도면이다. 도 5에 도시된 예에서는, 배열 데이터(140c)는, 각 단어, 각 프레이즈가 <US>에 의해 나누어져 있다. 한편, 배열 데이터(140c)의 상측에 나타내는 숫자는, 배열 데이터(140c)의 선두 「0」으로부터의 오프셋을 나타낸다.
인덱스 데이터(145)는, 도 1에서 설명한 인덱스(140d)에 대응하는 데이터이다. 후술하는 바와 같이, 인덱스(140d)는, 해시화되어, 인덱스 데이터(145)로서, 기억부(140)에 저장된다.
추출 결과(140e)는, 후술하는 제어부(150)의 처리에 의해, 문자열 데이터(140a)로부터 추출되는, 분할 후보가 되는 단어 및 의미 있는 프레이즈의 추출 결과를 나타내는 것이다.
제어부(150)는, 설정부(150a) 및 추출부(150b)를 갖는다. 제어부(150)는, CPU(Central Processing Unit)나 MPU(Micro Processing Unit) 등에 의해 실현할 수 있다. 또한, 제어부(150)는, ASIC(Application Specific Integrated Circuit)나 FPGA(Field Programmable Gate Array) 등의 하드 와이어드 로직에 의해서도 실현할 수 있다.
설정부(150a)는, 문자열 데이터(140a) 및 사전 데이터(140b)를 기초로 하여, 배열 데이터(140c)를 생성하고, 배열 데이터(140c)를 기초로 하여, 인덱스 데이터(145)를 생성하는 처리부이다.
설정부(150a)가, 문자열 데이터(140a)와 사전 데이터(140b)를 기초로 하여, 배열 데이터(140c)를 생성하는 처리의 일례에 대해 설명한다. 설정부(150a)는, 문자열 데이터(140a)와, 사전 데이터(140b)를 비교한다. 설정부(150a)는, 문자열 데이터(140a)를 선두로부터 주사하여, 사전 데이터(140b)에 등록된 단어·프레이즈에 히트한 문자열을 추출하고, 배열 데이터(140c)에 저장한다. 설정부(150a)는, 히트한 문자열을 배열 데이터(140c)에 저장하고, 다음으로 히트한 문자열을 배열 데이터(140c)에 저장하는 경우에는, 앞의 문자열 다음에 <US>를 설정하고, 설정한 <US> 다음에, 다음으로 히트한 문자열을 저장한다. 설정부(150a)는, 상기 처리를 반복해서 실행함으로써, 배열 데이터(140c)를 생성한다.
설정부(150a)는, 배열 데이터(140c)를 생성한 후에, 배치 인덱스(140d)를 생성한다. 설정부(150a)는, 배열 데이터(140c)를 선두로부터 주사하여, 문자와 오프셋, 문자열의 선두와 오프셋, 문자열의 말미와 오프셋, <US>와 오프셋을 대응시킴으로써, 인덱스(140d)를 생성한다.
도 6은 인덱스의 데이터 구조의 일례를 도시한 도면이다. 도 6에 도시된 바와 같이, 인덱스(140d)는, 각 문자, △(스페이스), <US>, 선두, 말미에 대응하는 비트맵(21∼32)을 갖는다. 예컨대, 문자 「w」, 「h」, 「i」, 「t」, 「e」, 「△(스페이스)」, 「o」, 「u」, 「s」에 대응하는 비트맵을, 비트맵(21∼29)으로 한다. 도 6에서는, 다른 문자에 대응하는 비트맵의 도시는 생략한다.
<US>에 대응하는 비트맵을 비트맵(30)으로 한다. 문자의 「선두」에 대응하는 비트맵을 비트맵(31)으로 한다. 문자의 「말미」에 대응하는 비트맵을 비트맵(32)으로 한다.
예컨대, 도 5에 도시된 배열 데이터(140c)에 있어서, 문자 「w」가, 배열 데이터(140c)의 오프셋 「6, 12, 24」에 존재하고 있다. 이 때문에, 설정부(150a)는, 도 6에 도시된 인덱스(140d)의 비트맵(21)의 오프셋 「6, 12, 24」에 플래그 「1」을 세운다. 배열 데이터(140c)는, 다른 문자, <US>에 대해서도 마찬가지로, 플래그를 세운다.
도 5에 도시된 배열 데이터(140c)에 있어서, 각 단어, 프레이즈의 문자의 선두가, 배열 데이터(140c)의 오프셋 「6, 12, 24」에 존재하고 있다. 이 때문에, 설정부(150a)는, 도 6에 도시된 인덱스(140d)의 비트맵(31)의 오프셋 「6, 12, 24」에 플래그 「1」을 세운다.
도 5에 도시된 배열 데이터(140c)에 있어서, 각 단어, 프레이즈의 문자의 말미가, 배열 데이터(140c)의 오프셋 「10, 22」에 존재하고 있다. 이 때문에, 설정부(150a)는, 도 6에 도시된 인덱스(140d)의 비트맵(32)의 오프셋 「10, 22」에 플래그 「1」을 세운다.
설정부(150a)는, 인덱스(140d)를 생성하면, 인덱스(140d)의 데이터량을 삭감하기 위해서, 인덱스(140d)를 해시화함으로써, 인덱스 데이터(145)를 생성한다.
도 7은 인덱스의 해시화를 설명하기 위한 도면이다. 여기서는 일례로서, 인덱스에 비트맵(10)이 포함되는 것으로 하고, 이러한 비트맵(10)을 해시화하는 경우에 대해 설명한다.
예컨대, 설정부(150a)는, 비트맵(10)으로부터, 베이스 29의 비트맵(10a)과, 베이스 31의 비트맵(10b)을 생성한다. 비트맵(10a)은, 비트맵(10)에 대해, 오프셋 29마다 단락을 설정하고, 설정한 단락을 선두로 하는 플래그 「1」의 오프셋을, 비트맵(10a)의 오프셋 0∼28의 플래그로 표현한다.
설정부(150a)는, 비트맵(10)의 오프셋 0∼28까지의 정보를, 비트맵(10a)에 복사한다. 설정부(150a)는, 비트맵(10a)의 29 이후의 오프셋의 정보를 하기와 같이 처리한다.
비트맵(10)의 오프셋 「35」에 플래그 「1」이 서 있다. 오프셋 「35」는, 오프셋 「28+7」이기 때문에, 설정부(150a)는, 비트맵(10a)의 오프셋 「6」에 「(1)」을 세운다. 한편, 오프셋의 1번째를 0으로 하고 있다. 비트맵(10)의 오프셋 「42」에 플래그 「1」이 서 있다. 오프셋 「42」는, 오프셋 「28+14」이기 때문에, 설정부(150a)는, 비트맵(10a)의 오프셋 「11」에 플래그 「(1)」을 세운다.
비트맵(10b)은, 비트맵(10)에 대해, 오프셋 31마다 단락을 설정하고, 설정한 단락을 선두로 하는 플래그 「1」의 오프셋을, 비트맵(10b)의 오프셋 0∼30의 플래그로 표현한다.
비트맵(10)의 오프셋 「35」에 플래그 「1」이 서 있다. 오프셋 「35」는, 오프셋 「30+5」이기 때문에, 설정부(150a)는, 비트맵(10b)의 오프셋 「4」에 「(1)」을 세운다. 한편, 오프셋의 1번째는 0으로 하고 있다. 비트맵(10)의 오프셋 「42」에 플래그 「1」이 서 있다. 오프셋 「42」는, 오프셋 「30+12」이기 때문에, 설정부(150a)는, 비트맵(10b)의 오프셋 「12」에 플래그 「(1)」을 세운다.
설정부(150a)는, 상기 처리를 실행함으로써, 비트맵(10)으로부터 비트맵(10a, 10b)을 생성한다. 이 비트맵(10a, 10b)이, 비트맵(10)을 해시화한 결과가 된다. 여기서는, 비트맵(10)의 길이가 0∼43인 경우에 대해 설명하였으나, 비트맵(10)의 길이가 43 이상이 되는 경우라도, 비트맵(10)에 설정된 플래그 「1」을, 비트맵(10a) 및 비트맵(10b)으로 표현할 수 있다.
설정부(150a)는, 도 6에 도시된 각 비트맵(21∼32)에 대해 해시화를 행함으로써, 인덱스 데이터(145)를 생성한다. 도 8은 인덱스 데이터의 데이터 구조의 일례를 도시한 도면이다. 예컨대, 도 6에 도시된 인덱스(140d)의 비트맵(21)에 대해, 해시화를 행하면, 도 8에 도시된 비트맵(21a) 및 비트맵(21b)이 생성된다. 도 6에 도시된 인덱스(140d)의 비트맵(22)에 대해, 해시화를 행하면, 도 8에 도시된 비트맵(22a) 및 비트맵(22b)이 생성된다. 도 6에 도시된 인덱스(140d)의 비트맵(30)에 대해, 해시화를 행하면, 도 8에 도시된 비트맵(30a) 및 비트맵(30b)이 생성된다. 도 8에 있어서, 그 외의 해시화된 비트맵에 관한 도시를 생략한다.
도 2의 설명으로 되돌아간다. 추출부(150b)는, 인덱스 데이터(145)를 기초로 하여 인덱스(140d)를 생성하고, 인덱스(140d)를 기초로 하여, 복수의 분할 가능한 단어 또는, 의미 있는 프레이즈를 추출하는 처리부이다.
먼저, 추출부(150b)가, 인덱스 데이터(145)를 기초로 하여, 인덱스(140d)를 생성하는 처리의 일례에 대해 설명한다. 도 9는 해시화한 인덱스를 복원하는 처리의 일례를 설명하기 위한 도면이다. 여기서는 일례로서, 비트맵(10a)과 비트맵(10b)을 기초로 하여, 비트맵(10)을 복원하는 처리에 대해 설명한다. 비트맵(10, 10a, 10b)은, 도 7에서 설명한 것에 대응한다.
단계 S10의 처리에 대해 설명한다. 추출부(150b)는, 베이스 29의 비트맵(10a)을 기초로 하여, 비트맵(11a)을 생성한다. 비트맵(11a)의 오프셋 0∼28의 플래그의 정보는, 비트맵(10a)의 오프셋 0∼28의 플래그의 정보와 동일해진다. 비트맵(11a)의 오프셋 29 이후의 플래그의 정보는, 비트맵(10a)의 오프셋 0∼28의 플래그의 정보의 반복이 된다.
단계 S11의 처리에 대해 설명한다. 추출부(150b)는, 베이스 31의 비트맵(10b)을 기초로 하여, 비트맵(11b)을 생성한다. 비트맵(11b)의 오프셋 0∼30의 플래그의 정보는, 비트맵(10b)의 오프셋 0∼30의 플래그의 정보와 동일해진다. 비트맵(11b)의 오프셋 31 이후의 플래그의 정보는, 비트맵(10b)의 오프셋 0∼30의 플래그의 정보의 반복이 된다.
단계 S12의 처리에 대해 설명한다. 추출부(150b)는, 비트맵(11a)과 비트맵(11b)의 AND 연산을 실행함으로써, 비트맵(10)을 생성한다. 도 9에 도시된 예에서는, 오프셋 「0, 5, 11, 18, 25, 35, 42」에 있어서, 비트맵(11a) 및 비트맵(11b)의 플래그가 「1」로 되어 있다. 이 때문에, 비트맵(10)의 오프셋 「0, 5, 11, 18, 25, 35, 42」의 플래그가 「1」이 된다. 이 비트맵(10)이, 복원된 비트맵이 된다. 추출부(150b)는, 다른 비트맵에 대해서도 동일한 처리를 반복해서 실행함으로써, 각 비트맵을 복원하여, 인덱스(140d)를 생성한다.
추출부(150b)는, 인덱스(140d)를 생성한 후에, 인덱스(140d)를 기초로 하여, 분할 가능한 단어 또는 프레이즈를 추출한다. 도 10 및 도 11은 단어 또는 프레이즈를 추출하는 처리의 일례를 설명하기 위한 도면이다. 도 10 및 도 11에 도시된 예에서는, 문자열 데이터(140a)에 「White△House…」가 포함되어 있고, 이러한 문자열 데이터(140a)의 1번째의 문자로부터 순서대로, 해당하는 문자의 비트맵을, 인덱스(140d)로부터 판독하여, 하기의 처리를 실행한다.
단계 S20에 대해 설명한다. 추출부(150b)는, 인덱스(140d)로부터, 선두의 비트맵(31), 말미의 비트맵(32), 문자 「w」의 비트맵(21)을 판독한다. 추출부(150b)는, 선두의 비트맵(31)과 문자 「w」의 비트맵(21)의 AND 연산을 실행함으로써, 문자의 선두 위치를 특정한다. 선두의 비트맵(31)과 문자 「w」의 비트맵(21)의 AND 연산의 결과를 비트맵(31A)으로 한다. 비트맵(31A)에서는, 오프셋 「6, 12, 24」에 플래그 「1」이 서 있고, 오프셋 「6, 12, 24」가, 단어 또는 프레이즈의 선두인 것을 나타낸다.
추출부(150b)는, 말미의 비트맵(32)과 문자 「w」의 비트맵(21)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자 「w」의 비트맵(21)의 AND 연산의 결과를 비트맵(32A)으로 한다. 비트맵(32A)에는, 플래그 「1」이 서 있지 않기 때문에, 「w」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S21에 대해 설명한다. 추출부(150b)는, 문자 「w」의 비트맵(21)을 좌측으로 하나 시프트함으로써, 비트맵(21A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「h」의 비트맵(22)을 판독한다. 추출부(150b)는, 비트맵(21A)과 비트맵(22)의 AND 연산을 실행함으로써, 문자열 「wh」에 대응하는 비트맵(50)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「wh」의 비트맵(50)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「wh」의 비트맵(50)의 AND 연산의 결과를 비트맵(32B)으로 한다. 비트맵(32B)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「wh」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S22에 대해 설명한다. 추출부(150b)는, 문자열 「wh」의 비트맵(50)을 좌측으로 하나 시프트함으로써, 비트맵(50A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「i」의 비트맵(23)을 판독한다. 추출부(150b)는, 비트맵(50A)과 비트맵(23)의 AND 연산을 실행함으로써, 문자열 「whi」에 대응하는 비트맵(51)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「whi」의 비트맵(51)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「whi」의 비트맵(51)의 AND 연산의 결과를 비트맵(32C)으로 한다. 비트맵(32C)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「whi」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S23에 대해 설명한다. 추출부(150b)는, 문자열 「whi」의 비트맵(51)을 좌측으로 하나 시프트함으로써, 비트맵(51A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「t」의 비트맵(24)을 판독한다. 추출부(150b)는, 비트맵(51A)과 비트맵(24)의 AND 연산을 실행함으로써, 문자열 「whit」에 대응하는 비트맵(52)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「whit」의 비트맵(52)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「whit」의 비트맵(52)의 AND 연산의 결과를 비트맵(32D)으로 한다. 비트맵(32D)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「whit」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S24에 대해 설명한다. 추출부(150b)는, 문자열 「whit」의 비트맵(52)을 좌측으로 하나 시프트함으로써, 비트맵(52A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「e」의 비트맵(25)을 판독한다. 추출부(150b)는, 비트맵(52A)과 비트맵(25)의 AND 연산을 실행함으로써, 문자열 「white」에 대응하는 비트맵(53)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white」의 비트맵(53)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white」의 비트맵(53)의 AND 연산의 결과를 비트맵(32E)으로 한다. 비트맵(32E)에는, 플래그 「1」이 서 있기 때문에, 문자열 「white」에 말미 후보 「e」가 존재하는 것을 나타낸다. 추출부(150b)는, 단계 S20에서 판정한 선두의 문자 「w」로부터, 단계 S24에서 판정한 말미의 문자 「e」까지의 문자열 「white」를 분할 후보의 문자열로서 추출한다.
단계 S25에 대해 설명한다. 추출부(150b)는, 문자열 「white」의 비트맵(53)을 좌측으로 하나 시프트함으로써, 비트맵(53A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「△(스페이스)」의 비트맵(26)을 판독한다. 추출부(150b)는, 비트맵(53A)과 비트맵(26)의 AND 연산을 실행함으로써, 문자열 「white△」에 대응하는 비트맵(54)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white△」의 비트맵(54)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white△」의 비트맵(54)의 AND 연산의 결과를 비트맵(32F)으로 한다. 비트맵(32F)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「white△」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S26에 대해 설명한다. 추출부(150b)는, 문자열 「white△」의 비트맵(54)을 좌측으로 하나 시프트함으로써, 비트맵(54A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「h」의 비트맵(22)을 판독한다. 추출부(150b)는, 비트맵(54A)과 비트맵(22)의 AND 연산을 실행함으로써, 문자열 「white△h」에 대응하는 비트맵(55)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white△h」의 비트맵(55)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white△h」의 비트맵(55)의 AND 연산의 결과를 비트맵(32G)으로 한다. 비트맵(32G)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「white△h」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S27에 대해 설명한다. 추출부(150b)는, 문자열 「white△h」의 비트맵(55)을 좌측으로 하나 시프트함으로써, 비트맵(55A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「o」의 비트맵(27)을 판독한다. 추출부(150b)는, 비트맵(55A)과 비트맵(27)의 AND 연산을 실행함으로써, 문자열 「white△ho」에 대응하는 비트맵(56)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white△ho」의 비트맵(56)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white△ho」의 비트맵(56)의 AND 연산의 결과를 비트맵(32H)으로 한다. 비트맵(32H)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「white△ho」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S28에 대해 설명한다. 추출부(150b)는, 문자열 「white△ho」의 비트맵(56)을 좌측으로 하나 시프트함으로써, 비트맵(56A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「u」의 비트맵(28)을 판독한다. 추출부(150b)는, 비트맵(56A)과 비트맵(28)의 AND 연산을 실행함으로써, 문자열 「white△hou」에 대응하는 비트맵(57)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white△hou」의 비트맵(57)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white△hou」의 비트맵(57)의 AND 연산의 결과를 비트맵(32I)으로 한다. 비트맵(32I)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「white△hou」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S29에 대해 설명한다. 추출부(150b)는, 문자열 「white△hou」의 비트맵(57)을 좌측으로 하나 시프트함으로써, 비트맵(57A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「s」의 비트맵(29)을 판독한다. 추출부(150b)는, 비트맵(57A)과 비트맵(29)의 AND 연산을 실행함으로써, 문자열 「white△hous」에 대응하는 비트맵(58)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white△hous」의 비트맵(58)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white△hous」의 비트맵(58)의 AND 연산의 결과를 비트맵(32J)으로 한다. 비트맵(32J)에는, 플래그 「1」이 서 있지 않기 때문에, 문자열 「white△hous」에 말미 후보가 존재하지 않는 것을 나타낸다.
단계 S30에 대해 설명한다. 추출부(150b)는, 문자열 「white△hous」의 비트맵(58)을 좌측으로 하나 시프트함으로써, 비트맵(58A)을 생성한다. 추출부(150b)는, 인덱스(140d)로부터, 문자 「e」의 비트맵(25)을 판독한다. 추출부(150b)는, 비트맵(58A)과 비트맵(25)의 AND 연산을 실행함으로써, 문자열 「white△house」에 대응하는 비트맵(59)을 생성한다.
추출부(150b)는, 말미의 비트맵(32)과 문자열 「white△house」의 비트맵(59)의 AND 연산을 실행함으로써, 문자의 말미 위치를 특정한다. 말미의 비트맵(32)과 문자열 「white△house」의 비트맵(59)의 AND 연산의 결과를 비트맵(32K)으로 한다. 비트맵(32K)에는, 플래그 「1」이 서 있기 때문에, 문자열 「white△house」에 말미 후보 「e」가 존재하는 것을 나타낸다. 추출부(150b)는, 단계 S20에서 판정한 선두의 문자 「w」로부터, 단계 S30에서 판정한 말미의 문자 「e」까지의 문자열 「white△house」를 분할 후보의 문자열로서 추출한다.
추출부(150b)는, 단계 S20∼단계 S30까지의 처리를 실행함으로써, 단어 「white」와, 의미 있는 프레이즈 「White△House」를 추출한다. 추출부(150b)는, 추출한 단어 및 프레이즈의 정보를, 추출 결과(140e)로서 기억부(140)에 저장한다.
다음으로, 본 실시예에 따른 해석 장치(100)의 처리 순서의 일례에 대해 설명한다. 도 12는 해석 장치의 설정부의 처리 순서를 도시한 흐름도이다. 도 12에 도시된 바와 같이, 해석 장치(100)의 설정부(150a)는, 문자열 데이터(140a)와 사전 데이터(140b)의 단어·프레이즈를 비교한다(단계 S101).
설정부(150a)는, 히트한 단어·프레이즈를 배열 데이터(140c)에 등록한다(단계 S102). 설정부(150a)는, 배열 데이터(140c)를 기초로 하여, 인덱스(140d)를 생성한다(단계 S103). 설정부(150a)는, 인덱스(140d)를 해시화하여, 인덱스 데이터(145)를 생성한다(단계 S104).
도 13은 해석 장치의 추출부의 처리 순서를 도시한 흐름도이다. 도 13에 도시된 바와 같이, 해석 장치의 추출부(150b)는, 해시화된 인덱스 데이터(145)로부터 인덱스(140d)를 복원한다(단계 S201).
추출부(150b)는, 문자열 데이터(140a)의 선두로부터 1번째의 문자의 비트맵을 제1 비트맵으로 설정하고, 선두로부터 2번째의 문자의 비트맵을 제2 비트맵으로 설정한다(단계 S202).
추출부(150b)는, 제1 비트맵과 선두 비트맵을 「AND 연산」하고, 연산 결과에 「1」이 존재하는 경우에, 제1 비트맵에 대응하는 문자를 선두 문자로서 특정한다(단계 S203).
추출부(150b)는, 제1 비트맵과 말미 비트맵을 「AND 연산」하고, 연산 결과에 「1」이 존재하는 경우에, 제1 비트맵에 대응하는 문자를, 말미 문자로서 특정하여, 분할 후보를 추출한다(단계 S204).
추출부(150b)는, 문자열 데이터(140a)의 종단에 도달한 경우에는(단계 S205, 예), 추출 결과(140e)를 기억부(140)에 보존한다(단계 S206). 한편, 추출부(150b)는, 문자열 데이터(140a)의 종단에 도달하고 있지 않은 경우에는(단계 S205, 아니오), 단계 S207로 이행한다.
추출부(150b)는, 제1 비트맵을 좌측으로 하나 시프트한다(단계 S207). 추출부(150b)는, 제1 비트맵과 제2 비트맵을 「AND 연산」한 비트맵을 새로운 제1 비트맵으로 설정한다(단계 S208).
추출부(150b)는, 제2 비트맵의 문자의 다음 문자에 대응하는 비트맵을, 새로운 제2 비트맵으로 설정하고 (단계 S209), 단계 S203으로 이행한다.
다음으로, 본 실시예에 따른 해석 장치(100)의 효과에 대해 설명한다. 해석 장치(100)는, 문자열 데이터(140a) 및 사전 데이터(140b)를 기초로 하여, 사전 데이터(140b)의 등록 항목에 관한 인덱스(140d)를 생성하고, 각 등록 항목에 대해, 선두와 말미를 판별 가능한 플래그를 설정한다. 그리고, 해석 장치(100)는, 인덱스(140d)를 이용함으로써, 문자열 데이터(140a)로부터 복수의 분할 가능한 단어 또는 프레이즈를 추출한다. 예컨대, 인덱스(140d)는, 사전 데이터(140b)에 정의된 의미 있는 문자열의 덩어리가 각각, 선두·말미의 플래그에 의해, 식별 가능하게 되어 있고, 선두로부터 말미까지의 문자열을 단락의 단위로 하여, 최장 일치 문자열을 판정함으로써, 분할 가능한 단어 또는 프레이즈를 추출하고 있다. 이 때문에, 단어 및 독립된 의미를 갖는 프레이즈를 인식할 수 있고, 단어 및 프레이즈에 대한 값을 이용한 해석을 행할 수 있다.
또한, 해석 장치(100)가 생성하는 인덱스(140d)에는, 복수의 등록 항목 각각에 대해, 문자열 데이터(140a)로부터 생성된 배열 데이터(140c)의 오프셋의 정보를 포함하고 있어, 분할 가능한 단어, 프레이즈의 위치를 특정할 수 있다.
다음으로, 상기 실시예에 나타낸 해석 장치(100)와 동일한 기능을 실현하는 컴퓨터의 하드웨어 구성의 일례에 대해 설명한다. 도 14는 해석 장치와 동일한 기능을 실현하는 컴퓨터의 하드웨어 구성의 일례를 도시한 도면이다.
도 14에 도시된 바와 같이, 컴퓨터(200)는, 각종 연산 처리를 실행하는 CPU(201)와, 사용자로부터의 데이터의 입력을 접수하는 입력 장치(202)와, 디스플레이(203)를 갖는다. 또한, 컴퓨터(200)는, 기억 매체로부터 프로그램 등을 판독하는 판독 장치(204)와, 유선 또는 무선 네트워크를 통해 다른 컴퓨터와의 사이에서 데이터의 수수(授受)를 행하는 인터페이스 장치(205)를 갖는다. 또한, 컴퓨터(200)는, 각종 정보를 일시 기억하는 RAM(206)과, 하드 디스크 장치(207)를 갖는다. 그리고, 각 장치(201∼207)는, 버스(208)에 접속된다.
하드 디스크 장치(207)는, 설정 프로그램(207a), 추출 프로그램(207b)을 갖는다. CPU(201)는, 설정 프로그램(207a), 추출 프로그램(207b)을 판독하여 RAM(206)에 전개한다.
설정 프로그램(207a)은, 설정 프로세스(206a)로서 기능한다. 추출 프로그램(207b)은, 추출 프로세스(206b)로서 기능한다.
설정 프로세스(206a)의 처리는, 설정부(150a)의 처리에 대응한다. 추출 프로세스(206b)의 처리는, 추출부(150b)의 처리에 대응한다.
한편, 각 프로그램(207a, 207b)에 대해서는, 반드시 처음부터 하드 디스크 장치(207)에 기억시켜 두지 않아도 좋다. 예컨대, 컴퓨터(200)에 삽입되는 플렉시블 디스크(FD), CD-ROM, DVD 디스크, 광자기 디스크, IC 카드 등의 「가반용(可搬用; portable)의 물리 매체」에 각 프로그램을 기억시켜 둔다. 그리고, 컴퓨터(300)가 각 프로그램(207a, 207b)을 판독하여 실행하도록 해도 좋다.
이상의 각 실시예를 포함하는 실시형태에 대해, 또한 이하의 부기를 개시한다.
(부기 1) 컴퓨터에,
단어 또는 프레이즈가 등록된, 복수의 등록 항목을 갖는 사전을 기초로 하여, 상기 복수의 등록 항목 각각에 관한 인덱스를 생성하고,
상기 인덱스에, 상기 복수의 등록 항목 각각에 대해, 각 항목의 선두와 말미를 판별 가능한 플래그를 설정하며,
상기 인덱스를 이용하여, 입력된 문자 데이터로부터 복수의 분할 가능한 단어 또는 프레이즈를 추출하는
처리를 실행시키는 해석 프로그램.
(부기 2) 상기 사전에 등록된 프레이즈 각각은, 복수의 단어로 구성되고, 또한,독립된 의미를 갖는 것을 특징으로 하는 부기 1에 기재된 해석 프로그램.
(부기 3) 상기 플래그를 설정하는 처리는, 상기 문자 데이터에 대해, 상기 복수의 등록 항목 각각의 존재 여부를 나타내는 인덱스를 생성하는 부기 1 또는 2에 기재된 해석 프로그램.
(부기 4) 상기 인덱스는, 상기 복수의 등록 항목 각각에 대해, 상기 문자 데이터 중의 위치에 관한 정보를 포함하는 부기 1, 2 또는 3에 기재된 해석 프로그램.
(부기 5) 컴퓨터가 실행하는 해석 방법으로서,
단어 또는 프레이즈가 등록된, 복수의 등록 항목을 갖는 사전을 기초로 하여, 상기 복수의 등록 항목 각각에 관한 인덱스를 생성하고,
상기 인덱스에, 상기 복수의 등록 항목 각각에 대해, 각 항목의 선두와 말미를 판별 가능한 플래그를 설정하며,
상기 인덱스를 이용하여, 입력된 문자 데이터로부터 복수의 분할 가능한 단어 또는 프레이즈를 추출하는
처리를 실행하는 해석 방법.
(부기 6) 상기 사전에 등록된 프레이즈 각각은, 복수의 단어로 구성되고, 또한, 독립된 의미를 갖는 것을 특징으로 하는 부기 5에 기재된 해석 방법.
(부기 7) 상기 플래그를 설정하는 처리는, 상기 문자 데이터에 대해, 상기 복수의 등록 항목 각각의 존재 여부를 나타내는 인덱스를 생성하는 부기 5 또는 6에 기재된 해석 방법.
(부기 8) 상기 인덱스는, 상기 복수의 등록 항목 각각에 대해, 상기 문자 데이터 중의 위치에 관한 정보를 포함하는 부기 5, 6 또는 7에 기재된 해석 방법.
(부기 9) 단어 또는 프레이즈가 등록된, 복수의 등록 항목을 갖는 사전을 기초로 하여, 상기 복수의 등록 항목 각각에 관한 인덱스를 생성하고, 상기 인덱스에, 상기 복수의 등록 항목 각각에 대해, 각 항목의 선두와 말미를 판별 가능한 플래그를 설정하는 설정부와,
상기 인덱스를 이용하여, 입력된 문자 데이터로부터 복수의 분할 가능한 단어 또는 프레이즈를 추출하는 추출부
를 갖는 것을 특징으로 하는 해석 장치.
(부기 10) 상기 사전에 등록된 프레이즈 각각은, 복수의 단어로 구성되고, 또한, 독립된 의미를 갖는 부기 9에 기재된 해석 장치.
(부기 11) 상기 설정부는, 상기 문자 데이터에 대해, 상기 복수의 등록 항목 각각의 존재 여부를 나타내는 인덱스를 생성하는 부기 9 또는 10에 기재된 해석 장치.
(부기 12) 상기 인덱스는, 상기 복수의 등록 항목 각각에 대해, 상기 문자 데이터 중의 위치에 관한 정보를 포함하는 부기 9, 10 또는 11에 기재된 해석 장치.
100: 해석 장치 110: 통신부
120: 입력부 130: 표시부
140: 기억부 140a: 문자열 데이터
140b: 사전 데이터 140c: 배열 데이터
140d: 인덱스 140e: 추출 결과
145: 인덱스 데이터 150: 제어부
150a: 설정부 150b: 추출부

Claims (9)

  1. 프로그램이 저장된 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    상기 프로그램은 컴퓨터가 처리를 실행하게 하고,
    상기 처리는,
    두 개 이상의 영어 단어와 영어 단어들 사이의 스페이스를 포함하는 영어 표현을 사전 데이터에 등록하는 것 - 상기 영어 표현은 숙어(compound word)임 - ;
    상기 사전 데이터에 기초하여 문자열 데이터로부터 제1 열 데이터를 추출하는 것 - 상기 제1 열 데이터는 상기 사전 데이터에 등록된 상기 영어 표현을 포함함 - ;
    상기 제1 열 데이터에 대한 인덱스 정보를 생성하는 것 - 상기 인덱스 정보는 비트맵 형식으로 문자 각각의 출현 위치를 나타냄 - ;
    상기 인덱스 정보에 플래그 정보를 설정하는 것 - 상기 플래그 정보는 상기 제1 열 데이터 내의 영어 표현 각각의 선두 위치와 상기 제1 열 데이터 내의 영어 표현 각각의 말미 위치를 나타냄 - ; 및
    상기 플래그 정보가 설정된 인덱스 정보를 이용하여 최장 일치 문자열을 판정함으로써, 상기 문자열 데이터로부터, 상기 사전 데이터에 등록된 복수의 분할 가능한 영어 표현을 추출하는 것
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    복수의 영어 표현 각각은 복수의 단어를 포함하고, 또한 의미를 갖는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  3. 제1항에 있어서,
    상기 처리는 또한,
    상기 문자열 데이터에 대해, 복수의 영어 표현 각각의 존재 또는 부존재를 나타내는 정보를 생성하는 것
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  4. 컴퓨터에 의해 실행되는 열 데이터 해석 방법에 있어서,
    두 개 이상의 영어 단어와 영어 단어들 사이의 스페이스를 포함하는 영어 표현을 사전 데이터에 등록하는 단계 - 상기 영어 표현은 숙어임 - ;
    상기 사전 데이터에 기초하여 문자열 데이터로부터 제1 열 데이터를 추출하는 단계 - 상기 제1 열 데이터는 상기 사전 데이터에 등록된 상기 영어 표현을 포함함 - ;
    상기 제1 열 데이터에 대한 인덱스 정보를 생성하는 단계 - 상기 인덱스 정보는 비트맵 형식으로 문자 각각의 출현 위치를 나타냄 - ;
    상기 인덱스 정보에 플래그 정보를 설정하는 단계 - 상기 플래그 정보는 상기 제1 열 데이터 내의 영어 표현 각각의 선두 위치와 상기 제1 열 데이터 내의 영어 표현 각각의 말미 위치를 나타냄 - ; 및
    상기 플래그 정보가 설정된 인덱스 정보를 이용하여 최장 일치 문자열을 판정함으로써, 상기 문자열 데이터로부터, 상기 사전 데이터에 등록된 복수의 분할 가능한 영어 표현을 추출하는 단계
    를 포함하는, 열 데이터 해석 방법.
  5. 열 데이터 해석 장치에 있어서,
    메모리; 및
    상기 메모리에 결합되고, 처리를 실행하도록 구성된 프로세서를 포함하고,
    상기 처리는,
    두 개 이상의 영어 단어와 영어 단어들 사이의 스페이스를 포함하는 영어 표현을 사전 데이터에 등록하는 것 - 상기 영어 표현은 숙어임 - ;
    상기 사전 데이터에 기초하여 문자열 데이터로부터 제1 열 데이터를 추출하는 것 - 상기 제1 열 데이터는 상기 사전 데이터에 등록된 상기 영어 표현을 포함함 - ;
    상기 제1 열 데이터에 대한 인덱스 정보를 생성하는 것 - 상기 인덱스 정보는 비트맵 형식으로 문자 각각의 출현 위치를 나타냄 - ;
    상기 인덱스 정보에 플래그 정보를 설정하는 것 - 상기 플래그 정보는 상기 제1 열 데이터 내의 영어 표현 각각의 선두 위치와 상기 제1 열 데이터 내의 영어 표현 각각의 말미 위치를 나타냄 - ; 및
    상기 플래그 정보가 설정된 인덱스 정보를 이용하여 최장 일치 문자열을 판정함으로써, 상기 문자열 데이터로부터, 상기 사전 데이터에 등록된 복수의 분할 가능한 영어 표현을 추출하는 것
    을 포함하는 것인, 열 데이터 해석 장치.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
KR1020200187563A 2017-04-10 2020-12-30 해석 프로그램, 해석 방법 및 해석 장치 KR102355731B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017077561A JP6880956B2 (ja) 2017-04-10 2017-04-10 解析プログラム、解析方法および解析装置
JPJP-P-2017-077561 2017-04-10
KR1020180039951A KR20180114513A (ko) 2017-04-10 2018-04-05 해석 프로그램, 해석 방법 및 해석 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180039951A Division KR20180114513A (ko) 2017-04-10 2018-04-05 해석 프로그램, 해석 방법 및 해석 장치

Publications (2)

Publication Number Publication Date
KR20210002435A KR20210002435A (ko) 2021-01-08
KR102355731B1 true KR102355731B1 (ko) 2022-01-25

Family

ID=62044474

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020180039951A KR20180114513A (ko) 2017-04-10 2018-04-05 해석 프로그램, 해석 방법 및 해석 장치
KR1020200187563A KR102355731B1 (ko) 2017-04-10 2020-12-30 해석 프로그램, 해석 방법 및 해석 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020180039951A KR20180114513A (ko) 2017-04-10 2018-04-05 해석 프로그램, 해석 방법 및 해석 장치

Country Status (5)

Country Link
US (1) US10936816B2 (ko)
EP (1) EP3388953A3 (ko)
JP (1) JP6880956B2 (ko)
KR (2) KR20180114513A (ko)
CN (1) CN108694229B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102655250B1 (ko) * 2023-10-12 2024-04-08 로지시스템(주) 이기종 감시제어가 가능한 자동제어시스템을 이용한 감시제어방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200211A1 (en) * 1999-02-09 2003-10-23 Katsumi Tada Document retrieval method and document retrieval system
KR101247346B1 (ko) * 2012-03-09 2013-03-26 윤기오 사전 검색 서비스 시스템 및 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0724055B2 (ja) * 1984-07-31 1995-03-15 株式会社日立製作所 単語分割処理方法
US4807181A (en) * 1986-06-02 1989-02-21 Smith Corona Corporation Dictionary memory with visual scanning from a selectable starting point
US4868750A (en) * 1987-10-07 1989-09-19 Houghton Mifflin Company Collocational grammar system
JP2833580B2 (ja) * 1996-04-19 1998-12-09 日本電気株式会社 全文インデックス作成装置および全文データベース検索装置
JP3143079B2 (ja) * 1997-05-30 2001-03-07 松下電器産業株式会社 辞書索引作成装置と文書検索装置
JP3636941B2 (ja) 1999-07-19 2005-04-06 松下電器産業株式会社 情報検索方法と情報検索装置
JP2001043221A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd 中国語単語分割装置
JP3318834B2 (ja) * 1999-07-30 2002-08-26 三菱電機株式会社 データファイルシステム及びデータ検索方法
US20060106604A1 (en) * 2002-11-11 2006-05-18 Yoshiyuki Okimoto Speech recognition dictionary creation device and speech recognition device
US7536408B2 (en) 2004-07-26 2009-05-19 Google Inc. Phrase-based indexing in an information retrieval system
US8131758B2 (en) * 2007-12-26 2012-03-06 Novell, Inc. Techniques for recognizing multiple patterns within a string
JP5204244B2 (ja) * 2008-11-27 2013-06-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 誤訳の検出を支援する装置及び方法
EP2990964A1 (en) * 2009-10-13 2016-03-02 Open Text Software GmbH Method for performing transactions on data and a transactional database
US20130262486A1 (en) * 2009-11-07 2013-10-03 Robert B. O'Dell Encoding and Decoding of Small Amounts of Text
CN101714172B (zh) * 2009-11-13 2012-03-21 华中科技大学 一种支持访问控制的索引结构的检索方法
CN102169495B (zh) * 2011-04-11 2014-04-02 趣拿开曼群岛有限公司 行业词典生成方法及装置
US20140129543A1 (en) * 2012-11-02 2014-05-08 Microsoft Corporation Search service including indexing text containing numbers in part using one or more number index structures
CN103544309B (zh) * 2013-11-04 2017-03-15 北京中搜网络技术股份有限公司 一种中文垂直搜索的检索串拆分方法
CN104572994B (zh) * 2015-01-06 2018-12-14 华为技术有限公司 用于搜索数据的方法和装置
CN105404677B (zh) * 2015-11-20 2018-12-18 四川神琥科技有限公司 一种基于树形结构的检索方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200211A1 (en) * 1999-02-09 2003-10-23 Katsumi Tada Document retrieval method and document retrieval system
KR101247346B1 (ko) * 2012-03-09 2013-03-26 윤기오 사전 검색 서비스 시스템 및 방법

Also Published As

Publication number Publication date
CN108694229A (zh) 2018-10-23
KR20180114513A (ko) 2018-10-18
US10936816B2 (en) 2021-03-02
US20180293225A1 (en) 2018-10-11
EP3388953A2 (en) 2018-10-17
KR20210002435A (ko) 2021-01-08
JP2018180808A (ja) 2018-11-15
EP3388953A3 (en) 2018-12-12
JP6880956B2 (ja) 2021-06-02
CN108694229B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
JP5599662B2 (ja) 統計的な方法を用いて漢字を自国語の発音列に変換するシステムおよび方法
JP2018010514A (ja) 対訳辞書作成装置、対訳辞書作成方法、及び対訳辞書作成プログラム
US8880391B2 (en) Natural language processing apparatus, natural language processing method, natural language processing program, and computer-readable recording medium storing natural language processing program
Zia et al. Urdu word segmentation using conditional random fields (CRFs)
KR102355731B1 (ko) 해석 프로그램, 해석 방법 및 해석 장치
US11842152B2 (en) Sentence structure vectorization device, sentence structure vectorization method, and storage medium storing sentence structure vectorization program
JP7102710B2 (ja) 情報生成プログラム、単語抽出プログラム、情報処理装置、情報生成方法及び単語抽出方法
JP6648421B2 (ja) 文書を処理する情報処理装置、情報処理方法、およびプログラム
JP4953440B2 (ja) 形態素解析装置、形態素解析方法、形態素解析プログラム及びコンピュータプログラムを格納した記録媒体
WO2014051015A1 (en) Character recognition apparatus, method and program
JP3952964B2 (ja) 読み情報決定方法及び装置及びプログラム
CN110709830B (zh) 储存有解析程序的记录介质、解析方法以及解析装置
Lehal et al. Automatic Bilingual Legacy-Fonts Identification and Conversion System.
JP2004258759A (ja) テキスト解析装置、方法及びプログラム
JP5289032B2 (ja) 文書検索装置
Lu et al. Korean-Chinese word translation using Chinese character knowledge
JP6221339B2 (ja) 翻訳装置及び翻訳方法
JP6306899B2 (ja) 非手指動作検出装置及びプログラム
KR20220045797A (ko) 축약형 번역 제공 방법 및 장치
CN117355826A (zh) 信息处理程序、信息处理方法以及信息处理装置
Myint et al. Currency Word Translation from Pa-Oh to Myanmar
Huang Word Segmentation and Ambiguity in English and Chinese NLP & IR
TW201843603A (zh) 判讀推測裝置
JP2009003820A (ja) 計算機システム
JP2000339313A (ja) 辞書データ改良装置、辞書データ改良方法および情報記録媒体

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant