KR101954865B1 - 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램 - Google Patents

비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101954865B1
KR101954865B1 KR1020170026473A KR20170026473A KR101954865B1 KR 101954865 B1 KR101954865 B1 KR 101954865B1 KR 1020170026473 A KR1020170026473 A KR 1020170026473A KR 20170026473 A KR20170026473 A KR 20170026473A KR 101954865 B1 KR101954865 B1 KR 101954865B1
Authority
KR
South Korea
Prior art keywords
word
variable
character
protocol
unit
Prior art date
Application number
KR1020170026473A
Other languages
English (en)
Other versions
KR20180099265A (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 KR1020170026473A priority Critical patent/KR101954865B1/ko
Priority to PCT/KR2017/013800 priority patent/WO2018101735A1/ko
Publication of KR20180099265A publication Critical patent/KR20180099265A/ko
Application granted granted Critical
Publication of KR101954865B1 publication Critical patent/KR101954865B1/ko

Links

Images

Classifications

    • G06F17/276
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • G06F17/273
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation

Landscapes

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

Abstract

본 발명의 실시예에 따르면, 전자 장치가 단어를 수신하는 단계; 상기 단어를 정의하는 규약과 연계하여 산출된 검색 변수를 산출하는 단계; 상기 단어 및 상기 검색 변수를 기초로 상기 위치 변수를 생성하는 단계; 상기 위치 변수를 기초로 비트 테이블에 접근하고, 상기 비트 테이블에 저장된 값을 기초로 상기 단어의 타당성을 판단하는 단계;를 포함하는 타당성 판단 방법이 개시된다.

Description

비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램{METHOD, APPARATUS, COMPUTER PROGRAM FOR judging THE VALIDITY OF A WORD}
본 발명의 실시예들은 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
전자 통신 기술이 발전함에 따라, 사용자는 휴대 단말로 다양한 기능을 이용할 수 있게 되었다. 휴대 단말은 다양한 어플리케이션을 사용자가 원하는 대로 설치 및 삭제할 수 있고, 무선 인터넷을 이용하여 인터넷 망에 직접 접속할 수 있어서 활용도가 높다. 휴대 단말은 가속도 센서, 근접 센서, 온도 센서 등의 센서를 구비하고, 사용자의 주변 환경을 감지하는 기능을 수행할 수 있고, 감지된 환경과 관련된 정보를 사용자에게 제공할 수도 있다.
국내 공개특허공보 제2005-0056307호
본 발명의 실시예들에 따르면, 입력 데이터인 단어에 포함된 각 캐릭터 및 기 저장된 넘버 테이블을 이용하여 입력 데이터의 타당성을 판단하는 타당성 판단 장치, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
본 발명의 실시예들에 따른 타당성 판단 방법은 전자 장치가 단어를 수신하는 단계; 상기 단어를 정의하는 규약과 연계하여 검색 변수를 산출하는 단계; 상기 단어 및 상기 검색 변수를 기초로 상기 위치 변수를 생성하는 단계; 상기 위치 변수를 기초로 비트 테이블에 접근하고, 상기 비트 테이블에 저장된 값을 기초로 상기 단어의 타당성을 판단하는 단계;를 포함할 수 있다.
상기 검색 변수를 산출하는 단계는 상기 단어를 정의한 규약을 결정하는 단계;상기 규약에서 정의한 캐릭터 셋을 기준으로 상기 단어를 변환하는 단계;
변환된 상기 단어 및 기 저장된 넘버 테이블을 이용하여, 검색 변수를 산출하는 단계;를 더 포함할 수 있다.
상기 위치 변수를 생성하는 단계는 상기 단어의 n번째 캐릭터 및 넘버 테이블의 값을 기초로 산출된 수를 이용하여 위치 변수를 산출할 수 있다.
상기 넘버 테이블은 복수의 소수값들을 포함할 수 있다.
상기 규약에서 정의한 캐릭터 셋은 원 캐릭터 및 축약 캐릭터 사이의 대응 관계를 포함할 수 있다.
본 발명의 실시예들에 따른 타당성 판단 장치는 단어를 수신하는 단어 수신부; 상기 단어를 정의하는 규약과 연계하여 검색 변수를 산출하는 검색 변수 생성부; 상기 단어 및 상기 검색 변수를 기초로 상기 위치 변수를 생성하는 위치 변수 생성부; 상기 위치 변수를 기초로 비트 테이블에 접속하고, 상기 비트 테이블에 저장된 값을 기초로 상기 단어의 타당성을 판단하는 판단부;를 포함할 수 있다.
상기 검색 변수 생성부는 상기 단어를 정의한 규약을 결정하고, 상기 규약에서 정의한 캐릭터 셋을 기준으로 상기 단어를 변환하고, 변환된 상기 단어 및 기 저장된 넘버 테이블을 이용하여, 검색 변수를 산출할 수 있다.
상기 위치 변수 생성부는 상기 단어의 n번째 캐릭터 및 넘버 테이블의 값을 기초로 산출된 수를 이용하여 위치 변수를 산출할 수 있다.
상기 넘버 테이블은 복수의 소수값들을 포함할 수 있다.
상기 규약에서 정의한 캐릭터 셋은 원 캐릭터 및 축약 캐릭터 사이의 대응 관계를 포함할 수 있다.
본 발명의 실시예에 따른 컴퓨터 프로그램은 컴퓨터를 이용하여 본 발명의 실시예에 따른 타당성 판단 방법 중 어느 하나의 방법을 실행시키기 위하여 매체에 저장될 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해 질 것이다.
본 발명의 실시예들에 따른 타당성 판단 장치, 방법 및 컴퓨터 프로그램은 입력 데이터인 단어에 포함된 각 캐릭터 및 기 저장된 넘버 테이블을 이용하여 입력 데이터의 타당성을 판단할 수 있다.
도 1은 본 발명의 실시예들에 따른 타당성 판단 장치의 블록도이다.
도 2는 본 발명의 실시예들에 따른 타당성 판단 방법의 흐름도이다.
도 3 내지 도 4는 본 발명의 다른 실시예들에 따른 타당성 판단 장치의 블록도들이다.
도 5은 타당성 판단 장치에 의해 생성된 넘버 테이블의 일 예이다.
도 6은 위치 변수 생성부를 구현한 코드의 예시이다.
도 7은 단어 및 비트 테이블의 관계를 설명하기 위한 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서 상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징을 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.
이하의 실시예에서, "회로"는, 예를 들어, 프로그램가능한 회로에 의해 실행되는 인스트럭션을 저장하는 하드와이어드 회로, 프로그램가능한 회로, 상태 머신 회로, 및/또는 펌웨어를 단독으로 또는 임의의 조합으로 포함할 수 있다. 애플리케이션은 호스트 프로세서 또는 다른 프로그램가능한 회로와 같은 프로그램가능한 회로 상에서 실행될 수 있는 코드 또는 인스트럭션으로서 구현될 수 있다. 본원의 임의의 실시예에서 사용되는 바와 같은, 모듈은,회로로서 구현될 수 있다. 회로는 집적 회로 칩과 같은 집적 회로로서 구현될 수 있다.
이하의 실시예에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 단어의 타당성은 소정의 규약 내에 존재하는지 여부를 의미할 수 있다. 또는 단어의 타당성은 소정의 규약으로 해독 가능한지 여부를 의미할 수도 있다.
도 1은 본 발명의 실시예에 따른 타당성 판단 장치(110)을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 타당성 판단 장치(110)은 단어 수신부(111), 검색 변수 생성부(112), 위치 변수 생성부(113), 판단부(114)를 포함할 수 있다. 타당성 판단 장치(110)는 넘버 테이블(121) 및 비트 테이블(122)를 더 포함할 수 있다. 넘버 테이블(121) 및 비트 테이블(122)는 타당성 판단 장치(110)과 전기적으로 연결될 수도 있다.
단어 수신부(111)는 외부의 단말 장치 또는 전기적으로 연결된 입력 장치로부터 단어(word)를 수신할 수 있다. 단어는 언어적인 의미를 가진 데이터를 말하며, 다양한 방식 또는 형식을 가질 수 있다. 단어의 예시로는 점자 데이터, 화상 데이터, 청각 데이터 등이 일 수 있다.
검색 변수 생성부(112)는 단어를 정의한 규약과 연계하여 검색 변수를 산출할 수 있다. 검색 변수 생성부(112)는 단어를 정의한 규약과 연계하고 기 저장된 넘버 테이블(121)을 이용하여 검색 변수(s_val)를 산출한다. 검색 변수(s_val)는 소정의 규약 내에서 정의된 단어들을 서로 구분되는 변수로 변환하기 위한 목적으로 생성되는 것으로, 넘버 테이블을 활용하여 산출될 수 있다. 넘버 테이블(121)은 소수들의 집합을 말할 수 있으며, 넘버 테이블(121)의 크기는 비트 테이블(122)의 크기를 고려하여 결정될 수 있다. 검색 변수(s_val)를 산출하는 과정 이외에 검색 변수 생성부(112)는 수신된 단어를 정의한 규약을 결정하고, 상기 규약에서 정의한 캐릭터 셋을 기준으로 상기 단어를 변환할 수 있다. 상기 캐릭터 셋은 규약 내의 제1 스트링(원 캐릭터) 및 상기 제1 스트링과 동일한 의미를 가지는 제2 스트링(축약 캐릭터) 사이의 대응 관계를 포함할 수 있다.
위치 변수 생성부(113)는 수신된 단어(word) 및 산출된 검색 변수(s_val)를 기초로 위치 변수(Location_val)를 산출할 수 있다. 위치 변수 생성부(113)는 검색 변수 생성부(112)에 의해 변환된 단어(word) 및 검색 변수(s_val)를 이용하여 위치 변수(Location_val)를 산출할 수 있다. 위치 변수 생성부(113)는 단어(word) 및 넘버 테이블(s_val)에 저장된 값을 기초로 위치 변수(Location_val)를 산출할 수 있다. 좀더 구체적으로 위치 변수 생성부(113)는 단어(word)의 n 번째 캐릭터 및 넘버 테이블(s_val)의 n 번째 값을 기초로 산출된 수를 이용하여 위치 변수(Location_val)를 산출할 수 있다. 위치 변수 생성부(113)는 단어의 n 번째 캐릭터의 위치 변수를 단어의 n-1 번째 캐릭터의 위치 변수 및 단어의 n번째 캐릭터를 기초로 산출할 수 있다. 위치 변수 생성부(113)는 단어의 n-1 번째 캐릭터의 위치 변수 및 단어의 n번째 캐릭터에 대한 검색 변수를 이용하여 단어의 n 번째 캐릭터의 위치 변수를 산출할 수 있다.
판단부(114)는 상기 위치 변수(Location_val)를 기초로 비트 테이블(122)에 접근하고 상기 비트 테이블의 해당 영역에 저장된 값을 이용하여 상기 단어가 타당하다고 판단할 수 있다. 판단부(114)는 단어에 포함된 하나 이상의 캐릭터들의 위치 변수들과 대응되는 영역들에 저장된 값들이 모두 참인 경우, 상기 단어가 타당하다고 판단할 수 있다. 즉, 비트 테이블의 해당 영역에 저장된 값이 TRUE인 경우, 판단부(114)는 상기 단어가 타당하다고 판단한다. 비트 테이블의 해당 영역에 저장된 값이 FALSE인 경우 판단부(114)는 상기 단어가 타당하지 않다고 판단할 수 있다.
넘버 테이블(121)는 수신될 수 있는 단어의 집합 및 단어의 타당성을 판단할 수 있는 비트 테이블을 고려하여 결정될 수 있다. 또한, 넘버 테이블(121)에 저장되는 소수 값은 비트 테이블의 크기보다 작은 소수들 중에서, 상대적으로 가장 큰 소수 값일 수 있다.
비트 테이블(122)는 규약에 의해 정의된 단어들과 대응되어 메모리 비트를 설정한 테이블로서, 규약에 의해 정의된 단어들 및 소스값을 기초로 생성된 규약에 의해 정의된 단어와 대응되는 영역의 비트를 '1'로 설정하여 생성될 수 있다. 이때, 비트 테이블(122) 및 넘버 테이블(121)의 크기는 서로 연관될 수 있다. 예를 들어, 규약에 의해 정의된 단어들의 수 및 비트 테이블(122)의 영역 크기를 고려하여 넘버 테이블(121)의 크기가 결정된다. 정확하게는
Figure 112017020601359-pat00001
의 수학식에 따른다. 여기서, k는 넘버 테이블(121)의 용량, N는 비트 테이블(122)의 용량, m은 규약에 의해 정의된 단어들의 수이다.
즉, 만약, 25,000개의 단어를 400,000 비트의 비트 테이블(122)로 변환하는 경우, 넘버 테이블(121)의 크기는 11(=400,000/25,000 log 2)이 되게 된다.
도 2는 본 발명의 실시예들에 따른 타당성 판단 방법의 흐름도이다.
도 2를 참조하면, 본 발명의 실시예들에 따른 타당성 판단 방법은 데이터를 수신하는 단계(S100), 검색 변수를 산출하는 단계(S200), 위치 변수를 산출하는 단계(S300), 비트 테이블을 접근하는 단계(S400), 단어의 타당성을 판단하는 단계(S500)를 포함할 수 있다.
S100에서는 타당성 판단 장치(110)는 네트워크로 연결된 단말 장치 또는 전기적으로 연결된 입력 장치로부터 단어를 수신할 수 있다. 타당성 판단 장치(110)는 수신된 단어를 그대로 검색 변수 생성부(112)로 전달할 수도 있고, 수신된 단어를 동일한 의미를 가지는 데이터로 변환할 수 있다.
S200에서는 타당성 판단 장치(110)의 검색 변수 생성부(112)는 수신된 단어가 정의된 규약 및 상기 규약에 따른 비트 테이블의 크기를 기초로 생성된 넘버 테이블을 이용하여 검색 변수를 생성할 수 있다. 이때, 검색 변수는 비트 테이블의 크기를 벗어나지 않는 소수 들의 집합이다.
S300에서는 위치 변수 생성부(113)는 단어 및 상기 검색 변수를 이용하여 비트 테이블 내의 주소 값인 위치 변수를 산출할 수 있다. 위치 변수 생성부(113)는 단어에 포함된 각 캐릭터들의 위치 변수들을 산출할 수 있다. 위치 변수 생성부(113)는 단어의 n 번째 캐릭터 및 단어의 n-1 번째 캐릭터의 위치 변수를 고려하여, 단어의 n 번째 캐릭터의 위치 변수를 구할 수 있다.
S400에서는 판단부(114)는 상기 위치 변수를 이용하여 비트 테이블의 특정 영역에 접근하고, 상기 특정 영역에 저장된 값을 읽어 들일 수 있다. S500에서는 판단부(114)는 읽어들인 값이 참인지를 판단하고, 상기 값이 참인 경우, 수신된 단어가 타당하다고 판단할 수 있다. 판단부(114)는 단어에 포함된 하나 이상의 캐릭터의 위치 변수를 기초로 접근된 특정 영역에 저장된 값들이 모두 참인 경우, 상기 단어가 타당하다고 판단할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 타당성 판단 장치(110a)의 구조를 나타내는 블록도이다.
도 3을 참조하면, 타당성 판단 장치(110a)는 변환부(111a), 비트 테이블(122a), 판단부(114a), 생성부(130a)를 포함할 수 있다.
타당성 판단 장치(110a)는 수신된 데이터를 변환하여 출력할 수 있다. 이때 타당성 판단 장치(110a)는 입력 데이터를 점자 데이터, 화상 데이터, 청각 데이터 등과 같은 다양한 방식 또는 형식으로 출력할 수 있다. 여기서, 입력 데이터는 도 1 및 2의 단어와 동일한 것일 수 있다. 특히, 타당성 판단 장치(110a)는 소정의 규약으로 작성된 데이터를 해독하기 위한 비트 테이블(122a)을 더 포함할 수 있다. 타당성 판단 장치(110a)는 소정의 규약에 정의된 인덱스들, 인덱스들의 수, 각 인덱스의 크기 등을 고려하여, 비트 테이블로 필요한 용량을 결정할 수 있다. 타당성 판단 장치(110a)는 메모리, 저장 매체 등의 리소스를 효율적으로 사용하기 위해서, 비트 테이블(122a)에 이진수로 작성된 데이터를 작성할 수 있다. 비트 테이블(122a)에서는 하나의 비트에 하나의 이진수가 저장될 수 있다. 타당성 판단 장치(110a)는 비트 테이블(122a)에 포함된 구획 및 구획들의 주소 정보를 활용하여 입력 데이터와 대응되는 최적의 최종 데이터를 검색하거나, 입력 데이터의 타당성을 판단할 수 있다. 타당성 판단 장치(110a)는 메모리에 저장된 데이터를 활용할 뿐 아니라 메모리의 주소값을 하나의 데이터로 활용할 수 있다. 종래의 메모리의 주소값은 메모리에 접근하기 위한 매개체, 인덱스, 포인터 등에 불과하였으나, 본 발명의 실시예들에 따른 타당성 판단 장치(110a)는 데이터 영역을 절약하기 위해서, 메모리의 주소값을 인덱스로 활용할 수 있다.
타당성 판단 장치(110a)는 제1 규약으로 작성된 입력 데이터(input)를 수신할 수 있다. 입력 데이터(input)는 인터넷 망 또는 근거리 망 등의 다양한 네트워크 통신망을 통해 수신될 수 있다. 입력 데이터(input)는 제1 규약으로 작성된 것으로, 제1 규약을 이용하여 해독할 수 있다. 예를 들어, 입력 데이터(input)는 각 국가의 언어로 작성된 문자 데이터 일 수 있다.
변환부(111a)는 입력 데이터(input)를 수신하고, 상기 입력 데이터(input)를 판독한 결과를 기초로 제1 위치 변수(key1)를 산출할 수 있다. 변환부(111a)는 입력 데이터(input)를 상기 제1 규약에 따른 알고리즘에 따라 제1 위치 변수(key1)를 산출할 수 있다. 좀더 구체적으로 변환부(111a)는 입력 데이터(input)를 상기 입력 데이터(input)와 대응되는 제1 검색 변수로 변환하고 상기 제1 검색 변수를 상기 제1 규약에 따른 알고리즘에 입력할 수 있다. 판별 영역의 크기에 따라 제1 규약에 따른 알고리즘은 복수의 스텝, 함수(function)들을 포함할 수 있다. 최종적으로 변환부(111a)는 입력 데이터(input)로부터 제1 위치 변수(key1)를 획득할 수 있다.
다음으로, 제1 규약에 따른 알고리즘에 대해서 상세히 설명하겠다. 변환부(111a)는 제1 규약에 의해 정의되는 데이터의 셋트를 고려하여 함수 또는 스텝을 생성하게 된다. 변환부(111a)는 제1 규약에 의해 정의되는 데이터의 셋트에 포함되는 데이터들 사이에 구별되는 값이 부여될 수 있도록 함수 또는 스텝을 생성할 수 있다. 제1 규약에 따른 알고리즘은 제1 규약에 의해 정의되는 데이터의 크기 또는 용량을 줄이기 위해서 이용될 수 있다. 변환부(111a)는 제한된 크기의 판별 영역에 제1 규약에 의해 정의되는 데이터를 저장하도록 제1 규약에 따른 알고리즘을 활용할 수 있다. 또한, 제1 규약에 따른 알고리즘은 데이터를 암호화하는 인코딩 알고리즘 및 디코딩하는 디코딩 알고리즘을 포함할 수 있다. 이때, 비트 테이블(122a)의 크기 및 제1 규약에 따라 정의되는 데이터의 셋트의 수에 대한 비례값에 따라 제1 규약에 따른 알고리즘은 정의될 수 있다. 상기 비례값이 작을수록 더 적은 용량으로 데이터를 표현해야 하기 때문에 데이터의 인코딩을 위해서 수행되어야 하는 스텝 또는 함수의 수는 증가될 수 있다. 복수의 캐릭터로 구성된 데이터는 알고리즘을 통해 원래 데이터 보다 더 짧은 길이의 값이나 키로 변환하게 된다. 알고리즘은 해시 함수를 이용할 수 있으며, 예시로는 MD2, MD4, MD5, SHA 등이 있을 수 있다.
변환부(111a)는 산출된 제1 위치 변수(key1)와 대응되는 영역에 저장된 값을 읽을 수 있다. 이를 위해서 먼저, 변환부(111a)는 산출된 제1 위치 변수(key1)를 이용하여 비트 테이블(122a)에 접근하게 된다. 이때, 제1 위치 변수(key1)는 비트 테이블(122a)에 포함된 특정 영역, 특정 섹션을 가리킬 수 있다. 이런 경우, 변환부(111a)는 비트 테이블(122a)에 소정의 규칙으로 구획된 섹션들 중에서, 상기 제1 위치 변수(key1)와 대응되는 섹션에 저장된 제1 결과 값(value)을 읽어 들인다. 다른 실시예에서, 변환부(111a)는 상기 제1 위치 변수(key1)를 상기 비트 테이블(122a)의 주소로 활용할 수 있다. 변환부(111a)는 상기 제1 위치 변수(key1)와 대응되는 영역으로부터 판독된 데이터 값을 제1 결과 값(value)로서 읽을 수 있다. 변환부(111a)는 다양한 방식으로, 상기 제1 위치 변수(key1)와 대응되는 비트 테이블(122a) 의 일부를 결정하고, 상기 비트 테이블(122a)의 일부, 지정 영역에 저장된 제1 결과 값(value)을 읽을 수 있다.
여기서, 비트 테이블(122a)은 전원이 공급되지 않아도 입력된 정보가 지워지지 않는 비휘발성 메모리이거나 시스템 영역에 저장된 압축 데이터를 부팅 시에 저장하는 휘발성 메모리 일 수 있다. 비트 테이블(122a)이 휘발성 메모리인 경우에는 비트 테이블(122a)은 타당성 판단 장치(110)이 전원이 켜진 소정의 데이터가 저장될 수도 있다. 비트 테이블(122a)은 타당성 판단 장치(110)의 운영 체제(OS) 또는 프로세서(processor)에 의해 접근될 수 있도록, 단위 데이터마다 정의된 주소와 매핑될 수 있다. 비트 테이블(122a)에 포함된 소정의 영역은 주소 값들의 집합과 대응될 수 있다.
변환부(111a)에 의해 획득된 제1 위치 변수(key1)는 판단부(114a)로 전송될 수 있다. 판단부(114a)는 제1 위치 변수(key1)를 이용하여, 상기 입력 데이터의 유효성을 판단할 수 있다. 판단부(114a)는 제1 위치 변수(key1)가 기 설정된 소정의 유효값과 일치하는지 여부를 판단함으로써, 입력 데이터의 유효성을 판단할 수 있다. 판단부(114a)는 제1 위치 변수(key1)가 소정의 규칙에 따르거나, 소정의 함수에 의해 참(예를 들어, 1 또는 TRUE)을 출력하는 경우, 상기 제1 위치 변수(key1) 또는 상기 입력 데이터가 유효하다고 판단할 수 있다.
생성부(130a)는 판단부(114a)에 의한 판단 결과에 따라 상기 입력 데이터 또는 검색 키가 유효한 경우, 상기 입력 데이터를 최종 데이터로 결정할 수 있다. 타당성 판단 장치(110)는 상기 최종 데이터를 출력할 수 있는 출력 신호를 생성하게 된다. 생성된 출력 신호는 외부의 출력 장치로 전송될 수 있다. 출력 신호는 복수의 돌기 유닛들을 제어하는 출력 제어부로 전달되어 복수의 돌기 유닛들을 상하 또는 좌우로 이동시킬 수 있다. 돌기 유닛들은 사용자의 피부 또는 신경에 접촉되어 촉감에 의한 표시를 출력할 수 있다. 돌기 유닛들은 시각적 표시를 제공할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 타당성 판단 장치(110)의 구조 및 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 타당성 판단 장치(110)는 변환부(111b), 산출부(112b), 인덱스 테이블(120), 비트 테이블(122b), 판단부(114b), 생성부(130b)를 포함할 수 있다.
제2 실시예에 따르면 타당성 판단 장치(110)는 입력 데이터(input)를 하나 이상의 후보 데이터로 변환하고 후보 데이터 중에서 하나의 데이터를 최종 데이터로 결정할 수 있다. 여기서, 입력 데이터는 도 1 및 2의 단어와 동일한 것일 수 있다.
변환부(111b)는 수신된 입력 데이터(input)를 스트링(string) 단위로 판독하고 상기 판독 결과 및 제1 규약에 따른 인덱스 테이블(120)을 이용하여 하나 이상의 후보 데이터를 생성할 수 있다. 변환부(111b)는 입력 데이터(input)를 스트링(string) 단위로 판독하게 되면, 입력 데이터에 속한 인덱스를 추출할 수 있게 된다. 여기서, 인덱스는 각 규약에 따라서 정의되는 것으로, 입력 데이터의 길이 보다 더 적은 스트링으로 표현하기 위해서 활용될 수 있다. 약어 또는 축약어로도 볼 수 있으나, 약어 또는 축약어의 경우에는 원 입력 데이터의 의미를 알 수 있도록 정의되는 것이 일반적이지만, 인덱스는 원 입력 데이터와 무관하게 정의되게 된다. 또한, 입력 데이터를 이루는 음절, 코드, 글자, 텍스트 등을 간단히 결합한 형태가 될 수도 있다.
또한, 변환부(111b)는 인덱스 테이블을 활용한 방법으로 입력 데이터(input)에 포함된 인덱스를 기준으로 상기 입력 데이터(input)와 대응되는 후보 데이터를 생성할 수 있다. 변환부(111b)는 제1 규약에 따른 인덱스 테이블을 이용하여 후보 데이터를 생성할 수 있다. 먼저, 변환부(111b)는 입력 데이터(input)가 작성된 제1 규약을 결정하고 상기 제1 규약에 따른 인덱스 테이블을 불러온다. 변환부(111b)는 스트링 단위의 판독을 통해 인덱스 테이블에 포함된 복수 개의 인덱스들 중에서, 상기 입력 데이터(input)에 포함된 제1 인덱스를 검출하고, 상기 제1 인덱스와 대응되는 입력 데이터(input)의 일부를 상기 제1 인덱스로 대체할 수 있다. 결과적으로 변환부(111b)는 제1 인덱스를 포함하는 후보 데이터(Pdata)를 출력할 수 있다.
산출부(112b)는 입력 데이터(input)에 대신에 상기 입력 데이터(input)와 대응되되, 구조적으로 변환된 후보 데이터(Pdata)와 대응되는 제2 위치 변수(key2)를 산출할 수 있다. 산출부(112b)는 후보 데이터(Pdata)를 수신하고, 상기 후보 데이터(Pdata)를 판독한 결과를 기초로 제2 위치 변수(key2)를 산출할 수 있다. 산출부(112b)는 후보 데이터(Pdata)를 상기 제1 규약에 따른 알고리즘에 입력하여 제2 위치 변수(key2)를 산출할 수 있다. 산출부(112b)는 후보 데이터(Pdata)을 상기 후보 데이터(Pdata)와 대응되는 제2 위치 변수(key2)로 변환하고 상기 제2 위치 변수(key2)를 상기 제1 규약에 따른 함수에 입력할 수 있다. 최종적으로 산출부(112b)는 후보 데이터(Pdata)로부터 제2 위치 변수(key2)를 획득할 수 있다.
산출부(112b)는 산출된 제2 위치 변수 (key2)와 대응되는 영역에 저장된 값을 읽을 수 있다. 이를 위해서 먼저, 산출부(112b)는 산출된 제2 위치 변수 (key2)를 이용하여 비트 테이블(122a) 접근하게 된다. 이때, 제2 위치 변수 (key2)는 비트 테이블(122a)에 포함된 하나의 섹션을 가리킬 수 있다. 이런 경우, 산출부(112b)는 비트 테이블(122a)에 소정의 규칙으로 구획된 섹션들 중에서, 상기 제2 위치 변수 (key2)와 대응되는 섹션에 저장된 제2 값(value)을 읽어 들인다. 다른 실시예에서, 산출부(112b)는 상기 제2 위치 변수 (key2)를 상기 비트 테이블(122a)의 주소로 활용하여, 제2 값(value)를 읽을 수 있다. 산출부(112b)는 다양한 방식으로, 상기 제2 위치 변수 (key2)와 대응되는 비트 테이블(122a)의 일부를 결정하고, 상기 비트 테이블(122a)의 일부, 지정 영역에 저장된 제2 결과 값(value2)을 읽을 수 있다.
산출부(112b)에 의해 획득된 제2 위치 변수 (key2)는 판단부(114b)로 전송될 수 있다. 판단부(114b)는 제2 위치 변수 (key2)를 이용하여 상기 입력 데이터의 유효성을 판단할 수 있다. 판단부(114b)는 제2 위치 변수 (key2)가 기 설정된 소정의 값과 일치하는지 여부를 판단함으로써, 입력 데이터의 유효성을 판단할 수 있다. 판단부(114b)는 제2 위치 변수 (key2)가 소정의 규칙에 따르거나 소정의 함수에 의해 유효 값(예를 들어, 1 또는 TRUE)을 출력하는 경우, 상기 제2 위치 변수 (key2)가 유효하다고 판단할 수 있다.
생성부(130b)는 판단부(114b)에 의한 판단 결과에 따라 상기 후보 데이터 또는 제2 위치 변수(key2)가 유효한 경우, 상기 후보 데이터를 최종 데이터로 결정할 수 있다. 산출부(112b)는 상기 위치 변수를 이용하여 상기 제1 규약과 연계된 비트 테이블(122a)의 특정 영역에 접근하고, 상기 특정 영역에 저장된 판별 데이터를 통해 상기 위치 변수 또는 후보 데이터의 유효성을 판단할 수 있다.
도 5은 타당성 판단 장치(110)에서 활용하는 넘버 테이블의 일 예이다.
도 5에 도시된 바와 같이, 넘버 테이블 p[]은 비트 테이블의 전체 크기인 400,000 이하의 소수 중에서 가장 큰 순서대로 소수 11개를 포함할 수 있다. 넘버 테이블 p[]은 비트 테이블의 전체 크기인 400,000 이하의 소수 중 아무거나 11개를 포함할 수도 있으나, 구별되는 위치 변수를 산출하기 위해서 가장 큰 순서대로 소수 11개를 포함할 수 있다.
도 6은 위치 변수 생성부를 구현한 명령문의 예시이다.
도 7에 도시된 바와 같이 위치 변수 생성부는 단어의 각 캐릭터 별로 위치 변수를 생성할 수 있다. 예를 들어, 단어 "/o2/f/e3"이라고 한다면, 위치 변수 생성부는 단어의 1번째 캐릭터인 '/'를 기초로 단어의 1번째 캐릭터인'/'의 위치 변수를 이용하여 A1의 영역에 접근할 수 있다.
단어의 2번째 캐릭터인 o와 대응되는 A2의 영역은 단어의 1번째와 대응되는 A1의 위치 변수를 기초로 산출될 수 있다.
단어의 3번째 캐릭터인 2와 대응되는 A3의 영역은 단어의 2번째와 대응되는 A2의 위치 변수를 기초로 산출될 수 있다.
단어의 4번째 캐릭터인 /과 대응되는 A4의 영역은 단어의 3번째와 대응되는 A3의 위치 변수를 기초로 산출될 수 있다.
단어의 5번째 캐릭터인 f와 대응되는 A5의 영역은 단어의 4번째와 대응되는 A4의 위치 변수를 기초로 산출될 수 있다.
단어의 6번째 캐릭터인 /와 대응되는 A6의 영역은 단어의 5번째와 대응되는 A5의 위치 변수를 기초로 산출될 수 있다.
상기와 같은 방식으로 단어의 7 내지 9번째 캐릭터인 e3/와 대응되는 영역들을 접근할 수 있다. 이렇게 단어의 모든 캐릭터들과 대응되는 영역들에 저장된 값이 모두 참('1')인 경우, 단어가 타당하다고 판단될 수 있다.
이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
110, 110a, 110b: 타당성 판단 장치

Claims (11)

  1. 전자 장치가 단어를 수신하는 단계;
    상기 전자 장치가 상기 단어를 정의하는 규약을 결정하는 단계;
    상기 전자 장치가 상기 규약에서 정의한 캐릭터 셋을 기준으로 상기 단어를 변환하는 단계;
    상기 전자 장치가 변환한 상기 단어 및 기 저장된 넘버 테이블을 이용하여 검색 변수를 산출하는 단계;
    상기 단어 및 상기 검색 변수를 기초로 위치 변수를 생성하는 단계; 및
    상기 위치 변수를 기초로 비트 테이블에 접근하고, 상기 비트 테이블에 저장된 값을 기초로 상기 단어의 타당성을 판단하는 단계;를 포함하는 타당성 판단 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 위치 변수를 생성하는 단계는
    상기 단어의 n번째 캐릭터 및 기 저장된 넘버 테이블의 n번째 값을 기초로 산출된 수를 이용하여 위치 변수를 산출하는, 타당성 판단 방법.
  4. 제3항에 있어서,
    상기 넘버 테이블은
    복수의 소수값들을 포함하는, 타당성 판단 방법.
  5. 제1항에 있어서,
    상기 규약에서 정의한 캐릭터 셋은
    원 캐릭터 및 축약 캐릭터 사이의 대응 관계를 포함하는, 타당성 판단 방법.
  6. 단어를 수신하는 단어 수신부;
    상기 단어를 정의한 규약을 결정하고, 상기 규약에서 정의한 캐릭터 셋을 기준으로 상기 단어를 변환하고, 변환된 상기 단어 및 기 저장된 넘버 테이블을 이용하여 검색 변수를 산출하는 검색 변수 생성부;
    상기 단어 및 상기 검색 변수를 기초로 위치 변수를 생성하는 위치 변수 생성부; 및
    상기 위치 변수를 기초로 비트 테이블에 접속하고, 상기 비트 테이블에 저장된 값을 기초로 상기 단어의 타당성을 판단하는 판단부;를 포함하는 타당성 판단 장치.
  7. 삭제
  8. 제6항에 있어서,
    상기 위치 변수 생성부는
    상기 단어의 n번째 캐릭터 및 넘버 테이블의 n 번째 값을 기초로 산출된 수를 이용하여 위치 변수를 산출하는, 타당성 판단 장치.
  9. 제8항에 있어서,
    상기 넘버 테이블은
    복수의 소수값들을 포함하는, 타당성 판단 장치.
  10. 제6항에 있어서,
    상기 규약에서 정의한 캐릭터 셋은
    원 캐릭터 및 축약 캐릭터 사이의 대응 관계를 포함하는, 타당성 판단 장치.
  11. 컴퓨터를 이용하여 제1항, 제3항 내지 제5항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램.
KR1020170026473A 2016-11-29 2017-02-28 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램 KR101954865B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170026473A KR101954865B1 (ko) 2017-02-28 2017-02-28 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램
PCT/KR2017/013800 WO2018101735A1 (ko) 2016-11-29 2017-11-29 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170026473A KR101954865B1 (ko) 2017-02-28 2017-02-28 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190022583A Division KR20190022604A (ko) 2019-02-26 2019-02-26 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20180099265A KR20180099265A (ko) 2018-09-05
KR101954865B1 true KR101954865B1 (ko) 2019-03-06

Family

ID=63594430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170026473A KR101954865B1 (ko) 2016-11-29 2017-02-28 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR101954865B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0589174A (ja) * 1991-09-30 1993-04-09 N T T Data Tsushin Kk 辞書検索方法
KR100597614B1 (ko) 2003-12-10 2006-07-19 전북대학교산학협력단 촉각자극기와 지피에스를 이용한 시각장애인용 보행 안내 장치
KR20100084403A (ko) * 2009-01-16 2010-07-26 울산대학교 산학협력단 문서의 유사도 결정 방법 및 이를 이용한 단말 장치
KR101629415B1 (ko) * 2012-08-10 2016-06-10 에스케이텔레콤 주식회사 문법 오류 검출 방법 및 이를 위한 오류검출장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김한준 외, 위키피디어 기반 개념 공간을 가지는 시멘틱 텍스트 모델, 한국전자거래학회지 제19권 제3호, pp.107-123, 2014.08.

Also Published As

Publication number Publication date
KR20180099265A (ko) 2018-09-05

Similar Documents

Publication Publication Date Title
US11263416B2 (en) Two-dimensional code generation and identification
KR20180047409A (ko) 문장 생성 장치 및 방법
CN111770063B (zh) 数字身份信息的派生、验证方法、装置及设备
JP2018510410A (ja) 住所テキストを処理する方法及び機器
US20220092276A1 (en) Multimodal translation method, apparatus, electronic device and computer-readable storage medium
US9619657B2 (en) Method and apparatus for storing redeem code, and method and apparatus for verifying redeem code
JP6447161B2 (ja) 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法
JP2006301446A (ja) 読み生成装置、読み生成方法及びコンピュータプログラム
CN111159394B (zh) 一种文本摘要生成方法和装置
CN114722796A (zh) 用于中文文本错误识别与校正的架构
EP3451233A1 (en) Biological-image processing unit and method and program for processing biological image
KR101954865B1 (ko) 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램
CN112597190A (zh) 点近邻轨迹查询方法、装置、电子设备和可读存储介质
KR20190022604A (ko) 비트 테이블을 활용하여 입력 단어의 타당성 판단 장치, 방법 및 컴퓨터 프로그램
US11062082B2 (en) File generation method, file generation apparatus, and non-transitory computer-readable storage medium for storing program
JP2018067264A (ja) データ検索プログラム、データ検索装置およびデータ検索方法
JPWO2014030189A1 (ja) 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム
KR101742523B1 (ko) 패스워드 추천 방법 및 그 장치
JP6135788B2 (ja) 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム
KR102016601B1 (ko) 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램
JPWO2014030180A1 (ja) 符号化情報生成プログラム、符号化情報生成方法、符号化情報生成装置、復号化情報生成プログラム、復号化情報生成方法及び復号化情報生成装置
CN112100453B (zh) 一种字符串分布统计方法、系统、设备及计算机存储介质
KR20190102162A (ko) 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램
JP2017195628A (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法及び復号化装置
CN117081727B (zh) 一种弱口令检测方法以及装置

Legal Events

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