KR101393794B1 - 입력기의 종류를 결정하는 단말기 및 방법 - Google Patents

입력기의 종류를 결정하는 단말기 및 방법 Download PDF

Info

Publication number
KR101393794B1
KR101393794B1 KR1020120089918A KR20120089918A KR101393794B1 KR 101393794 B1 KR101393794 B1 KR 101393794B1 KR 1020120089918 A KR1020120089918 A KR 1020120089918A KR 20120089918 A KR20120089918 A KR 20120089918A KR 101393794 B1 KR101393794 B1 KR 101393794B1
Authority
KR
South Korea
Prior art keywords
input
input field
character type
data
unit
Prior art date
Application number
KR1020120089918A
Other languages
English (en)
Other versions
KR20140023677A (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 KR1020120089918A priority Critical patent/KR101393794B1/ko
Priority to US13/788,296 priority patent/US20140052725A1/en
Priority to EP13159667.8A priority patent/EP2698727A3/en
Priority to CN201310118700.6A priority patent/CN103593378B/zh
Publication of KR20140023677A publication Critical patent/KR20140023677A/ko
Application granted granted Critical
Publication of KR101393794B1 publication Critical patent/KR101393794B1/ko
Priority to US16/135,571 priority patent/US10838592B2/en
Priority to US17/030,578 priority patent/US20210011595A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

입력기의 종류를 결정하는 단말기는, 입력 필드에 포커스가 감지되는 경우, 입력 필드의 정보를 분석하는 정보 분석부; 입력 필드의 사용이력에 대한 데이터를 저장하는 데이터 베이스부; 분석된 입력 필드의 정보 또는 데이터 베이스부에 저장된 데이터를 기초로, 입력 필드에 입력될 문자 종류를 결정하는 입력기 결정부; 및 결정된 문자 종류에 따른 입력기를 단말기의 표시부로 출력하는 입력기 출력부를 포함한다. 이에 따라, 단말기에서 사용자 입력이 필요한 입력 필드에 입력될 문자 종류를 스스로 판단하여 해당 문자 종류로 입력기를 설정하여 제공할 수 있다.

Description

입력기의 종류를 결정하는 단말기 및 방법{TERMINAL AND METHOD FOR DETERMINING A TYPE OF INPUT METHOD EDITOR}
본 발명은 입력기의 종류를 결정하는 단말기 및 그 방법에 관한 것으로서, 더욱 상세하게는 입력기가 단말기에 표시되는 터치 스크린 방식의 경우에 입력기의 종류를 스스로 결정하여 제공하는 단말기 및 그 방법에 관한 것이다.
모바일 기기에서 웹 브라우징 시에, 정보 입력을 기다리는 웹 브라우저 상의 입력 필드에 대해 사용자가 포커스를 준 경우, 이를 감지하여 가상 소프트 키보드인 입력기(IME; Input Method Editor)를 사출시킨다.
이 경우, 웹 서핑이 가능한 웹 브라우저가 탑재되어 있는 모바일 기기의 특성상 화면 크기에 대한 제약이 있으므로, 가상 키보드가 모든 문자 종류, 즉, 한글, 영문, 숫자 등을 한 화면에 표시 할 수 없기 때문에 입력기는 한 가지 문자 종류로 설정(setting)되어 보여진다. 이러한 입력기가 단말기에 표시되는 과정은 다음과 같다.
사용자가 웹 브라우저를 실행 시키고 사용자의 입력이 필요한 특정 입력 필드에 대해 사용자가 커서를 넣음으로써 포커스를 주게 되면, 웹 브라우저는 해당 포커스를 인식하고 사용자의 입력을 받기 위해 IME를 사출시키려 한다. 이 경우, 사출되는 IME는 특정한 종류의 문자(즉, 한글, 영문, 숫자, 또는 이메일의 주소를 입력하는데 용이한 특수 문자)가 포함된 구성의 키보드 형태로 설정될 수 있다.
그 절차는 웹 브라우저가 입력 필드의 포커스를 인지한 후 해당 입력 필드가 정의된 HTML(HyperText Markup Language) 코드에서 해당 입력 필드를 규정하고 있는 코드 중 입력 종류(input type)를 읽어와 해당 입력 종류가 무엇으로 정의되어 있는지를 해석하게 된다.
웹 브라우저는 입력 종류를 해석한 후에 해당 입력 종류와 매치되는 모바일 기기의 운영체제(Operation System; OS)에서 사용되는 입력 종류를 검색하고, 검색된 입력 종류로 IME의 문자 종류를 설정하고 사출시킨다. 이로써 소프트 키보드인 IME가 UI(User Interface) 상에 보여지게 된다.
현재의 기술에서 모바일 기기로 웹 브라우징 시에 사용자 입력이 필요한 입력 필드에 정보를 입력할 때, 해당 웹 페이지의 설계자가 해당 입력 필드에 입력되어야 할 적절한 문자 종류를 고려하여 HTML 코드 상에 입력 종류로 규정해 두었다면, IME가 자동 사출될 때 해당 문자 종류로 설정되어 사출된다.
그러나, 현재 모바일 기기에서 웹 브라우징 시에 나타나는 입력 필드의 경우, 대부분의 입력 종류에 대한 설정이 기본값인 'TEXT'로 되어 있다. 그 이유는 대부분의 웹 페이지가 PC에서의 웹 브라우징을 기준으로 설계되었기 때문이다. PC 상에서는 양 손을 사용하는 키보드를 이용하므로, 한글, 영문, 숫자의 변환이 간편하고 하나의 키보드 내에서 문자와 숫자의 동시 입력이 가능하다. 따라서, 웹 페이지 설계자는 입력 필드의 입력 종류에 대해 신경 쓸 필요가 없다.
따라서, 모바일 기기를 이용하여 웹 브라우징을 하는 경우, ID 입력, 비밀번호(password) 입력, 검색어 입력, 수량/숫자 등에 대한 입력 시에 기본 입력 종류인 'TEXT'에 대응되는 기본으로 설정된 IME의 문자 종류인 한글(한국 기준)로 설정된 가상 키보드가 UI 상에 나타나게 된다. 이 경우, 한글 이외의 다른 문자를 입력하여야 하므로, 사용자는 입력에 적절한 문자 종류로 바꾸기 위해 해당 IME를 한번 더 조작하여 다른 종류의 문자로 IME를 변경한 후에 입력을 시작해야만 하는 불편함이 있다.
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 사용자 입력을 필요로 하는 입력 필드에 대응하는 입력기의 종류를 결정하여 출력하는 단말기를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 단말기를 이용하여 입력기의 종류를 결정하는 방법을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 입력기의 종류를 결정하는 단말기는, 입력 필드에 포커스가 감지되는 경우, 상기 입력 필드의 정보를 분석하는 정보 분석부; 상기 입력 필드의 사용이력에 대한 데이터를 저장하는 데이터 베이스부; 상기 분석된 입력 필드의 정보 또는 상기 데이터 베이스부에 저장된 데이터를 기초로, 상기 입력 필드에 입력될 문자 종류를 결정하는 입력기 결정부; 및 상기 결정된 문자 종류에 따른입력기를 단말기의 표시부로 출력하는 입력기 출력부를 포함한다.
본 발명의 실시예에서, 상기 데이터 베이스부는, 상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터를 저장하는 사용이력 데이터 베이스부를 포함할 수 있다.
본 발명의 실시예에서, 상기 데이터 베이스부는, 유인단어 및 상기 유인단어에 대응하는 문자 종류에 대한 데이터를 저장하는 유인단어 데이터 베이스부를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 입력기 결정부는, 상기 입력 필드에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는지 사용이력 데이터 베이스부를 검색하여, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 1차로 결정하고, 상기 입력 필드의 정보에서 추출된 유인단어에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하여, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 2차로 결정하고, 상기 입력 필드의 정보에서 추출된 키워드에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하여, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 3차로 결정할 수 있다.
본 발명의 실시예에서, 상기 입력기 결정부는, 상기 입력 필드에 입력될 문자 종류의 결정이 불가능한 경우, 기본값(default value)으로 지정된 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정할 수 있다.
본 발명의 실시예에서, 상기 정보 분석부는, 상기 입력 필드를 정의하고 있는 HTML 코드를 분석할 수 있다.
본 발명의 실시예에서, 상기 유인단어는, 상기 HTLM 코드 중에서, 상기 입력 필드의 앞 또는 뒤에서 상기 입력 필드에 입력되어야 할 정보를 정의하고 있는 코드일 수 있다.
본 발명의 실시예에서, 상기 키워드는, 상기 HTLM 코드 중에서, 상기 입력 필드 내에서 상기 입력 필드에 입력되어야 할 정보를 예시하고 있는 코드일 수 있다.
본 발명의 실시예에서, 상기 단말기는, 상기 결정된 문자 종류로 상기 입력 필드에 대응하는 입력기를 설정하여 상기 표시부로 제공하는 입력기 설정부를 더 포함할 수 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 단말기에서 입력기의 종류를 결정하는 방법은, 단말기 상의 입력 필드에 포커스가 감지되는 경우, 상기 입력 필드의 정보를 분석하는 단계; 상기 분석된 입력 필드의 정보 또는 상기 입력 필드의 사용이력에 대해 저장된 데이터를 기초로, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계; 및 상기 결정된 문자 종류에 따른입력기를 단말기의 표시부로 출력하는 단계를 포함한다.
본 발명의 실시예에서, 단말기에서 입력기의 종류를 결정하는 방법은, 상기 입력 필드에 문자가 입력되는 경우, 상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터를 사용이력 데이터 베이스부에 저장하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는, 이전에 상기 입력 필드에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는지 사용이력 데이터 베이스부를 검색하는 단계; 및 상기 입력 필드에 이전에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는 경우, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 결정하는 단계를 포함할 수 있다.
본 발명의 실시예에서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는, 상기 입력 필드에 이전에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드의 정보에서 유인단어를 추출하는 단계; 상기 추출된 유인단어에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하는 단계; 및 상기 유인단어에 대한 데이터가 존재하는 경우, 상기 유인단어와 대응하는 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는, 상기 유인단어에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드의 정보에서 키워드를 추출하는 단계; 상기 추출된 키워드에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하는 단계; 및 상기 키워드에 대한 데이터가 존재하는 경우, 상기 키워드와 대응하는 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는, 상기 키워드에 대한 데이터가 존재하지 않는 경우, 기본값(default value)으로 지정된 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 단말기에서 입력기의 종류를 결정하는 방법은, 사용자의 입력에 따라 상기 결정된 문자 종류를 변경하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 입력 필드의 정보를 분석하는 단계는, 상기 입력 필드를 정의하고 있는 HTML 코드를 분석할 수 있다.
본 발명의 실시예에서, 상기 단말기에서 입력기의 종류를 결정하는 방법은, 상기 결정된 문자 종류로 상기 입력 필드에 대응하는 입력기를 설정하는 단계를 더 포함할 수 있다.
이와 같은 입력기의 종류를 결정하는 단말기 및 그 방법에 따르면, 단말기 이용 시에 사용자 입력이 필요한 입력 필드에 입력될 문자 종류를 스스로 판단하여 해당 문자 종류로 입력기를 설정하여 제공한다. 따라서, 사용자가 다른 문자 종류의 입력기로 변경하는 불편을 개선하여, 사용자의 편의성을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 입력기의 종류를 결정하는 단말기의 블록도이다.
도 2는 도 1의 정보 분석부가 읽어드린 입력 필드에 대한 정보의 일례이다.
도 3은 도 1의 데이터 베이스부의 블록도이다.
도 4는 도 3의 사용이력 데이터 베이스부에 대한 구성의 일례이다.
도 5는 도 3의 유인단어 데이터 베이스부에 대한 구성의 일례이다.
도 6은 본 발명의 일 실시예에 따른 단말기에서 입력기의 종류를 결정하는 방법을 설명하기 위한 흐름도이다.
도 7은 도 6의 문자 종류를 결정하는 단계를 구체적으로 설명하기 위한 흐름도이다.
이하, 도면들을 참조하여 입력기의 종류를 결정하는 단말기 및 그 방법의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 입력기의 종류를 결정하는 단말기의 블록도이다. 도 2는 도 1의 정보 분석부가 읽어드린 입력 필드에 대한 정보의 일례이다. 도 3은 도 1의 데이터 베이스부의 블록도이다. 도 4는 도 3의 사용이력 데이터 베이스부에 대한 구성의 일례이다. 도 5는 도 3의 유인단어 데이터 베이스부에 대한 구성의 일례이다.
도 1을 참조하면, 본 실시예에 따른 단말기(1)는 외부의 유무선 네트워크와 연결되어 통신을 가능하게 하는 네트워크 연결부(10), 상기 단말기(1)가 실행하는 화면을 표시하는 표시부(30), 사용자의 입력을 받기 위해 가상 소프트 키보드인 입력기(IME; Input Method Editor)를 상기 표시부(30)에 사출하는 입력기 제공부(50) 및 상기 표시부(30)에 입력되는 사용자의 입력을 감지하는 입력 감지부(70)를 포함한다.
상기 단말기(1)는 네트워크에 연결되어 실행하는 웹 브라우징(web browsing) 또는 상기 단말기(1)에서 애플리케이션을 실행하는 중에 정보 입력이 필요한 입력 필드(input field)에 포커싱(focusing)이 가해진 경우, 상기 입력 필드에 적합한 입력기의 종류를 결정하여 제공한다.
상기 입력 필드란, 정보가 입력되는 에디트 박스(edit box)로서, 텍스트 박스(text box)라고도 한다. 예를 들어, 웹 페이지 또는 애플리케이션의 로그인 시에 아이디와 비밀번호를 입력하는 박스, 검색어를 입력하는 검색 박스, 생년월일과 전화번호를 입력하는 박스, 또는 웹 페이지 주소를 입력하는 박스 등을 모두 포함할 수 있다.
상기 입력기의 종류는 상기 입력 필드에 입력되는 정보에 따른 문자의 종류에 따라 결정된다. 구체적으로, 아이디와 비밀번호가 입력되는 입력 필드인 경우에는 영문으로 구성된 입력기, 검색어가 입력되는 입력 필드인 경우에는 국문과 검색을 나타내는 특수 문자가 함께 구성된 입력기, 생년월일과 전화번호가 입력되는 입력 필드인 경우에는 숫자로 구성된 입력기를 결정하여 사용자에게 가상의 키보드로 제공된다. 또한, 이메일 주소를 입력하는 경우에는 영문과 앳 마크(@)의 특수 문자가 함께 구성된 입력기, 웹 페이지 주소를 입력하는 경우에는 영문과 슬래시(/)의 특수 문자가 함께 구성된 입력기를 결정하여 사용자에게 가상의 키보드로 제공하는 것이다.
상기 단말기(1)는 상기 표시부(30)에 사용자의 손이나 터치펜 등의 터치를 감지하여 정보를 입력 받는 터치 스크린 방식의 단말기로서, 가상 소프트 키보드인 입력기를 상기 표시부(30)에 제공한다. 터치 스크린 방식은 정전식, 감압식, 광학식, 초음파 방식, 저항막 방식 등 그 방식을 한정하지 않고 모두 포함할 수 있다.
상기 단말기(1)는 터치 스크린 방식이라면, 스마트 폰, 태블릿 컴퓨터, 넷북, 피디에이(PDA), 피엠피(PMP), 피에스피(PSP), 엠피쓰리(MP3) 플레이어, 이북(e-book) 리더, 내비게이션, 스마트 카메라, 전자사전, 전자시계 등의 모바일(mobile) 기기뿐만 아니라 데스크 탑 컴퓨터, 스마트 TV, 유무선 전화, 스마트 도어락 은행의 ATM 기기, 티켓 발급기 등의 전자 기기를 모두 포함할 수 있다.
또한, 상기 단말기(1)는 운영체제(Operation System; OS)를 기반으로 다양한 애플리케이션을 실행할 수 있으며, 상기 운영체제는 안드로이드 OS, 애플사의 iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터에 탑재할 수 있는 운영체제를 모두 포함할 수 있다.
상기 애플리케이션은 특정한 작업을 수행할 수 있도록 개발된 프로그램으로서, 각종 응용 프로그램뿐 아니라 게임, 동영상, 사진 등의 각종 멀티미디어 컨텐츠(contents) 또는 상기 멀티미디어 컨텐츠를 실행하는 카메라, 이미지 뷰어, 동영상 재생기 등의 실행 프로그램을 모두 포함할 수 있다.
상기 단말기(1)에서 웹 브라우징은 웹 브라우저(web browser)를 통해 실행할 수 있으며, 웹 브라우저는 크롬(Chrome), 인터넷 익스플로러(IE), 파이어폭스(Firefox), 사파리(Safari), 넷스케이프(Netscape), 오페라(Opera), 모질라(Mozilla) 등을 이용할 수 있다.
상기 입력기 제공부(50)는 상기 단말기(1)에서 웹 브라우징 또는 애플리케이션을 실행하는 중에 상기 입력 필드에 포커싱(focusing)이 가해진 경우, 상기 입력 필드에 입력될 문자 종류로 설정된 입력기를 제공한다. 이를 위하여, 상기 입력기 제공부(50)는 정보 분석부(100), 입력기 결정부(300), 데이터 베이스부(400), 및 입력기 출력부(700)를 포함한다. 상기 입력기 제공부(50)는 입력기 설정부(500)를 더 포함할 수 있다.
상기 입력기 제공부(50)는 상기 단말기(1)의 운영체제의 프레임(frame) 워크에 형성될 수 있다. 상기 프레임 워크는 논리적으로 묶어 놓은 클래스, 메서드, 함수, 문서의 집합으로, 프로그램을 개발하는데 참조가 된다.
상기 정보 분석부(100)는 상기 입력 필드에 포커스(focus)가 감지되는 경우, 상기 입력 필드의 정보를 분석한다. 예를 들어, 사용자가 상기 단말기(1)에서 웹 브라우징을 실행하는 중에 웹 페이지 내의 입력 필드에 정보를 입력하기 위해 상기 입력 필드를 포커싱한다. 상기 포커싱을 위해 사용자는 정보 입력을 원하는 입력 필드를 터치하거나 클릭하여 커서(cursor)를 이동시킬 수 있다.
상기 입력 필드에 포커스가 감지되는 경우, 상기 정보 분석부(100)는 상기 입력 필드의 정보를 읽어 들여 분석하고, 분석된 정보를 상기 입력기 결정부(300)에 제공한다. 상기 입력 필드의 정보는 상기 입력 필드가 정의된 정보로서 입력기의 입력 종류(input type)를 포함하며, HTML(HyperText Markup Language) 코드일 수 있다(도 2 참조).
예를 들어, 상기 정보 분석부(100)는 분석된 정보에 입력 종류가 기본값인 'TEXT'로 설정되어 있는 경우에는, 포커스를 받은 입력 필드가 존재하는 웹 페이지의 주소값을 읽어 들인 후 파싱(parsing)한다. 상기 웹 페이지의 주소값에서 첫 번째 구분자인 슬래시(/)를 기준으로, 앞부분과 뒷부분으로 나누어 두 개의 임시 문자열에 담고, 입력 필드를 규정하고 있는 HTML 코드에서 name 요소를 임시 문자열에 담는다. 상기 정보 분석부(100)는 분석된 3 개의 문자열에 대한 정보를 상기 입력기 결정부(300)에 제공할 수 있다.
한편, 상기 정보 분석부(100)는 분석된 정보에 입력 종류가 특정한 문자 종류로 설정되어 있는 경우에는, 더 이상의 분석을 중단하고 분석된 정보를 상기 입력기 결정부(300)에 제공할 수 있다.
다른 실시예에서는, 상기 정보 분석부(100)는 분석된 정보에 입력 종류가 특정한 문자 종류로 설정되어 있는 경우에는, 분석된 정보를 상기 입력기 결정부(300)에 제공하는 대신 상기 입력기 설정부(500) 또는 입력기 출력부(700)에 바로 제공할 수도 있다.
상기 입력기 결정부(300)는 상기 정보 분석부(100)로부터 제공된 입력 필드의 정보 및 상기 데이터 베이스부(400)의 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 결정한다.
만약, 상기 입력 필드의 입력 종류가 특정한 문자 종류로 설정되어 있는 경우, 상기 입력기 결정부(300)는 상기 특정한 문자 종류와 대응하는 상기 단말기(1)의 운영체제의 입력 종류로 상기 문자 종류를 결정한다.
예를 들어, 안드로이드 OS에서 사용되는 입력 종류는 NORMAL_TEXT_FIELD=0, TEXT_AREA=1, PASSWORD=2, SEARCH=3, EMAIL=4, NUMBER=5, TELEPHONE=6, URL=7 등이 있다. 입력 종류가 NORMAL_TEXT_FIELD=0인 경우 문자(TEXT)를 의미하며, 입력 종류가 TEXT_AREA=1인 경우 복수열 문자를 의미한다. 이 경우, 기본값으로 설정된 한글(한국 기준) 또는 영문으로 문자 종류를 결정할 수 있다. 기본값은 국가마다 자국어로 설정될 수 있으며(예를 들어, 미국은 영어, 일본은 일본어, 중국은 중국어), 이와 다르게 사용자가 기본값을 설정할 수도 있다.
입력 종류가 PASSWORD=2인 경우, 숫자로 문자 종류를 결정하고, 입력 종류가 SEARCH=3인 경우 한글(대한민국 기준) 또는 영문과 함께 검색을 나타내는 특수 문자(예를 들어, 돋보기 마크
Figure 112012065880161-pat00001
)로 문자 종류를 결정할 수 있다. 마찬가지로, 입력 종류가 EMAIL=4 또는 URL=7인 경우, 영문과 함께 이메일 또는 웹 페이지의 주소를 입력하는데 필요한 특수 문자(예를 들어, (At)앳 마크(@), 슬래시(/))로 문자 종류를 결정하고, 입력 종류가 NUMBER=5 또는 TELEPHONE=6인 경우, 숫자로 문자 종류를 결정할 수 있다.
그러나, 대부분의 웹 페이지가 PC를 기준으로 설계되었기 때문에 상기 입력 종류는 대부분 기본값인 'TEXT'로 설정되어 있다. 따라서, 상기 입력 종류가 기본값인 'TEXT'로 설정되어 있는 경우, 상기 입력기 결정부(300)는 상기 데이터 베이스부(400)에 저장된 데이터를 기초로 해당 입력 필드에 입력될 적절한 문자 종류를 결정한다. 이에 대해서는 이하에서 자세히 설명한다.
상기 데이터 베이스부(400)는 상기 입력 필드에 대응하는 문자 종류에 대한 데이터를 저장하고 있다. 도 3에 도시된 바와 같이, 상기 데이터 베이스부(400)는 사용이력 데이터 베이스부(410)를 포함하며, 유인단어 데이터 베이스부(430)를 더 포함할 수 있다.
상기 사용이력 데이터 베이스부(410)는 상기 입력 필드의 사용이력을 저장하고 있으며, 상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류에 대한 데이터를 저장할 수 있다. 또한, 상기 사용이력 데이터 베이스부(410)는 상기 입력 필드 및 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터를 저장할 수도 있다.
도 4는 상기 사용이력 데이터 베이스부(410)의 구성의 일례로서, ID(411), URL(412), HTML_NAME(413), INPUT_NAME(414), CHARACTER(415)의 5개 정보 필드를 가질 수 있다. 사용자가 웹 브라우징 또는 애플리케이션을 실행하면서, 접속되는 웹 페이지 또는 애플리케이션의 입력 필드마다 상기 정보가 수집되어 저장된다. 상기 사용이력 데이터 베이스부(410)의 구성은 이에 한정되지 않고 필요에 따른 정보를 저장할 수 있다.
구체적으로, 상기 ID(411)는 사용자가 입력한 입력 필드의 고유 정보로서, 정보가 저장될 때마다 순차적으로 증가한다. 상기 URL(412)은 해당 입력 필드가 존재하는 웹 페이지의 주소 중에서 첫 번째 구분자인 슬래시(/) 이전까지의 메인이 되는 도메인 이름이다. 상기 HTML_NAME(413)은 해당 입력 필드가 존재하는 웹 페이지의 주소 중에서 첫 번째 구분자인 슬래시(/) 이후의 주소이다.
상기 INPUT_NAME(414)는 해당 입력 필드가 존재하는 웹 페이지의 HTML 코드 중 입력 필드를 규정한 코드 중에서 입력 필드의 이름으로 정해진 문자열이다. 예를 들어, 도 2의 name="Tax3832"라고 해당 입력 필드의 이름이 정의된 부분이다. 상기 CHARACTER(415)는 해당 입력 필드에 입력되었던 문자 종류이다. 상기 CHARACTER(415)는 상기 입력기 결정부(300)에 의해 결정되어 해당 입력 필드에 입력된 문자 종류이다. 또한, 상기 CHARACTER(415)는 사용자가 기본 문자 종류인 한글(K)에서 영문(E) 또는 숫자(N)로 입력기를 변경한 경우, 변경되어 입력된 문자 종류일 수도 있다.
상기 입력기 결정부(300)는 입력 대기 중인 입력 필드의 정보를 상기 사용이력 데이터 베이스부(410)의 데이터와 비교하여 상기 입력 필드에 입력될 문자 종류를 결정한다.
구체적으로, 포커스를 받은 입력 필드에 대한 정보를 상기 정보 분석부(100)로부터 제공받고, 상기 정보를 이용하여 상기 사용이력 데이터 베이스부(410)에 쿼리(query)한다.
상기 사용이력 데이터 베이스부(410)에서 해당 입력 필드의 정보와 일치하는 데이터가 검색된 경우에는, 현재 입력 대기 중인 입력 필드는 기존에 입력된 적이 있다는 것을 의미한다.
따라서, 상기 사용이력 데이터 베이스부(410)에 쿼리하여 얻은 데이터에서 상기 CHARACTER(415)의 정보 필드에 저장된 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 결정한다. 즉, 이전에 상기 입력 필드에 사용자가 입력하였던 한글(K), 영문(E), 숫자(N)를 상기 입력 필드에 입력될 문자 종류로 결정한다. 이러한 과정이 상기 입력 필드에 입력될 문자 종류를 결정하는 제1 결정 과정이라 할 수 있다.
상기 제1 결정 과정에서 상기 입력 필드에 입력될 문자 종류가 결정된 경우, 상기 입력기 결정부(300)는 입력기 결정 과정을 종료하고, 상기 결정된 문자 종류를 상기 입력기 설정부(500) 또는 입력기 출력부(700)에 통지한다.
상기 입력기 설정부(500)는 상기 결정된 문자 종류로 입력기를 설정하고, 상기 입력기 출력부(700)는 상기 결정된 문자 종류로 설정된 입력기를 상기 표시부(30)로 출력한다. 이로서, 상기 표시부(30) 상에 입력기가 UI(User Interface)적으로 표시되고, 사용자는 상기 입력기를 통하여 정보를 입력할 수 있다.
반면, 상기 사용이력 데이터 베이스부(410)에서 해당 입력 필드의 정보와 일치하는 데이터가 검색되지 않은 경우에는, 상기 입력 필드에 입력될 문자 종류를 결정하는 제2 결정 과정으로 진행한다.
상기 제2 결정 과정에서, 상기 입력기 결정부(300)는 상기 입력 필드의 정보에서 추출된 유인단어에 대한 데이터가 존재하는지 상기 유인단어 데이터 베이스부(430)를 검색하여, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 결정한다.
구체적으로, 상기 입력 필드의 정보에서 문자 종류를 유추할 수 있는 유인단어를 추출하고, 상기 유인단어를 상기 유인단어 데이터 베이스부(430)에 쿼리(query)한다. 상기 유인단어란, 상기 HTLM 코드 중에서 상기 입력 필드의 앞 또는 뒤에서, 상기 입력 필드에 입력되어야 할 정보를 정의하고 있는 코드이다.
예를 들어, 상기 유인단어는 웹 페이지 상에서 해당 입력 필드의 앞 또는 뒤에 표시되는 title, label, tag 등의 문자열(character string)일 수 있다. 입력 필드의 앞에 표시되는 문자열로는 아이디, ID, 비밀번호, 패스워드, PASSWORD, PW, 나이, 주민등록번호, 전화번호, 핸드폰번호, 금액, 세액 등이 있고, 입력 필드의 뒤에 표시되는 문자열로는 수량의 단위를 나타내는 원, 명, 개, 장, 매 또는 각종 단위를 나타내는 특수 문자들 \, $, % 등이 있다.
상기 입력기 결정부(300)는 상기 입력 필드의 정보를 임시로 문자열 변수에 담은 뒤 파싱하여 HTML 코드 안에서 문자열 나누어 각 문자 단위들을 추출한다. 상기 문자열은 큰따옴표(""", double quotation marks) 또는 꺽쇠괄호(<, >, angle bracket)를 이용하여 나눌 수 있다.
상기 추출된 문자 단위들이 유인단어들이며, 상기 유인단어들이 상기 유인단어 데이터 베이스부(430)에 존재하는 경우, 상기 입력기 결정부(300)는 유인단어가 속한 카테고리의 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정한다. 이러한 과정이 상기 입력 필드에 입력될 문자 종류를 결정하는 제2 결정 과정이라 할 수 있다.
상기 제2 결정과정을 진행하기 위해서, 문자 종류에 속하는 유인단어들이 상기 유인단어 데이터 베이스부(430)에 저장되어 있어야 한다. 도 5는 상기 유인단어 데이터 베이스부(430)의 구성의 일례로서, 한글(431), 영문(433) 및 숫자(435)의 문자 종류 카테고리가 존재하고, 해당 카테고리 별로 대응하는 유인단어들이 저장되어 있다.
예를 들어, 검색, 이름, 관계 등의 유인단어는 한글의 입력이 필요하고, 아이디, ID, Search, 비밀번호 등의 유인단어는 영문의 입력이 필요하며, 원, 명, $ 등의 유인단어는 숫자(435)의 입력이 필요하다. 상기 유인단어 데이터 베이스부(430)의 구성은 이에 한정되지 않고 필요에 따른 정보를 저장할 수 있다.
본 실시예에서는 상기 입력기 결정부(300)가 유인단어를 추출하였으나, 다른 실시예에서는 상기 정보 분석부(100)에서 유인단어를 추출하여 상기 입력기 결정부(300)로 제공할 수도 있다.
상기 제2 결정 과정에서 상기 입력 필드에 입력될 문자 종류가 결정된 경우, 상기 입력기 결정부(300)는 입력기 결정 과정을 종료하고, 상기 결정된 문자 종류를 상기 입력기 설정부(500)에 통지한다. 마찬가지로, 상기 입력기 설정부(500)는 상기 결정된 문자 종류로 입력기를 설정하고, 상기 입력기 출력부(700)는 상기 설정된 입력기를 상기 표시부(30)로 출력한다.
반면, 상기 유인단어 데이터 베이스부(430)에서 유인단어와 일치하는 데이터가 검색되지 않은 경우에는, 상기 입력 필드에 입력될 문자 종류를 결정하는 제3 결정 과정으로 진행한다.
상기 제3 결정 과정에서, 상기 입력기 결정부(300)는 상기 입력 필드의 정보에서 추출된 키워드에 대한 데이터가 존재하는지 상기 유인단어 데이터 베이스부(430)를 검색하여, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 결정한다.
구체적으로, 상기 입력 필드의 정보에서 문자 종류를 유추할 수 있는 키워드를 추출하고, 상기 키워드를 상기 유인단어 데이터 베이스부(430)에 쿼리(query)한다. 상기 키워드란, 상기 HTLM 코드 중에서 상기 입력 필드 내에서, 상기 입력 필드에 입력되어야 할 정보를 예시하고 있는 코드이다. 상기 키워드는 웹 페이지 상의 입력 필드 내부에서 반투명하게 표시될 수 있다.
예를 들어, 상기 키워드는 웹 페이지 설계 시에 사용자의 편의를 고려하고, 설계자의 의도와 다른 정보를 입력하는 오류를 방지하기 위하여 입력 필드 내부에 입력 받을 정보의 예시적인 정보로서, 숫자를 입력하여야 하는 경우라면, '0', 이름을 입력하여야 하는 경우라면 '홍길동' 등이 있다. 또는, 주민번호를 입력하여야 하는 경우라면 '주민번호 입력해 주세요', 한글을 입력하여야 하는 경우라면 '비밀번호 분실 시 확인 대답', '200바이트 이상 작성' 등이 있다.
상기 입력기 결정부(300)는 상기 입력 필드의 정보인 HTML 코드 안에서 value 항목으로 규정될 수 있다. 상기 value 항목은 설계자의 의도에 따라 HTML 코드에 포함될 수도 있고, 포함되지 않을 수도 있다.
상기 입력기 결정부(300)는 상기 제2 결정 과정에서 파싱한 HTML 코드를 다시 한번 파싱하여 value의 문자열을 찾는다. value의 문자열을 찾아낸 경우, "value" 다음에 오는 큰따옴표(""", double quotation marks) 안의 값(도 2의 경우, "0")을 읽어와서 임의의 문자열에 담은 후에, 상기 문자열을 스페이스(space) 기준으로 다시 파싱하여 1 개 이상의 단어의 조합으로 만든다.
상기 1 개 이상의 단어들이 키워드들이며, 상기 키워드들이 상기 유인단어 데이터 베이스부(430)에 존재하는지 쿼리(query)한다. 상기 키워드들이 상기 유인단어 데이터 베이스부(430)에 존재하는 경우, 상기 키워드가 속한 카테고리의 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정한다. 이러한 과정이 상기 입력 필드에 입력될 문자 종류를 결정하는 제3 결정 과정이라 할 수 있다.
본 실시예에서는 상기 입력기 결정부(300)가 키워드를 추출하였으나, 다른 실시예에서는 상기 정보 분석부(100)에서 키워드를 추출하여 상기 입력기 결정부(300)로 제공할 수도 있다.
상기 제3 결정 과정에서 상기 입력 필드에 입력될 문자 종류가 결정된 경우, 상기 입력기 결정부(300)는 입력기 결정 과정을 종료하고, 상기 결정된 문자 종류를 상기 입력기 설정부(500)에 통지한다. 마찬가지로, 상기 입력기 설정부(500)는 상기 결정된 문자 종류로 입력기를 설정하고, 상기 입력기 출력부(700)는 상기 설정된 입력기를 상기 표시부(30)로 출력한다.
반면, 상기 유인단어 데이터 베이스부(430)에서 키워드와 일치하는 데이터가 검색되지 않은 경우에는, 상기 입력기 결정부(300)는 상기 입력 필드에 입력될 문자 종류의 결정이 불가능한 경우로 판단하고, 상기 입력 필드에 입력될 문자 종류를 기본값(default value)으로 지정된 문자 종류로 결정할 수 있다. 이러한 과정이 상기 입력 필드에 입력될 문자 종류를 결정하는 제4 결정 과정이라 할 수 있다.
상기 기본값이 되는 문자 종류는 국가마다 자국어로 설정될 수 있으며(예를 들어, 미국은 영어, 일본은 일본어, 중국은 중국어), 이와 다르게 사용자가 기본값을 설정할 수도 있다.
상기 입력기 결정부(300)는 상기 설명한 바와 같이, 순차적으로 상기 입력 필드에 입력될 문자 종류를 결정하는 과정을 진행할 수 있다. 그러나, 어느 단계에서라도 사용자가 문자 종류를 선택할 수 있고, 이 경우 상기 입력기 결정부(300)는 사용자가 선택한 문자 종류를 입력기의 문자 종류로 우선적으로 결정할 수 있다.
상기 입력기 설정부(500)는 상기 결정된 문자 종류로 입력기를 설정하고, 상기 입력기 출력부(700)는 상기 설정된 입력기를 상기 표시부(30)로 출력한다. 사용자는 출력된 입력기에 터치를 가하여 해당 입력 필드에 정보를 입력한다. 이 경우, 상기 입력 감지부(70)는 사용자의 입력을 감지하여 상기 사용이력 데이터 베이스부(410)에 통지하고, 상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류에 대한 데이터는 상기 사용이력 데이터 베이스부(410)에 저장된다.
또한, 사용자는 출력된 입력기에 터치를 가하여 상기 입력기의 문자 종류를 변경할 수 있다. 이 경우, 상기 입력 감지부(70)는 사용자의 입력을 감지하여 상기 사용이력 데이터 베이스부(410)에 통지하고, 상기 입력 필드 및 상기 변경된 문자 종류에 대한 데이터는 상기 사용이력 데이터 베이스부(410)에 저장된다.
상기와 같이 상기 사용이력 데이터 베이스부(410)에 저장된 데이터들은 상기 입력기 결정부(300)가 상기 입력 필드에 입력될 문자 종류를 결정하는 과정에서 비교 데이터로 이용된다.
본 실시예에 따른 입력기의 문자 종류를 결정하는 단말기에 따르면, 이미 사용자의 입력이 있었던 입력 필드에 대한 데이터 또는 입력 필드에 입력될 문자 종류를 유추할 수 있는 유인단어 또는 키워드에 대한 데이터를 저장하여 두고, 상기 데이터를 이용하여 해당 입력 필드에 입력될 문자 종류를 결정한다. 따라서, 상기 자동으로 결정된 문자 종류에 따라 입력기가 설정되고 출력되므로, 사용자가 적절한 다른 문자 종류로 입력기를 변경하는 과정을 생략할 수 있다.
도 6은 본 발명의 일 실시예에 따른 단말기에서 입력기의 종류를 결정하는 방법을 설명하기 위한 흐름도이다. 도 7은 도 6의 문자 종류를 결정하는 단계를 구체적으로 설명하기 위한 흐름도이다.
본 실시예에 따른 단말기에서 입력기의 문자 종류를 결정하는 방법은 도 1의 단말기(1)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1의 단말기(1)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
도 6을 참조하면, 본 실시예에 따른 단말기에서 입력기의 문자 종류를 결정하는 방법은, 상기 단말기(1)에서 웹 브라우징 또는 애플리케이션을 실행하는 중에 입력 필드에 포커스가 감지된 경우 시작된다(단계 S000). 예를 들어, 상기 포커스는 사용자가 정보 입력을 원하는 입력 필드를 터치하거나 클릭하여 커서를 이동시키는 것으로 감지할 수 있다.
상기 포커스가 감지된 경우, 상기 입력 필드의 정보를 분석한다(단계 S100). 예를 들어, 상기 입력 필드의 정보는 상기 입력 필드가 정의된 정보로서 입력기의 입력 종류를 포함하며, HTML 코드일 수 있다.
이후, 상기 분석된 입력 필드의 정보 또는 상기 입력 필드의 사용이력에 대해 저장된 데이터를 기초로, 상기 입력 필드에 입력될 문자 종류를 결정한다(단계 S300). 단계 S300은 상기 입력 필드에 입력될 문자 종류를 결정하는 과정을 순차적으로 진행할 수 있으며, 진행한 과정에서 문자 종류가 결정된 경우 다음 과정을 거치지 않고, 단계 S500 또는 단계 S700으로 진행한다.
단계 S300에서 상기 입력 필드에 입력될 문자 종류를 결정하는 구체적인 과정은 도 7을 참조하여 설명한다.
도 7을 참조하면, 이전에 상기 입력 필드에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는지 사용이력 데이터 베이스부(410, 도 3참조)를 검색한다(단계 S310). 상기 사용이력 데이터 베이스부에는 이전에 입력된 적이 있는 입력 필드 및 상기 입력 필드에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기에 대한 데이터가 저장되어 있다.
만약, 상기 입력 필드에 이전에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는 경우, 상기 데이터를 기초로 상기 입력 필드에 입력될 문자 종류를 결정한다(단계 S312). 이러한 과정이 제1 결정 과정이며, 문자 종류가 결정된 경우, 단계 S500으로 진행한다.
그러나, 상기 입력 필드에 이전에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드의 정보에서 유인단어를 추출한다(단계 S320). 상기 유인단어란, 상기 HTLM 코드 중에서 상기 입력 필드의 앞 또는 뒤에서, 상기 입력 필드에 입력되어야 할 정보를 정의하고 있는 코드이다.
상기 유인단어가 추출되면, 상기 추출된 유인단어에 대한 데이터가 존재하는지 유인단어 데이터 베이스부(430, 도 3참조)를 검색한다(단계 S321). 상기 유인단어 데이터 베이스부에는 유인단어들이 문자 종류 카테고리 별로 저장되어 있다.
만약, 상기 유인단어에 대한 데이터가 존재하는 경우, 상기 유인단어와 대응하는 카테고리의 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정한다(단계 S322). 이러한 과정이 제2 결정 과정이며, 문자 종류가 결정된 경우, 단계 S500으로 진행한다.
그러나, 상기 유인단어에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드의 정보에서 키워드를 추출한다(단계 S330). 상기 키워드란, 상기 HTLM 코드 중에서 상기 입력 필드 내에서, 상기 입력 필드에 입력되어야 할 정보를 예시하고 있는 코드이다.
상기 키워드가 추출되면, 상기 추출된 키워드에 대한 데이터가 존재하는지 상기 유인단어 데이터 베이스부를 다시 한번 검색한다(단계 S331). 상기 유인단어 데이터 베이스부는 상기 제2 결정과정에서 사용한 데이터 베이스이다.
만약, 상기 키워드에 대한 데이터가 존재하는 경우, 상기 키워드와 대응하는 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정한다(단계 S332). 이러한 과정이 제3 결정 과정이며, 문자 종류가 결정된 경우, 단계 S500으로 진행한다.
그러나, 상기 키워드에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드에 입력될 문자 종류를 기본값(default value)으로 지정된 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정한다(단계 S340). 이러한 과정이 제4 결정 과정이며, 문자 종류가 결정된 경우, 단계 S500으로 진행한다.
본 실시예에 따른 단말기에서 입력기의 문자 종류를 결정하는 방법은, 상기 설명한 바와 같이 상기 입력 필드에 입력될 문자 종류를 결정하지만, 사용자의 입력에 따라 상기 입력 필드에 입력될 문자 종류를 우선적으로 결정할 수 있으며, 결정된 문자 종류를 변경할 수도 있다.
단계 S300에서 상기 입력 필드에 입력될 문자 종류가 결정되면, 상기 결정된 문자 종류로 상기 입력 필드에 대응하는 입력기를 설정하는 단계를 더 포함할 수 있다(단계 S500). 상기 결정된 문자 종류로 설정된 입력기는 단말기의 표시부로 출력한다(단계 S700). 출력된 입력기는 단말기의 표시부 상에 UI적으로 표시되고, 사용자는 상기 입력기를 통하여 정보를 입력할 수 있다.
사용자가 상기 입력 필드에 문자를 입력하는 경우, 상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류에 대한 데이터를 상기 사용이력 데이터 베이스부에 저장할 수 있다(단계 S900). 상기 사용이력 데이터 베이스부에 저장된 데이터들은 이후 입력 필드에 입력될 문자 종류를 결정하는 과정에서 비교 데이터로 이용될 수 있다.
본 실시예에 따른 단말기에서 입력기의 문자 종류를 결정하는 방법에 따르면, 이미 사용자의 입력이 있었던 입력 필드에 대한 데이터 또는 입력 필드에 입력될 문자 종류를 유추할 수 있는 유인단어 또는 키워드에 대한 데이터를 저장하여 두고, 상기 데이터를 이용하여 해당 입력 필드에 입력될 문자 종류를 결정한다. 따라서, 상기 자동으로 결정된 문자 종류에 따라 입력기가 설정되고 출력되므로, 사용자가 적절한 다른 문자 종류로 입력기를 변경하는 과정을 생략할 수 있다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 단말기 10: 네트워크 연결부
30: 표시부 50: 입력기 제공부
70: 입력 감지부 100: 정보 분석부
300: 입력기 결정부 400: 데이터 베이스부
500: 입력기 설정부 700: 입력기 출력부
410: 사용이력 데이터 베이스부 430: 유인단어 데이터 베이스부

Claims (18)

  1. 입력 필드에 포커스가 감지되는 경우, 상기 입력 필드의 정보를 분석하는 정보 분석부;
    상기 입력 필드의 사용이력에 대한 데이터를 저장하는 데이터 베이스부;
    상기 분석된 입력 필드의 정보로부터 유인단어 정보 또는 키워드 정보를 추출하여 상기 입력 필드에 입력될 문자 종류를 결정하거나, 또는 상기 입력 필드에 대응하는 입력기의 사용이력 정보를 상기 데이터 베이스부에 저장된 데이터와 비교하여 상기 입력 필드에 입력될 문자 종류를 결정하는 입력기 결정부; 및
    상기 결정된 문자 종류에 따른 입력기를 단말기의 표시부로 출력하는 입력기 출력부를 포함하는 입력기의 종류를 결정하는 단말기.
  2. 제1항에 있어서, 상기 데이터 베이스부는,
    상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터를 저장하는 사용이력 데이터 베이스부를 포함하는 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  3. 제2항에 있어서, 상기 데이터 베이스부는,
    유인단어 및 상기 유인단어에 대응하는 문자 종류에 대한 데이터를 저장하는 유인단어 데이터 베이스부를 더 포함하는 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  4. 제3항에 있어서, 상기 입력기 결정부는,
    상기 입력 필드에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는지 사용이력 데이터 베이스부를 검색하여, 상기 데이터를 비교하여 상기 입력 필드에 입력될 문자 종류를 1차로 결정하고,
    상기 입력 필드의 정보에서 추출된 유인단어에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하여, 상기 유인단어에 대한 데이터에 대응하는 문자 종류를 2차로 결정하고,
    상기 입력 필드의 정보에서 추출된 키워드에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하여, 상기 키워드에 대한 데이터에 대응하는 문자 종류를 3차로 결정하는 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  5. 제4항에 있어서, 상기 입력기 결정부는,
    상기 입력 필드에 입력될 문자 종류의 결정이 불가능한 경우, 기본값(default value)으로 지정된 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  6. 제4항에 있어서, 상기 정보 분석부는,
    상기 입력 필드를 정의하고 있는 HTML 코드를 분석하는 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  7. 제6항에 있어서, 상기 유인단어는,
    상기 HTML 코드 중에서, 상기 입력 필드의 앞 또는 뒤에서 상기 입력 필드에 입력되어야 할 정보를 정의하고 있는 코드인 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  8. 제6항에 있어서, 상기 키워드는,
    상기 HTML 코드 중에서, 상기 입력 필드 내에서 상기 입력 필드에 입력되어야 할 정보를 예시하고 있는 코드인 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  9. 제1항에 있어서,
    상기 결정된 문자 종류로 상기 입력 필드에 대응하는 입력기를 설정하여 상기 표시부로 제공하는 입력기 설정부를 더 포함하는 것을 특징으로 하는 입력기의 종류를 결정하는 단말기.
  10. 단말기 상의 입력 필드에 포커스가 감지되는 경우, 상기 입력 필드의 정보를 분석하는 단계;
    상기 분석된 입력 필드의 정보로부터 유인단어 정보 또는 키워드 정보를 추출하여 상기 입력 필드에 입력될 문자 종류를 결정하거나, 또는 상기 입력 필드에 대응하는 입력기의 사용이력 정보를 상기 입력 필드의 사용이력에 대해 저장된 데이터와 비교하여 상기 입력 필드에 입력될 문자 종류를 결정하는 단계; 및
    상기 결정된 문자 종류에 따른 입력기를 단말기의 표시부로 출력하는 단계를 포함하는 단말기에서 입력기의 종류를 결정하는 방법.
  11. 제10항에 있어서,
    상기 입력 필드에 문자가 입력되는 경우, 상기 입력 필드 및 상기 입력 필드에 입력되는 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터를 사용이력 데이터 베이스부에 저장하는 단계를 더 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  12. 제10항에 있어서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는,
    이전에 상기 입력 필드에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는지 사용이력 데이터 베이스부를 검색하는 단계; 및
    상기 입력 필드에 이전에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하는 경우, 상기 데이터에 대응하는 문자 종류를 결정하는 단계를 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  13. 제12항에 있어서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는,
    상기 입력 필드에 이전에 입력되었던 문자 종류 또는 상기 입력 필드에 대응하는 입력기 종류에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드의 정보에서 유인단어를 추출하는 단계;
    상기 추출된 유인단어에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하는 단계; 및
    상기 유인단어에 대한 데이터가 존재하는 경우, 상기 유인단어와 대응하는 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 단계를 더 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  14. 제13항에 있어서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는,
    상기 유인단어에 대한 데이터가 존재하지 않는 경우, 상기 입력 필드의 정보에서 키워드를 추출하는 단계;
    상기 추출된 키워드에 대한 데이터가 존재하는지 유인단어 데이터 베이스부를 검색하는 단계; 및
    상기 키워드에 대한 데이터가 존재하는 경우, 상기 키워드와 대응하는 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 단계를 더 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  15. 제14항에 있어서, 상기 입력 필드에 입력될 문자 종류를 결정하는 단계는,
    상기 키워드에 대한 데이터가 존재하지 않는 경우, 기본값(default value)으로 지정된 문자 종류를 상기 입력 필드에 입력될 문자 종류로 결정하는 단계를 더 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  16. 제10항에 있어서,
    사용자의 입력에 따라 상기 결정된 문자 종류를 변경하는 단계를 더 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  17. 제10항에 있어서, 상기 입력 필드의 정보를 분석하는 단계는,
    상기 입력 필드를 정의하고 있는 HTML 코드를 분석하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
  18. 제10항에 있어서,
    상기 결정된 문자 종류로 상기 입력 필드에 대응하는 입력기를 설정하는 단계를 더 포함하는 것을 특징으로 하는 단말기에서 입력기의 종류를 결정하는 방법.
KR1020120089918A 2012-08-17 2012-08-17 입력기의 종류를 결정하는 단말기 및 방법 KR101393794B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020120089918A KR101393794B1 (ko) 2012-08-17 2012-08-17 입력기의 종류를 결정하는 단말기 및 방법
US13/788,296 US20140052725A1 (en) 2012-08-17 2013-03-07 Terminal and method for determining type of input method editor
EP13159667.8A EP2698727A3 (en) 2012-08-17 2013-03-18 Terminal and method for determining type of input method editor
CN201310118700.6A CN103593378B (zh) 2012-08-17 2013-04-08 确定输入方法编辑器的类型的终端和方法
US16/135,571 US10838592B2 (en) 2012-08-17 2018-09-19 Terminal and method for determining type of input method editor
US17/030,578 US20210011595A1 (en) 2012-08-17 2020-09-24 Terminal and method for determining type of input method editor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120089918A KR101393794B1 (ko) 2012-08-17 2012-08-17 입력기의 종류를 결정하는 단말기 및 방법

Publications (2)

Publication Number Publication Date
KR20140023677A KR20140023677A (ko) 2014-02-27
KR101393794B1 true KR101393794B1 (ko) 2014-05-12

Family

ID=48044554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120089918A KR101393794B1 (ko) 2012-08-17 2012-08-17 입력기의 종류를 결정하는 단말기 및 방법

Country Status (4)

Country Link
US (3) US20140052725A1 (ko)
EP (1) EP2698727A3 (ko)
KR (1) KR101393794B1 (ko)
CN (1) CN103593378B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068085B2 (en) * 2013-06-14 2018-09-04 Blackberry Limited Method and system for allowing any language to be used as password
TWI598808B (zh) * 2013-06-26 2017-09-11 宏碁股份有限公司 電子裝置控制方法及電子裝置
US8869019B1 (en) * 2013-07-31 2014-10-21 Captora Inc. Method and apparatus for automatic website optimization
CN104866115B (zh) * 2014-02-24 2019-01-08 腾讯科技(深圳)有限公司 一种字符输入方法及浏览器
US9959069B2 (en) * 2015-02-12 2018-05-01 Microsoft Technology Licensing, Llc Externalized execution of input method editor
KR20190061053A (ko) * 2016-10-10 2019-06-04 폭스바겐 악티엔 게젤샤프트 그래픽 사용자 인터페이스의 표시와 조작을 조정하기 위한 방법
US10175770B2 (en) 2016-10-13 2019-01-08 International Business Machines Corporation Proactive input method editor switching
CN107291884A (zh) * 2017-06-20 2017-10-24 郑州云海信息技术有限公司 一种数据关系构建方法和装置
CN111240496A (zh) * 2018-11-28 2020-06-05 深圳市帝迈生物技术有限公司 终端设备、移动终端及信息录入方法、计算机存储介质
US10928992B2 (en) * 2019-03-11 2021-02-23 International Business Machines Corporation HTML editing operations
CN109948102B (zh) * 2019-03-27 2021-05-25 维沃移动通信有限公司 页面内容编辑方法及终端
WO2022061857A1 (en) * 2020-09-28 2022-03-31 Orange Method for operating a terminal when accessing a web page defined by a code in a markup language
US11720331B2 (en) * 2021-11-12 2023-08-08 Citrix Systems, Inc. Keyboard accessible web page embedded interactive element

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007025808A (ja) * 2005-07-12 2007-02-01 Canon Inc 仮想キーボードシステム及びその制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944790A (en) * 1996-07-19 1999-08-31 Lucent Technologies Inc. Method and apparatus for providing a web site having a home page that automatically adapts to user language and customs
US20020062342A1 (en) 2000-11-22 2002-05-23 Sidles Charles S. Method and system for completing forms on wide area networks such as the internet
JP5140997B2 (ja) * 2006-11-15 2013-02-13 富士通株式会社 プログラム、文字入力編集方法及び装置
US8001551B2 (en) * 2007-04-24 2011-08-16 Microsoft Corporation Providing localized resources for client-side script execution
US8667412B2 (en) * 2007-09-06 2014-03-04 Google Inc. Dynamic virtual input device configuration
WO2011004367A1 (en) * 2009-07-09 2011-01-13 Eliyahu Mashiah Content sensitive system and method for automatic input language selection
US20110087962A1 (en) * 2009-10-14 2011-04-14 Qualcomm Incorporated Method and apparatus for the automatic predictive selection of input methods for web browsers
CN102193638B (zh) * 2010-03-05 2015-02-25 深圳Tcl新技术有限公司 字符输入方法及采用该方法的电子设备
CN101916158A (zh) * 2010-07-30 2010-12-15 百度在线网络技术(北京)有限公司 一种根据用户设备的输入框配置输入模式的方法和设备
CN102436454A (zh) * 2010-09-29 2012-05-02 腾讯科技(深圳)有限公司 一种浏览器的输入法切换方法和系统
US9170706B2 (en) * 2011-05-12 2015-10-27 Microsoft Technology Licensing, Llc Query box polymorphism
US20140035823A1 (en) * 2012-08-01 2014-02-06 Apple Inc. Dynamic Context-Based Language Determination
US9329778B2 (en) * 2012-09-07 2016-05-03 International Business Machines Corporation Supplementing a virtual input keyboard

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007025808A (ja) * 2005-07-12 2007-02-01 Canon Inc 仮想キーボードシステム及びその制御方法

Also Published As

Publication number Publication date
US10838592B2 (en) 2020-11-17
KR20140023677A (ko) 2014-02-27
US20190018560A1 (en) 2019-01-17
CN103593378B (zh) 2017-09-22
EP2698727A3 (en) 2016-08-03
US20210011595A1 (en) 2021-01-14
EP2698727A2 (en) 2014-02-19
CN103593378A (zh) 2014-02-19
US20140052725A1 (en) 2014-02-20

Similar Documents

Publication Publication Date Title
KR101393794B1 (ko) 입력기의 종류를 결정하는 단말기 및 방법
US8874542B2 (en) Displaying browse sequence with search results
US9489401B1 (en) Methods and systems for object recognition
US9268753B2 (en) Automated addition of accessiblity features to documents
US9613003B1 (en) Identifying topics in a digital work
US9015175B2 (en) Method and system for filtering an information resource displayed with an electronic device
US20120297294A1 (en) Network search for writing assistance
JP2002197104A (ja) 情報検索処理装置,情報検索処理方法および情報検索処理プログラムを記録した記録媒体
Borodin et al. Context browsing with mobiles-when less is more
JP2007072646A (ja) 検索装置、検索方法およびプログラム
EP3204872A1 (en) Linking thumbnail of image to web page
JP5056133B2 (ja) 情報抽出システム、情報抽出方法および情報抽出用プログラム
WO2016155643A1 (zh) 一种基于输入的显示候选词的方法和装置
JP6157965B2 (ja) 電子機器、方法、およびプログラム
CN104778232A (zh) 一种基于长查询的搜索结果的优化方法和装置
US9336317B2 (en) System and method for searching aliases associated with an entity
CN112579937A (zh) 一种字符的高亮显示方法及装置
KR20130021482A (ko) Html 테이블의 셀 단위 편집 방법
JPWO2015075920A1 (ja) 入力支援装置、入力支援方法及びプログラム
JP5187187B2 (ja) 体験情報検索システム
JP5008152B2 (ja) 調達情報検索システム
JP5913774B2 (ja) Webサイトを共有する方法、電子機器およびコンピュータ・プログラム
KR20090045520A (ko) 시맨틱 기술을 이용한 태그어 자동 생성 방법
Grigera et al. A Scoring Map Algorithm for Automatically Detecting Structural Similarity of DOM Elements.
Althaus et al. Smart linkification of content within applications

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181030

Year of fee payment: 5