KR20210149969A - 컨텐츠를 수정하기 위한 전자 장치 및 방법 - Google Patents

컨텐츠를 수정하기 위한 전자 장치 및 방법 Download PDF

Info

Publication number
KR20210149969A
KR20210149969A KR1020200066721A KR20200066721A KR20210149969A KR 20210149969 A KR20210149969 A KR 20210149969A KR 1020200066721 A KR1020200066721 A KR 1020200066721A KR 20200066721 A KR20200066721 A KR 20200066721A KR 20210149969 A KR20210149969 A KR 20210149969A
Authority
KR
South Korea
Prior art keywords
content
result
electronic device
error
final result
Prior art date
Application number
KR1020200066721A
Other languages
English (en)
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 KR1020200066721A priority Critical patent/KR20210149969A/ko
Priority to PCT/KR2020/010257 priority patent/WO2021246570A1/ko
Publication of KR20210149969A publication Critical patent/KR20210149969A/ko

Links

Images

Classifications

    • 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
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/44Statistical methods, e.g. probability models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시는 인공지능 학습 모델을 이용하여 컨텐츠에서 에러가 발생한 위치를 자동적으로 검출하고, 에러를 정정하는 전자 장치 및 방법에 관한 것이다.
구체적으로, 전자 장치는 메모리 및 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는 제1 컨텐츠 및 제2 컨텐츠를 순차적으로 수신함으로써, 각각 제1 최종 결과물 및 제2 최종 결과물을 생성할 수 있다. 적어도 하나의 프로세서는 제1 컨텐츠를 인식함으로써 생성된 중간 결과물을 메모리에 저장하며, 제2 최종 결과물 및 중간 결과물에 기초하여, 제1 최종 결과물에 포함된 에러의 위치를 검출함으로써, 제1 최종 결과물을 수정할 수 있다.

Description

컨텐츠를 수정하기 위한 전자 장치 및 방법 {ELECTRONIC DEVICE AND METHOD FOR MODIFYING CONTENT}
본 개시는 컨텐츠(content)를 수정(modify)하기 위한 전자 장치 및 방법에 관한 것으로서, 보다 상세하게는 인공지능 학습 모델을 이용하여, 컨텐츠에 포함된 에러의 위치를 자동적으로 검출하는 전자 장치 및 방법에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
한편, 전자 장치는 인공지능 기술을 사용하여 인식된 컨텐츠에 포함된 에러를 효과적으로 검출 및 정정할 필요가 있다.
일 실시예에 의하면, 제1 컨텐츠를 인식하는 과정에서 생성된 중간 결과물을 별도로 저장함으로써, 사용자로부터 입력된 제2 컨텐츠 및 중간 결과물에 기초하여, 제1 컨텐츠에 포함된 에러의 위치를 검출하고, 에러를 정정하는 전자 장치 및 방법이 제공될 수 있다.
본 개시의 일 실시예에 따른 전자 장치는 메모리; 및 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는 제1 컨텐츠 및 제2 컨텐츠를 순차적으로 수신함으로써 각각 제1 최종 결과물 및 제2 최종 결과물을 생성하고, 상기 제1 컨텐츠를 인식함으로써 생성된 중간 결과물을 상기 메모리에 저장하며, 상기 제2 최종 결과물 및 상기 중간 결과물에 기초하여 상기 제1 최종 결과물에 포함된 에러의 위치를 검출함으로써 상기 제1 최종 결과물을 수정할 수 있다.
본 개시의 일 실시예에 따른 방법은 제1 컨텐츠를 수신하는 단계; 상기 제1 컨텐츠를 인식함으로써 생성된 중간 결과물을 메모리에 저장하는 단계; 상기 중간 결과물로부터 생성된 제1 최종 결과물을 전시하는 단계; 제2 컨텐츠를 수신하는 단계; 상기 제2 컨텐츠로부터 제2 최종 결과물을 생성하는 단계; 상기 제2 최종 결과물 및 상기 중간 결과물에 기초하여 상기 제1 최종 결과물에 포함된 에러의 위치를 검출하는 단계; 및 상기 에러의 위치에 기초하여 상기 제1 최종 결과물을 수정하는 단계를 포함할 수 있다.
도 1은 일 실시예에 따른 잘못 인식된 컨텐츠를 수정하는 전자 장치의 블록도이다.
도 2a 및 도 2b는 제1 컨텐츠가 잘못 인식되는 경우를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 전자 장치가 잘못 인식된 문장을 수정하기 위한 방법을 설명하기 위한 도면이다.
도 4는 다른 일 실시예에 따른 전자 장치를 나타낸 블록도이다.
도 5는 일 실시예에 따른 전자 장치가 잘못 인식된 제1 컨텐츠를 수정하는 동작을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 인식 모듈을 나타낸 블록도이다.
도 7은 일 실시예에 따른 인식 모듈이 제1 컨텐츠를 인식하는 동작을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 전자 장치가 잘못 인식된 다이어그램을 수정하는 방법에 대해 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 전자 장치가 잘못 인식된 수학식을 수정하는 방법에 대해 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 전자 장치가 잘못 인식된 이미지를 수정하는 방법에 대해 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 전자 장치의 동작 방법을 나타내는 순서도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명의 일 실시예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 이 용어들에 의해 한정되어서는 안 된다. 이 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용된다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에서 다양한 곳에 등장하는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 개시의 일 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단" 및 "구성"등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
본 개시의 일반적인 개념의 추가적인 양상들 및/또는 장점들의 부분들은 후술되는 설명들에서 다뤄질 것이며, 다른 부분들은 설명들을 통해 명료해지거나, 본 개시의 일반적인 개념의 실시를 통해 습득될 수 있을 것이다.
도 1은 일 실시예에 따른 잘못 인식된 컨텐츠를 수정하는 전자 장치의 블록도이다.
일 실시예에 따른 전자 장치(100)는 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 전자 장치(100)는, 디지털 카메라, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어 등이 있을 수 있으나, 이에 한정되는 것은 아니다. 본 명세서에서 기술되는 전자 장치(100)는 사용자에 의해 착용될 수 있는 장치(wearable device)를 포함할 수 있다. 웨어러블 디바이스는 액세서리 형 장치(예컨대, 시계, 반지, 팔목 밴드, 발목 밴드, 목걸이, 안경, 콘택트 렌즈), 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형 장치(예: 전자 의복), 신체 부착형 장치(예컨대, 스킨 패드(skin pad)), 또는 생체 이식형 장치(예: implantable circuit) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 이하에서는, 설명의 편의상, 전자 장치(100)가 스마트 폰인 경우를 예로 들어 설명하기로 한다.
도 1에 도시된 바와 같이, 일 실시예에 따른 전자 장치(100)는 프로세서(110), 메모리(120), 입력부(130) 및 출력부(140)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 전자 장치(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 전자 장치(100)는 구현될 수 있다. 예를 들어, 비록 도면에는 프로세서(110)가 한 개만 도시되었으나, 전자 장치(100)는 적어도 하나의 프로세서(110)를 포함할 수 있다.
입력부(130)는 사용자가 전자 장치(100)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 입력부(130)에는 마이크로폰, 카메라, 키 패드(key pad), 터치 패드 등이 있을 수 있으나 이에 한정되는 것은 아니다.
사용자는 입력부(130)를 통해 제1 컨텐츠 및 제1 컨텐츠에 대한 위치 정보를 입력할 수 있다. 제1 컨텐츠는 수학식, 다이어그램, 텍스트 및 이미지 등을 포함할 수 있다. 제1 컨텐츠에 대한 위치 정보는 기하학적 위치 정보를 포함할 수 있다. 일 실시예에 따르면, 기하학적 위치 정보는 2차원 좌표를 포함할 수 있다. 예를 들어, 기하학적 위치 정보는 제1 컨텐츠가 디스플레이에 출력된 경우에, 출력된 제1 컨텐츠의 디스플레이에서의 위치를 나타낼 수 있다.
제1 컨텐츠는 다양한 방식에 따라 입력될 수 있다. 예를 들어, 사용자는 마이크로폰에 음성을 입력하는 방식, 터치 패드에 핸드라이팅(Handwriting)으로 텍스트를 입력하는 방식, 키 패드에 텍스트를 입력하는 방식, 카메라를 사용하여 이미지를 촬영하는 방식 등을 사용하여, 제1 컨텐츠를 입력할 수 있다.
사용자는 입력부(130)를 통해 제2 컨텐츠를 입력할 수 있다. 사용자는 제1 컨텐츠가 잘못 인식될 경우에 입력부(130)를 통해 제2 컨텐츠를 입력할 수 있다. 따라서, 제2 컨텐츠는 제1 컨텐츠보다 나중에 입력될 수 있다. 제2 컨텐츠는 제1 컨텐츠 중에서 에러가 발생한 부분에 대응할 수 있다. 구체적으로, 제2 컨텐츠는 제1 컨텐츠에 포함된 에러를 정정한 결과일 수 있다.
제2 컨텐츠는 수학식, 다이어그램, 텍스트 및 이미지 등을 포함할 수 있다. 제2 컨텐츠는 다양한 방식에 따라 입력될 수 있으며, 일 예로, 사용자는 마이크로폰에 음성을 입력하여, 제2 컨텐츠를 입력할 수 있다.
일 실시예에 따르면, 사용자는 제2 컨텐츠만 입력할 뿐 제2 컨텐츠에 대한 위치 정보는 별도로 입력하지 않을 수 있다. 예를 들어, 제2 컨텐츠에 대한 위치 정보는 제1 컨텐츠에 포함된 에러의 위치 정보일 수 있다. 후술하는 바와 같이, 일 실시예에 따르면, 전자 장치(100)는 사용자로부터 제2 컨텐츠에 대한 위치 정보를 입력받지 않고, 제1 컨텐츠를 인식하는 과정에서 생성된 정보인 제1 중간 결과물을 이용하여, 제1 컨텐츠에 포함된 에러의 위치를 검출할 수 있다.
예를 들어, 사용자가 입력부(130)를 통해 드라이팅 방식으로 입력한 문장에 포함된 복수의 단어들 중 어느 하나가 잘못 인식된 경우가 발생할 수 있다. 사용자는 잘못 인식된 단어를 정정하여, 정정된 단어를 입력부(130)를 통해 음성으로 다시 입력할 수 있다. 제1 컨텐츠 및 제2 컨텐츠는 각각 문장 및 정정된 단어에 대응할 수 있다.
메모리(120)는 프로세서(110)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들을 저장할 수도 있다. 도면에 도시된 바와 같이 메모리(120)는 프로세서(110)의 외부에 위치할 수도 있고, 프로세서(110)의 내부에 위치할 수도 있다. 일 실시예에 따르면, 후술하는 바와 같이 메모리(120)는 제1 컨텐츠를 인식하는 과정에서 생성된 제1 중간 결과물을 저장할 수 있다. 예를 들어, 제1 중간 결과물은 제1 컨텐츠로부터 추출된 특징들의 확률들을 나타낼 수 있다. 선택적으로 특징들은 심볼들 및 음소들을 포함할 수 있다.
메모리(120)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
프로세서(110)는 통상적으로 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(110)는, 메모리(120)에 저장된 프로그램들을 실행함으로써, 메모리(120), 입력부(130) 및 출력부(140)를 전반적으로 제어할 수 있다.
일 실시예에 의하면, 프로세서(110)는 인공지능 학습 모델을 생성하기 위한 AI(Artificial Intelligence) 프로세서를 포함할 수 있으나, 이에 한정되는 것은 아니다. 일 실시예에 의하면, AI 프로세서는 프로세서(110)와 별도의 칩으로 구현될 수도 있다.
본 개시에 따른 AI 프로세서는 입력부(130)를 통해 아날로그 신호인 음성 신호를 수신하고, ASR(Automatic Speech Recognition)모델을 이용하여 음성 부분을 컴퓨터로 판독 가능한 텍스트로 변환할 수 있다. 자연어 이해(Natural Language Understanding, NLU) 모델을 이용하여 변환된 텍스트를 해석하여, 사용자의 발화 의도를 획득할 수 있다. 여기서 ASR 모델 또는 NLU 모델은 인공지능 모델일 수 있다. 인공지능 모델은 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서에 의해 처리될 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.
언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리(Natural Language Processing), 기계 번역(Machine Translation), 대화 시스템(Dialog System), 질의 응답(Question Answering), 음성 인식/합성(Speech Recognition/Synthesis) 등을 포함한다.
또한, 본 개시에 따른 AI 프로세서는 이미지 데이터를 인공지능 모델의 입력 데이터로 이용하여 이미지 또는 이미지 내 문자를 인식한 출력 데이터를 획득할 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.
시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식(Object Recognition), 객체 추적(Object Tracking), 영상 검색(Image Retrieval), 사람 인식(Human Reconnition), 장면 이해(Scene Recognition), 공간 이해(3D Reconstruction/Localization), 영상 개선(Image Enhancement) 등을 포함한다.
프로세서(110)는 입력부(130)로부터 제공된 제1 컨텐츠를 인식함으로써, 제1 중간 결과물을 생성할 수 있다. 프로세서(110)는 기계 학습(Machine Learning) 또는 자료 처리 언어(Data Manipulation Language)를 사용하여, 제1 컨텐츠를 인식할 수 있다. 구체적으로, 프로세서(110)는 제1 컨텐츠로부터 특징들을 추출할 수 있다. 선택적으로, 특징들은 심볼들 및 음소들을 포함할 수 있다. 프로세서(110)는 추출된 특징들에 기초하여, 인공지능 학습 모델에 입력하기 전에 제1 컨텐츠를 변형(transform)할 수 있다. 선택적으로, 인공지능 학습 모델은 신경망(Neural Network) 모델을 포함할 수 있다. 프로세서(110)는 인공지능 학습 모델에 제1 컨텐츠를 입력함으로써, 제1 중간 결과물을 획득할 수 있다. 예를 들어, 제1 중간 결과물은 제1 컨텐츠로부터 추출된 특징들의 확률들을 나타낼 수 있다.
프로세서(110)는 제1 중간 결과물을 디코딩하기 이전에, 제1 중간 결과물을 메모리(120)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(110)는 제1 중간 결과물을 메모리(120)에 저장함으로써, 디코딩 과정에서 제1 중간 결과물이 제거되는 상황을 방지할 수 있다. 후술하는 바와 같이, 메모리(120)에 저장된 제1 중간 결과물은 이후 제2 컨텐츠가 입력되면, 제1 컨텐츠에 포함된 에러의 위치를 검출하기 위해 사용될 수 있다.
프로세서(110)는 제1 중간 결과물을 디코딩함으로써, 제1 최종 결과물을 생성할 수 있다. 예를 들어, 프로세서(110)는 제1 중간 결과물을 디코딩하여, 제1 블록 후보군 생성할 수 있으며, 제1 블록 후보군 중 하나 또는 이상의 제1 블록들을 선택할 수 있다. 프로세서(100)는 제1 블록들로부터 제1 컨텐츠를 인식함으로써, 제1 최종 결과물을 생성할 수 있다. 프로세서(110)는 제1 최종 결과물을 전시(display)하도록 출력부(140)를 제어할 수 있다.
사용자는 출력부(140)를 통해 제1 최종 결과물을 확인할 수 있다. 제1 최종 결과물이 잘못 인식된 경우에, 사용자는 제1 최종 결과물 중에서 잘못 인식된 부분을 정정하여, 입력부(130)를 통해 제2 컨텐츠를 입력할 수 있다. 예를 들어, 제1 컨텐츠가 복수의 단어들을 포함한 문장이고, 제1 컨텐츠가 인식되는 과정에서 복수의 단어들 중 어느 하나에 에러가 발생할 수 있다. 사용자는 에러가 발생한 단어를 정정하여, 정정된 단어를 제2 컨텐츠로서 다시 입력할 수 있다. 사용자는 제2 컨텐츠만 입력할 뿐 제2 컨텐츠의 위치 정보는 입력하지 않을 수 있다.
프로세서(110)는 입력부(130)로부터 제공된 제2 컨텐츠를 인식함으로써, 제2 최종 결과물을 생성할 수 있다. 프로세서(110)는 기계 학습(Machine Learning) 또는 자료 처리 언어(Data Manipulation Language)를 사용하여, 제2 컨텐츠를 인식할 수 있다. 예를 들어, 프로세서(110)는 제2 컨텐츠로부터 특징들을 추출하고, 추출된 특징들에 기초하여 제2 중간 결과물을 획득할 수 있다. 예를 들어, 특징들은 심볼들 및 음소(phoneme)들을 포함할 수 있다. 선택적으로, 제2 중간 결과물은 제2 컨텐츠로부터 추출된 특징들의 확률들을 포함할 수 있다.
프로세서(110)는 제2 중간 결과물을 디코딩함으로써, 제2 최종 결과물을 생성할 수 있다. 프로세서(110)는 제2 중간 결과물을 디코딩하여, 제2 블록 후보군을 생성할 수 있으며, 제2 블록 후본군으로부터 적어도 하나의 제2 블록을 선택할 수 있다. 프로세서(110)는 제2 블록으로부터 제2 컨텐츠를 인식함으로써, 제2 최종 결과물을 생성할 수 있다. 예를 들어, 제2 컨텐츠가 음성으로 입력된 단어인 경우에, 프로세서(110)는 음성으로부터 추출된 음소들을 사용하여, 음소 블록들을 디코딩할 수 있다.
프로세서(110)는 제1 중간 결과물과 제2 최종 결과물에 기초하여, 제1 최종 결과물에 포함된 에러의 위치를 검출할 수 있다. 프로세서(110)는 메모리(120)에 저장된 제1 중간 결과물을 로드(load)할 수 있다. 프로세서(110)는 제1 중간 결과물과 제2 최종 결과물을 비교함으로써, 제1 최종 결과물에 포함된 에러의 위치를 검출할 수 있다. 예를 들어, 프로세서(110)는 제1 최종 결과물에 포함된 하나 또는 이상의 제1 블록들 중에서 제2 최종 결과물에 포함된 적어도 하나의 제2 블록과 대응하는 블록을 에러를 포함한 타겟 블록으로 검출할 수 있다.
구체적으로, 프로세서(110)는 제1 블록들에 포함된 특징들의 확률들 및 제2 블록에 포함된 특징들의 확률들에 기초하여, 타겟 블록을 검출할 수 있다. 프로세서(110)는 제1 블록들에 포함된 특징들의 확률들 및 제2 블록에 포함된 특징들의 확률들을 제1 중간 결과물로부터 획득할 수 있다. 프로세서(110)는 제1 컨텐츠와 함께 수신한 제1 컨텐츠에 대한 위치 정보에 기초하여, 타겟 블록의 위치를 획득함으로써, 제1 최종 결과물에 포함된 에러의 위치를 검출할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 제2 컨텐츠 및 제1 중간 결과물을 이용하여, 자동적으로 제1 컨텐츠에 포함된 에러의 위치를 검출할 수 있다. 전자 장치(100)는 사용자로부터 제1 컨텐츠에 포함된 에러의 위치에 대한 정보를 제공받지 않고, 에러를 정정한 결과인 제2 컨텐츠만 제공받아서, 제1 최종 결과물을 수정할 수 있다. 따라서, 본 개시에 따른 전자 장치(100)는 잘못 인식된 제1 컨텐츠의 수정에 요구되는 복잡도를 낮출 수 있다.
프로세서(110)는 에러의 위치에 기초하여, 제1 최종 결과물에 포함된 에러를 제2 최종 결과물로 대체함으로써, 제1 최종 결과물을 수정할 수 있다. 프로세서(110)는 수정된 제1 최종 결과물을 화면에 전시하도록 출력부(140)를 제어할 수 있다.
도 2a 및 도 2b는 제1 컨텐츠가 잘못 인식되는 경우를 설명하기 위한 도면이다.
제1 컨텐츠는 사용자의 입력 자체에 에러가 포함된 경우 또는 사용자의 입력을 전자 장치(100)가 인식하는 과정에서 에러가 발생하는 경우에 잘못 인식될 수 있다.
도 2a는 사용자의 입력 자체에 에러가 포함된 경우를 설명하는 도면이다.
도 2a를 참조하면, 사용자는 핸드라이팅 방식으로 "Did you get license?" 라는 문장을 제1 컨텐츠로서 입력하는 경우에, 실수로 "Did you get lisense?" 라는 문장(202)으로 잘못 기입할 수 있다. 이 경우, 전자 장치(100)가 사용자가 기입한 문장(202)을 인식하는 과정에서 문제가 발생하지 않더라도, 전자 장치(100)의 화면에 전시된 문장(202)은 사용자가 의도한 문장과 상이할 수 있다. 따라서, 사용자는 제1 컨텐츠가 잘못 인식된 것으로 판단하여, 문장(202)에 포함된 에러인 "lisense" 라는 단어(204)를 정정한 "license"를 제2 컨텐츠로서 입력할 수 있다.
또한, 사용자는 소프트웨어 키보드에 "HappyBirthday dear husband!"라는 문장을 제1 컨텐츠로서 입력하는 과정에서, "HappyBirthday deer husband!"라는 문장(206)으로 잘못 입력할 수 있다. 마찬가지로, 전자 장치(100)가 문장(206)을 인식하는 과정에서 문제가 발생하지 않더라도, 전자 장치(100)의 화면에 전시된 문장(206)은 사용자가 의도한 문장과 상이할 수 있다. 따라서, 사용자는 문장이 잘못 인식된 것으로 판단하여, 문장에 포함된 에러인 "deer" 라는 단어(208)를 정정한 "dear"를 제2 컨텐츠로서 입력할 수 있다.
도 2b는 사용자의 입력을 전자 장치(100)가 인식하는 과정에서 에러가 발생하는 경우를 설명하는 도면이다.
도 2b를 참조하면, 사용자는 핸드라이팅 방식으로 "Suwon meeting at 5pm"이라는 문장(208)을 제1 컨텐츠로서 입력하였으나, 전자 장치(100)가 입력된 문장(208)을 인식하는 과정에서 에러가 발생할 수 있다. "Sawon meeting at 5pm"이라는 문장(210)이 제1 최종 결과물로서 전시되면, 사용자는 문장(210)에 포함된 에러인 'Sawon"이라는 단어(212)를 정정하여, "Suwon"이라는 단어를 제2 컨텐츠로서 다시 입력할 수 있다.
또한, 사용자는 음성으로 "This bus"라는 문장(214)을 제1 컨텐츠로서 입력하였으나, 전자 장치(100)가 입력된 문장(214)을 인식하는 과정에서 에러가 발생할 수 있다. "Zeus bus"라는 문장(216)이 제1 최종 결과물로서 전시되면, 사용자는 문장(216)에 포함된 에러인 'Zeus"라는 단어(218)를 정정하여 "This"라는 단어를 제2 컨텐츠로서 다시 입력할 수 있다.
또한, 사용자는 "What is a Learning"이라는 문장(220)을 포함하는 이미지를 촬영하여 입력하였으나, 전자 장치(100)가 OCR 방식으로 이미지에 포함된 문자를 인식하는 과정에서 에러가 발생할 수 있다. "What is Leaming?"이라는 문장(222)이 제1 최종 결과물로서 전시되면, 사용자는 문장(222)에 포함된 에러인 'Leaming"라는 단어(224)를 정정하여 "Learning"라는 단어를 제2 컨텐츠로서 다시 입력할 수 있다.
도 3은 일 실시예에 따른 전자 장치가 잘못 인식된 문장을 수정하기 위한 방법을 설명하기 위한 도면이다.
프로세서(110)는 사용자로부터 수신된 음성을 "A fly and fleor flew into a flue"라는 문장(302)으로 인식할 수 있다. 문장(302)에 포함된 "fleor"라는 단어(304)는 "flea"라는 단어가 잘못 인식된 결과일 수 있다. "A fly and fleor flew into a flue"라는 문장(302)은 앞서 도 2a를 참조하여 설명한 바와 같이, 사용자가 입력한 음성 자체에 포함된 에러로 인하여 잘못 인식될 수 있다. 또한, "A fly and fleor flew into a flue"라는 문장(302)은 앞서 도 2b를 참조하여 설명한 바와 같이 전자 장치(100)의 인식 과정에서 발생한 에러로 인하여 잘못 인식될 수도 있다.
프로세서(110)는 인식된 문장(302)을 화면에 전시하도록 출력부(140)를 제어할 수 있다. 일 실시예에 따르면, 사용자는 인식된 문장(302)에 대응하는 음성을 제공할 때, 문장(302)의 위치에 대한 정보를 기하학적 좌표의 형태로 함께 제공할 수 있다. 프로세서(110)는 문장(302)의 위치에 대한 정보에 기초하여 인식된 문장(302)을 전시하도록 출력부(140)를 제어할 수 있다.
사용자는 전자 장치(100)에 전시된 문장(302)을 보고, 문장(302)에 에러가 포함되어 있는 것을 인지할 수 있다. 사용자는 문장(302)에 포함된 에러인 "fleor"라는 단어(304)를 정정함으로써, "flea"라는 단어(306)를 음성으로 다시 말할 수 있다. 프로세서(110)는 사용자로부터 수신된 "flea"라는 단어(306)를 입력하도록 입력부(130)를 제어할 수 있다.
일 실시예에 따르면, 사용자는 정정된 단어인 "flea"라는 단어(306)만 다시 말할 뿐, 문장(302)에 포함된 에러의 위치는 별도로 명시하지 않을 수 있다. 예를 들어, 사용자는 문장(302)에 포함된 에러인 "fleor"라는 단어(304)가 갖는 기하학적 위치에 대한 정보는 제공하지 않고, 단지 정정된 단어인 "flea"라는 단어(306)만 다시 말할 수 있다.
프로세서(110)는 "flea"라는 단어(306)를 인식할 수 있으며, 문장(302)에 포함된 에러의 위치를 자동적으로 검출하고, 에러를 정정할 수 있다. 프로세서(110)는 정정된 문장(308)을 화면에 전시하도록 출력부(140)를 제어할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 "fleor"라는 단어(304)가 갖는 기하학적 위치에 대한 정보를 사용자로부터 추가로 제공받지 않고, 정정된 단어인 "flea"라는 단어(306)만 제공받아서 에러의 위치를 자동적으로 검출할 수 있다.
전자 장치(100)가 사용자로부터 제1 컨텐츠에 포함된 에러의 위치에 대한 정보를 제공받지 않고, 단지 에러를 정정한 결과인 제2 컨텐츠만 사용자로부터 제공받아서 제1 컨텐츠를 수정하는 구체적인 방법에 대해서는 이하 도 4를 참조하여 보다 상세히 설명한다.
도 4는 다른 일 실시예에 따른 전자 장치를 나타낸 블록도이다.
전자 장치(400)는 제1 인식부(402), 제1 디코더(404), 제1 생성부(406), 히스토리 제어부(408), 메모리(410), 제2 인식부(412), 제2 디코더(414), 제2 생성부(416), 에러 검출부(418) 및 에러 정정부(420)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 전자 장치(400)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 전자 장치(400)는 구현될 수 있다.
제1 인식부(402), 제1 디코더(404), 제1 생성부(406), 히스토리 제어부(408), 제2 인식부(412), 제2 디코더(414), 제2 생성부(416), 에러 검출부(418) 및 에러 정정부(420)는 앞서 도 1을 참조하여 설명한 적어도 하나의 프로세서(110)에 대응할 수 있다. 또한, 동일한 명칭을 갖는 도 4의 전자 장치(400) 및 메모리(410)는 도 1의 전자 장치(100) 및 메모리(120)에 각각 대응될 수 있다.
제1 인식부(402)는 제1 컨텐츠(CONTENT1)를 인식함으로써, 제1 중간 결과물(RESULT_INT1)을 생성할 수 있다. 구체적으로, 제1 인식부(402)는 제1 컨텐츠(CONTENT1)로부터 특징들을 추출하고, 인공지능 학습 모델을 이용하여, 특징들의 확률들을 제1 중간 결과물(RESULT_INT1)로서 획득할 수 있다. 선택적으로, 제1 인식부(402)는 기계 학습 및 자료 처리 언어(Data Manipulation Language)를 사용하여, 제1 컨텐츠(CONTENT1)를 인식할 수 있으며, 인공지능 학습 모델은 신경망(Neural Network) 모델을 포함할 수 있다.
비록 도면에 도시되지는 않았지만, 제1 인식부(402)는 제1 컨텐츠(CONTENT1)에 대한 위치 정보를 제1 컨텐츠(CONTENT1)와 함께 수신할 수도 있다.
일 실시예에 따르면, 제1 컨텐츠(CONTENT1)가 문장 또는 단어를 포함할 경우에, 제1 인식부(402)는 음소(phoneme) 단위로 특징들을 추출할 수 있으며, 추출된 특징들 각각에 대한 확률들을 결정할 수 있다. 다른 일 실시예에 따르면, 제1 컨텐츠(CONTENT1)가 수학식을 포함하는 경우에, 제1 인식부(402)는 심볼 단위로 특징들을 추출할 수 있으며, 추출된 특징들 각각에 대한 확률들을 결정할 수 있다.
제1 인식부(402)는 제1 중간 결과물(RESULT_INT1)을 제1 디코더(404)로 제공할 수 있다. 일 실시예에 따르면, 제1 인식부는 제1 중간 결과물(RESULT_INT1)을 히스토리 제어부(408)에게도 제공할 수 있다.
제1 디코더(404)는 제1 중간 결과물(RESULT_INT1)을 디코딩하여, 제1 블록 후보군(CANDID_BLK1)을 생성할 수 있다. 구체적으로, 제1 디코더(404)는 추출된 특징들을 디코딩하여, 제1 블록 후보군(CANDID_BLK1)을 생성할 수 있다. 예를 들어, 제1 컨텐츠(CONTENT1)가 음성으로 입력된 문장인 경우에, 제1 디코더(404)는 제1 인식부(402)로부터 음소들을 수신할 수 있고, 제1 디코더(404)는 음소들을 디코딩하여, 음소 블록들을 생성할 수 있다.
일 실시예에 따르면, 제1 디코더(404)는 Top-N 방식에 따라 디코딩을 수행할 수 있다. 구체적으로, 제1 디코더(404)는 복수의 특징들을 디코딩하여, 복수의 블록들을 생성하고, 블록들을 확률이 높은 순서대로 정렬할 수 있다. 제1 디코더(404)는 복수의 블록들 중에서 최우선 순위를 갖는 제1 블록부터 미리 정해진 개수(N)만큼의 블록들을 순차적으로 선택할 수 있다. 제1 디코더(404)는 선택된 N개의 블록들을 제1 블록 후보군(CANDID_BLK1)으로서 디코딩하여, 제1 블록 후보군(CANDID_BLK1)을 제1 생성부(406)로 출력할 수 있다. 따라서, 디코딩 과정에서 나머지 선택되지 않은 블록들에 대한 정보는 제거될 수 있다.
제1 생성부(406)는 수신된 제1 블록 후보군(CANDID_BLK1)에 기초하여, 제1 최종 결과물(RESULT_FINAL1)을 생성할 수 있다. 제1 생성부(406)는 제1 블록 후보군(CANDID_BLK1) 중에서 최우선 순위를 갖는 블록 후보를 제1 블록으로 선택할 수 있다. 제1 생성부(406)는 제1 컨텐츠(CONTENT1)에 대한 위치 정보에 기초하여, 제1 최종 결과물(RESULT_FINAL1)을 생성 및 출력할 수 있다. 예를 들어, 제1 컨텐츠(CONTENT1)가 음성으로 입력된 문장인 경우에, 제1 생성부(406)는 제1 디코더(404)로부터 수신된 음소 블록들로부터 단어를 인식함으로써, 인식 결과에 해당하는 문장을 생성할 수 있다.
제1 생성부(406)는 제1 최종 결과물(RESULT_FINAL1)을 메모리(410)에 저장하고, 제1 최종 결과물(RESULT_FINAL1)을 출력할 수 있다. 제1 최종 결과물(RESULT_FINAL1)은 디스플레이를 통해 전시되어 사용자에게 보여질 수 있다.
히스토리 제어부(408)는 제1 중간 결과물(RESULT_INT1)을 저장할 수 있다. 선택적으로, 히스토리 제어부(408)는 메모리(410)에 제1 중간 결과물(RESULT_INT1)을 저장할 수 있다. 메모리(410)는 도 4에 도시된 바와 같이 히스토리 제어부(408)의 외부에 위치할 수도 있고, 히스토리 제어부(408)의 내부에 위치할 수도 있다.
일 실시예에 따르면, 히스토리 제어부(408)는 제1 중간 결과물(RESULT_INT1)을 별도로 저장함으로써, 제1 중간 결과물(RESULT_INT1)이 제거되는 것을 방지할 수 있다. 앞서 설명한 바와 같이, Top-N 방식에 따라 디코딩을 수행할 경우에, 특징들이 디코딩되어 생성된 블록들 중 선택되지 못한 블록들에 대한 정보는 디코딩 과정에서 제거될 수 있다. 히스토리 제어부(408)는 제1 중간 결과물(RESULT_INT1)을 메모리(410)에 저장함으로써, 제1 중간 결과물(RESULT_INT1)을 전자 장치(400)에 유지할 수 있다. 후술하는 바와 같이 제1 중간 결과물(RESULT_INT1)은 추후 제2 컨텐츠(CONTENT2)가 제공되면, 제1 컨텐츠(CONTENT1)에 포함된 에러의 위치를 검출하기 위해 사용될 수 있다.
제2 인식부(412)는 제2 컨텐츠(CONTENT2)를 인식함으로써, 제2 중간 결과물(RESULT_INT2)을 생성할 수 있다. 사용자는 제1 최종 결과물(RESULT_FINAL1)이 전시되면, 제1 최종 결과물(RESULT_FINAL1)에 포함된 에러를 정정한 제2 컨텐츠(CONTENT2)를 다시 전자 장치(400)에 입력할 수 있다. 일 실시예에 따르면, 사용자는 제2 컨텐츠(CONTENT2)만 입력할 뿐, 제2 컨텐츠(CONTENT2)에 대한 위치 정보는 입력하지 않을 수 있다. 제2 인식부(412)는 기계 학습(Machine Learning) 및 자료 처리 언어(Data Manipulation Language)를 사용하여, 제2 컨텐츠(CONTENT2)를 인식할 수 있다. 제2 인식부는 제2 중간 결과물(RESULT_INT2)을 제2 디코더(414)로 제공할 수 있다.
제2 디코더(414)는 제2 중간 결과물(RESULT_INT2)을 디코딩하여, 제2 블록 보군(CANDID_BLK2)을 생성할 수 있다. 일 실시예에 따르면, 제2 디코더(414)는 앞서 설명한 제1 디코더(404)와 마찬가지로 Top-N 방식에 따라 디코딩을 수행할 수 있다. 제2 디코더(414)는 제2 블록 후보군(CANDID_BLK2)을 제2 생성부(416)로 제공할 수 있다.
제2 생성부(416)는 수신된 제2 블록 후보군(CANDID_BLK2)에 기초하여, 제2 블록을 선택하고, 제2 최종 결과물(RESULT_FINAL2)을 생성할 수 있다. 제2 생성부(416)는 제2 최종 결과물(RESULT_FINAL2)을 에러 검출부(418)로 제공할 수 있다.
에러 검출부(418)는 메모리(410)에 저장된 제1 중간 결과물(RESULT_INT1) 및 제1 최종 결과물(RESULT_FINAL1)과 제2 생성부(416)로부터 제공된 제2 최종 결과물(RESULT_FINAL2)에 기초하여, 제1 최종 결과물(RESULT_FINAL1)에 포함된 에러의 위치를 검출할 수 있다.
일 실시예에 따르면, 에러 검출부(418)는 제1 중간 결과물(RESULT_INT1) 및 제2 최종 결과물(RESULT_FINAL2)을 비교함으로써, 제1 최종 결과물(RESULT_FINAL1)에 포함된 에러의 위치를 검출할 수 있다. 예를 들어, 에러 검출부(418)는 제1 최종 결과물(RESULT_FINAL1)에 포함된 하나 또는 이상의 제1 블록들(BLK1) 중에서 제2 최종 결과물(RESULT_FINAL2)에 포함된 적어도 하나의 제2 블록(BLK2)과 대응하는 블록을 에러를 포함한 타겟 블록으로 검출할 수 있다.
구체적으로, 에러 검출부(418)는 제1 블록들(BLK1)에 포함된 특징들의 확률들 및 제2 블록(BLK2)에 포함된 특징들의 확률들에 기초하여, 타겟 블록을 검출할 수 있다. 에러 검출부(418)는 제1 블록들(BLK1)에 포함된 특징들의 확률들 및 제2 블록에 포함된 특징들의 확률들을 제1 중간 결과물(RESULT_INT1)로부터 획득할 수 있다.
일 실시예에 따르면, 에러 검출부(418)는 제1 최종 결과물에 포함된 제1 블록들 각각과 제2 최종 결과물에 포함된 제2 블록 간의 유사도를 나타내는 대체 지수를 결정할 수 있다. 에러 검출부(418)는 제1 최종 결과물에 포함된 복수의 제1 블록들에 대해 결정된 '0'이 아닌 대체 지수들 중 가장 작은 값을 갖는 대체 지수를 갖는 제1 블록을 타겟 블록으로 검출할 수 있다. 대체 지수를 사용하여 타겟 블록을 검출하는 방법에 대해서는 도 7 및 수학식 1을 참조하여 후술한다.
에러 검출부(418)는 제1 컨텐츠(CONTENT1)와 함께 수신된 제1 컨텐츠에 대한 위치 정보에 기초하여, 타겟 블록의 위치를 획득함으로써, 제1 최종 결과물에 포함된 에러의 위치를 검출할 수 있다. 에러 검출부(418)는 에러의 위치에 대한 정보(INFO_ERROR), 제1 최종 결과물(RESULT_FINAL1) 및 제2 최종 결과물(RESULT_FINAL2)을 에러 정정부(420)로 제공할 수 있다.
에러 정정부(420)는 에러의 위치에 대한 정보(INFO_ERROR), 제1 최종 결과물(RESULT_FINAL1) 및 제2 최종 결과물(RESULT_FINAL2)에 기초하여 제1 최종 결과물(RESULT_FINAL1)을 수정할 수 있다. 에러 정정부(420)는 에러의 위치에 대한 정보(INFO_ERROR)에 기초하여 에러의 위치를 탐색할 수 있다. 에러 정정부(420)는 제1 최종 결과물(RESULT_FINAL1)에 포함된 에러를 제2 최종 결과물(RESULT_FINAL2)로 대체함으로써, 제1 최종 결과물을 수정할 수 있다. 에러 정정부(420)는 수정된 제1 최종 결과물(RESULT_FINAL1`)을 출력할 수 있다.
도 5는 일 실시예에 따른 전자 장치가 잘못 인식된 제1 컨텐츠를 수정하는 동작을 설명하기 위한 도면이다.
전자 장치(100)는 사용자(500)의 핸드 라이팅에 의해 입력된 문장인 제1 컨텐츠(502)를 수신할 수 있다. 예를 들어, 전자 장치(100)는 사용자(500)로부터 "Suwon meeting at 5 p.m."이라는 문장(502)을 수신할 수 있다. 이때, 전자 장치(100)는 사용자(500)로부터 수신된 제1 컨텐츠(502)를 인식하여, 제1 컨텐츠(502)로부터 특징들을 추출할 수 있다. 전자 장치(100)는 추출된 특징들의 확률들을 결정하여, 제1 중간 결과물을 생성할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제 1 중간 결과물을 별도로 저장할 수 있다.
전자 장치(100)는 제1 중간 결과물을 디코딩하여, 제1 최종 생성물(504)를 생성할 수 있으며, 전자 장치(100)는 제1 최종 생성물(504)을 화면에 전시할 수 있다. 예를 들어, 전자 장치(100)는 "Sawon meeting at 5p.m,"이라는 문장(504)을 생성하여, 화면에 전시할 수 있다. 이때, 제1 최종 생성물(504)은 에러를 포함할 수 있으며, 에러는 제1 컨텐츠(502)를 인식하는 과정에서 발생할 수 있다. 예를 들어, "Sawon"이라는 단어(510)는 "Suwon"이라는 단어(512)가 잘못 인식되어 발생한 에러일 수 있다.
사용자(500)는 화면을 통해 전시된 제1 최종 결과물(504)로부터 에러를 인지할 수 있으며, 에러를 정정한 제2 컨텐츠(506)를 전자 장치(100)에 다시 입력할 수 있다. 예를 들어, 사용자(500)는 "Suwon"이라는 단어(506)를 전자 장치(100)에 다시 입력할 수 있다. 이때, 사용자(500)는 정정된 단어(506)인 "Suwon"만 입력할 뿐, 제1 최종 결과물(504)에 포함된 에러의 위치는 명시하지 않을 수 있다.
전자 장치(100)는 제2 컨텐츠(506)를 입력 받아 제2 최종 결과물을 생성하고, 자동적으로 제1 최종 결과물(504)에 포함된 에러의 위치를 검출할 수 있다. 전자 장치(100)는 제1 중간 결과물에 기초하여, 제1 최종 결과물(504)에 포함된 하나 또는 이상의 제1 블록들 중 제2 최종 결과물에 포함된 적어도 하나의 제2 블록에 대응하는 타겟 블록을 검출함으로써, 제1 최종 결과물(504)에 포함된 에러의 위치를 검출할 수 있다. 예를 들어, 전자 장치(100)는 제1 중간 결과물로부터 획득한 제1 블록들에 포함된 특징들의 확률들 및 제2 블록에 포함된 특징들의 확률들에 기초하여 타겟 블록을 검출할 수 있다.
전자 장치(100)는 검출된 에러의 위치에 기초하여, 제1 최종 결과물(504)에 포함된 에러를 정정할 수 있다. 전자 장치(100)는 제1 최종 결과물(504)에 포함된 에러를 제2 최종 결과물로 대체함으로써, 수정된 제1 최종 결과물(508)을 출력할 수 있다. 예를 들어, 전자 장치(100)는 제1 최종 결과물(504)을 수정하여, "Suwon meeting at 5 p.m."이라는 문장(508)을 출력할 수 있다.
도 6은 일 실시예에 따른 인식 모듈을 나타낸 블록도이다.
인식 모듈(600)은 특징 추출부(602), 인공지능 학습망 처리부(604), 디코더(606) 및 메모리(608)를 포함할 수 있다.
특징 추출부(602) 및 인공지능 학습망 처리부(604)는 및 도 4에 도시된 제1 인식부(402)에 대응할 수 있으며, 디코더(606)는 도 4에 도시된 제1 디코더(404)에 대응할 수 있다. 또한, 특징 추출부(602), 인공지능 학습망 처리부(604) 및 디코더(606)는 도 1에 도시된 적어도 하나의 프로세서(110)에 대응할 수 있다. 메모리(608)는 도 1에 도시된 메모리(120) 및 도 4에 도시된 메모리(410)에 대응할 수 있다.
특징 추출부(602)는 제1 컨텐츠(CONTENT1)로부터 특징들을 추출할 수 있다. 특징 추출부(602)는 추출된 특징들에 기초하여 제1 컨텐츠(CONTENT1)를 인공지능 학습망 처리부(604)에 입력하기 전에, 제1 컨텐츠(CONTENT1)을 변형할 수 있다. 특칭 추출부(602)는 제1 컨텐츠(CONTENT1)를 변형하여 생성된 제1 컨텐츠(CONTENT1`)를 인공지능 학습망 처리부(604)로 제공할 수 있다.
인공지능 학습망 처리부(604)는 인공지능 학습 모델에 기초하여, 제1 컨텐츠(CONTENT1`)로부터 제1 중간 결과물(RESULT_INT1)을 생성할 수 있다. 예를 들어, 인공지능 학습 모델은 회귀신경망(Recurrent Neural Network: RNN) 모델과 같은 신경망 모델을 포함할 수 있다. 인공지능 학습망 처리부(604)는 특징 추출부(602)로부터 추출된 특징들의 확률들을 제1 중간 결과물(RESULT_INT1)로서 생성할 수 있다. 일 실시예에 따르면, 인공지능 학습망 처리부(604)는 제1 컨텐츠(CONTENT1`)을 분류(classify)하고, 프레임들 각각에 대한 심볼 또는 음소의 확률들을 제공할 수 있다. 인공지능 학습망 처리부(604)는 제1 중간 결과물(RESULT_INT1)을 디코더(606)로 제공할 수 있다.
일 실시예에 따르면, 인공지능 학습망 처리부(604)는 제1 중간 결과물(RESULT_INT1)을 메모리(608)에 저장할 수 있다. 메모리(608)는 도 6에 도시된 바와 같이 인식 모듈(600) 내부에 위치할 수 도 있고, 외부에 위치할 수도 있다.
디코더(606)는 제1 중간 결과물(RESULT_INT1)을 디코딩하여, 제1 블록 후보군(CANDID_BLK1)을 생성할 수 있다. 예를 들어, 디코더(606)는 Top-N 방식에 따라 디코딩을 수행할 수 있다. 구체적으로, 디코더(606)는 제1 중간 결과물(RESULT_INT1)을 디코딩하여, 복수의 블록들을 생성할 수 있고, 생성된 블록들을 확률이 높은 순서대로 정렬할 수 있다. 디코더(606)는 블록들 중에서 최우선 순위를 갖는 블록 후보부터 미리 정해진 개수(N)만큼의 블록 후보들을 순차적으로 선택할 수 있다. 디코더(606)는 선택된 블록들을 제1 블록 후보군(CANDID_BLK1)으로서 출력할 수 있다. 나머지 선택되지 않은 블록들에 대한 정보는 디코딩 과정에서 제거될 수 있다.
도 7은 일 실시예에 따른 인식 모듈이 제1 컨텐츠를 인식하는 동작을 설명하기 위한 도면이다.
특징 추출부(602)는 "Test"라는 단어를 제1 컨텐츠(CONTENT1)로서 수신할 수 있다. 특징 추출부(602)는 제1 컨텐츠(CONTENT1)로부터 특징들을 추출할 수 있다. 예를 들어, 추출된 특징들은 'T', 't', 'C', 'e', 'S', 's', 't', 'd', '+'와 같은 심볼들일 수 있다. 특징 추출부(602)는 추출된 심볼들에 기초하여 제1 컨텐츠(CONTENT1)를 변형하고, 변형된 제1 컨텐츠(CONTENT1`)를 인공지능 학습망 처리부(604)로 제공할 수 있다.
인공지능 학습망 처리부(604)는 수신된 제1 컨텐츠(CONTENT1`)에 기초하여 심볼들의 확률들을 결정할 수 있다. 예를 들어, 인공지능 학습망 처리부(604)는 프레임들 각각에 대한 심볼들의 확률들을 제공할 수 있다. 인공지능 학습망 처리부(604)는 제1 컨텐츠(CONTENT1)로부터 추출된 심볼들 각각에 대한 확률들을 나타내는 그래프(702)를 생성할 수 있다. 예를 들어, 그래프(702)는 프레임들 각각에 대한 분류를 나타낼 수 있다.
예를 들어, 특징 추출부(602)는 "Test"라는 단어의 "T"라는 음소를 인식하여, 'T' 및 't'라는 심볼들을 추출할 수 있다. 인공지능 학습망 처리부(604)는 'T' 및 't'라는 심볼들에 대한 확률들을 결정할 수 있다. 그래프(702)에서 확인할 수 있는 바와 같이, 'T'라는 심볼의 확률은 't'라는 심볼의 확률보다 더 높을 수 있다.
특징 추출부(602)는 "Test"라는 단어의 "e"라는 음소를 인식하여, 'c' 및 'e'라는 심볼들을 추출할 수 있다. 인공지능 학습망 처리부(604)는 'c' 및 'e'라는 심볼들에 대한 확률들을 결정할 수 있다. 그래프(702)에서 확인할 수 있는 바와 같이, 'c'라는 심볼의 확률은 'e'라는 심볼의 확률보다 더 높을 수 있다.
특징 추출부(602)는 "Test"라는 단어의 "s"라는 음소를 인식하여, 'S' 및 's'라는 심볼들을 추출할 수 있다. 인공지능 학습망 처리부(604)는 'S' 및 's'라는 심볼들에 대한 확률들을 결정할 수 있다. 그래프(702)에서 확인할 수 있는 바와 같이, 'S'라는 심볼의 확률은 's'라는 심볼의 확률보다 더 높을 수 있다.
특징 추출부(602)는 "Test"라는 단어의 "t"라는 음소를 인식하여, 't', 'd' 및 '+'라는 심볼들을 추출할 수 있다. 인공지능 학습망 처리부(604)는 't', 'd' 및 '+'라는 심볼들에 대한 확률들을 결정할 수 있다. 그래프(702)에서 확인할 수 있는 바와 같이, 't'라는 심볼의 확률, 'd'라는 심볼의 확률 및 '+''라는 심볼의 확률 순으로 높을 수 있다.
디코더(606)는 심볼들의 확률들을 포함하는 제1 중간 결과물을 디코딩하여, 제1 블록 후보군(CANDID_BLK1)을 생성할 수 있다. 일 실시예에 따르면, 디코더(606)는 Top-N 방식에 따라 디코딩을 수행할 수 있다. 예를 들어, 디코더(606)는 음소 단위로 추출된 특징들 각각의 확률을 모두 합한 값이 큰 순서대로 블록들을 정렬할 수 있다. 도 7을 참조하면, 디코더(606)는 추출된 특징들의 확률들에 기초하여, 복수의 블록들을 디코딩하고, 'TcSt', "Tcst', "TcSd" 및 "Tcsd"라는 4개의 블록들을 제1 블록 후보군(CANDID_BLK1)으로서 선택할 수 있다. 따라서, 선택되지 못한 'e'라는 심볼에 대한 확률은 디코딩 과정에서 제거될 수 있으므로, 일 실시예에 따르면, 제1 중간 결과물은 별도의 메모리에 저장될 수 있다.
전자 장치(100)는 제1 중간 결과물 및 제2 최종 결과물에 기초하여 제1 최종 결과물에 포함된 에러의 위치를 검출할 수 있다. 전자 장치(100)는 제1 최종 결과물에 포함된 복수의 제1 블록들 중 제2 최종 결과물의 제2 블록과 대응하는 블록을 타겟 블록으로 검출할 수 있다.
선택적으로, 전자 장치(100)는 아래 수학식을 이용하여 타겟 블록을 검출할 수 있다.
Figure pat00001
'
Figure pat00002
'라는 변수는 제2 컨텐츠에 포함된 특징의 확률일 수 있으며, “
Figure pat00003
”라는 변수는 제1 컨텐츠에 포함된 특징의 확률일 수 있다.
전자 장치(100)는 수학식 1에 기초하여 제1 최종 결과물에 포함된 제1 블록들 각각과 제2 최종 결과물에 포함된 제2 블록 간의 유사도를 나타내는 대체 지수(
Figure pat00004
)를 결정할 수 있다.
전자 장치(100)는 제1 최종 결과물에 포함된 복수의 제1 블록들에 대해 구한 '0'이 아닌 대체 지수(
Figure pat00005
)들 중 가장 작은 값을 갖는 대체 지수(
Figure pat00006
)를 갖는 제1 블록을 타겟 블록으로 검출할 수 있다. 제1 블록에 대한 대체 지수(
Figure pat00007
)가 '0'의 값을 가질 경우에, 제1 컨텐츠가 정상적으로 인식되었음을 의미하기 때문이다.
예를 들어, "Test"라는 단어가 제1 컨텐츠로서 입력되고, "TcSt"라는 단어가 제1 최종 결과물로서 인식된 경우에, '
Figure pat00008
'은 'T'라는 심볼의 확률이고, '
Figure pat00009
'는 'c'라는 심볼의 확률이며, '
Figure pat00010
'는 'S'라는 심볼의 확률일 수 있다. 또한, '
Figure pat00011
'는 't'라는 심볼의 확률일 수 있다.
제1 컨텐츠가 잘못 인식되어 "Test"라는 단어가 다시 제2 컨텐츠로서 입력되면, '
Figure pat00012
'은 'T'라는 심볼의 확률이고, '
Figure pat00013
'는 'e'라는 심볼의 확률이며, '
Figure pat00014
'는 's'라는 심볼의 확률일 수 있다. 또한, '
Figure pat00015
'는 't'라는 심볼의 확률일 수 있다.
도 8은 일 실시예에 따른 전자 장치가 잘못 인식된 다이어그램을 수정하는 방법에 대해 설명하기 위한 도면이다.
사용자는 핸드라이팅 방식으로 제1 컨텐츠(802)를 전자 장치(100)에 입력할 수 있다. 일 실시예에 따르면 제1 컨텐츠(802)는 다이어그램을 포함할 수 있다. 전자 장치(100)는 제1 컨텐츠(802)를 인식함으로써, 제1 중간 결과물(804,806,808,810,812,814,816)을 생성할 수 있다. 예를 들어, 제1 컨텐츠(802)는 복수의 도형들을 포함할 수 있다. 전자 장치(100)는 복수의 도형들로부터 특징들을 추출하고, 특징들의 확률들을 제1 중간 결과물(804,806,808,810,812,814,816)로서 결정할 수 있다. 일 예로, 제1 중간 결과물(804)은 "Actions"라는 단어를 둘러싸는 도형이 타원(Ellipse)일 확률, 종료 부호(Terminator)일 확률 및 직사각형(Rectangle)일 확률을 포함할 수 있다.
전자 장치(100)는 제1 중간 결과물(804,806,808,810,812,814,816)에 기초하여 제1 최종 결과물(806)을 생성하고, 제1 최종 결과물(806)을 화면에 전시할 수 있다. 제1 컨텐츠(802) 및 제1 최종 결과물(806)을 참조하면, 사용자의 입력에 포함된 "Actions"라는 단어를 둘러싸는 도형은 종료 부호(Terminator)임에도 불구하고, 인식 과정에서 에러가 발생하여, 타원(Ellipse)으로 잘못 인식된 것을 확인할 수 있다.
사용자는 잘못 인식된 부분을 정정하여 "Terminator"라는 단어를 제2 컨텐츠(818)로서 다시 전자 장치(100)에 입력할 수 있다. 전자 장치(100)는 제2 컨텐츠(818)를 인식하여, 제2 최종 결과물(824)을 생성할 수 있다. 전자 장치(100)는 제1 중간 결과물(804,806,808,810,812,814,816) 및 제2 최종 결과물(824)에 기초하여, 제1 최종 결과물(806)에 포함된 에러의 위치를 검출할 수 있다.
전자 장치(100)는 제1 최종 결과물(806)에 포함된 복수의 제1 블록들 중 제2 최종 결과물의 제2 블록과 대응하는 블록을 타겟 블록(822)으로 검출할 수 있다. 도 8에 도시된 일 예에서, 복수의 제1 블록들은 제1 최종 결과물(806)에 도시된 복수의 도형들 및 단어들을 나타낼 수 있으며, 제2 블록은 종료 부호(terminator)일 수 있다.
전자 장치(100)는 제1 최종 결과물(806)에 포함된 타겟 블록(822)을 제2 최종 결과물(824)로 대체함으로써, 제1 최종 결과물(806)을 수정할 수 있다. 전자 장치(100)는 수정된 제1 최종 결과물(820)을 출력할 수 있다.
도 9는 일 실시예에 따른 전자 장치가 잘못 인식된 수학식을 수정하는 방법에 대해 설명하기 위한 도면이다.
사용자는 핸드라이팅 방식으로 제1 컨텐츠(902)를 전자 장치(100)에 입력할 수 있다. 일 실시예에 따르면 제1 컨텐츠(902)는 수학식을 포함할 수 있다. 전자 장치(100)는 제1 컨텐츠(902)를 인식하여, 제1 중간 결과물(904,906,908,910)을 생성할 수 있다. 예를 들어, 제1 컨텐츠(902)는 복수의 수학 기호들을 포함할 수 있다. 전자 장치(100)는 복수의 수학 기호들로부터 특징들을 추출하고, 특징들의 확률들을 제1 중간 결과물(904,906,908,910)로서 결정할 수 있다. 일 예로, 제1 중간 결과물(906)은 적분 구간의 하한을 나타내는 기호가 "A"라는 기호일 확률 및 "
Figure pat00016
"라는 기호일 확률을 포함할 수 있다.
전자 장치(100)는 제1 중간 결과물(904,906,908,910)에 기초하여, 제1 최종 결과물(912)을 생성하고, 제1 최종 결과물(912)을 화면에 전시할 수 있다. 제1 컨텐츠(902) 및 제1 최종 결과물(912)을 참조하면, 적분 구간의 하한을 나타내는 기호는 "
Figure pat00017
"라는 기호임에도 불구하고, 인식 과정에서 에러가 발생하여, "A"라는 기호로 잘못 인식된 것을 확인할 수 있다.
사용자는 잘못 인식된 부분을 정정하여 "Pi"라는 단어를 제2 컨텐츠(914)로서 다시 전자 장치(100)에 입력할 수 있다. 전자 장치(100)는 제2 컨텐츠(914)를 인식함으로써, 제2 최종 결과물(916)을 생성할 수 있다. 전자 장치(100)는 제1 중간 결과물(904,906,908,910) 및 제2 최종 결과물(916)에 기초하여 제1 최종 결과물(912)에 포함된 에러의 위치를 검출할 수 있다.
전자 장치(100)는 제1 최종 결과물(912)에 포함된 복수의 제1 블록들 중 제2 최종 결과물(916)의 제2 블록과 대응하는 블록을 타겟 블록(918)으로 검출할 수 있다. 도 9에 도시된 일 예에서, 복수의 제1 블록들은 제1 최종 결과물(912)에 도시된 복수의 기호들을 나타낼 수 있으며, 제2 블록은 "A"라는 기호일 수 있다.
전자 장치(100)는 제1 최종 결과물(912)에 포함된 타겟 블록(918)을 제2 최종 결과물(916)로 대체함으로써 제1 최종 결과물(912)을 수정할 수 있다. 전자 장치(100)는 수정된 제1 최종 결과물(920)을 출력할 수 있다.
도 10은 일 실시예에 따른 전자 장치가 잘못 인식된 이미지를 수정하는 방법에 대해 설명하기 위한 도면이다.
사용자는 카메라로 이미지를 촬영하여, 제1 컨텐츠(1002)를 전자 장치(100)에 입력할 수 있다. 일 실시예에 따르면 제1 컨텐츠(1002)는 문자를 포함하는 이미지를 포함할 수 있다. 전자 장치(100)는 제1 컨텐츠(1002)를 OCR 방식을 사용하여, 이미지에 포함된 문자를 인식하여, 제1 중간 결과물을 생성할 수 있다. 예를 들어, 제1 컨텐츠(1002)는 복수의 단어들을 포함할 수 있다. 전자 장치(100)는 복수의 단어들로부터 특징들을 추출하고, 특징들의 확률들을 제1 중간 결과물로서 결정할 수 있다.
전자 장치(100)는 제1 중간 결과물에 기초하여 제1 최종 결과물(1004)을 생성하여, 화면에 전시할 수 있다. 제1 컨텐츠(1002) 및 제1 최종 결과물(1004)을 참조하면, "before'라는 단어가 "be"라는 단어로 잘못 인식된 것을 확인할 수 있다.
사용자는 잘못 인식된 부분을 정정하여 "before"라는 단어를 제2 컨텐츠(1008)로서 다시 전자 장치(100)에 입력할 수 있다. 예를 들어, 사용자는 음성으로 제2 컨텐츠(1008)를 입력할 수 있다. 전자 장치(100)는 제2 컨텐츠(1008)를 인식하여, 제2 최종 결과물(1010)을 생성할 수 있다. 전자 장치(100)는 제1 중간 결과물 및 제2 최종 결과물(1010)에 기초하여 제1 최종 결과물(1004)에 포함된 에러의 위치를 검출할 수 있다.
전자 장치(100)는 제1 최종 결과물(1004)에 포함된 복수의 제1 블록들 중 제2 최종 결과물(1010)의 제2 블록과 대응하는 블록을 타겟 블록(1006)으로 검출할 수 있다. 도 10에 도시된 일 예에서, 복수의 제1 블록들은 제1 최종 결과물(1004)에 도시된 단어들을 나타낼 수 있으며, 제2 블록은 "before"라는 단어일 수 있다.
전자 장치(100)는 제1 최종 결과물(1004)에 포함된 타겟 블록(1006)을 제2 최종 결과물(1010)로 대체함으로써 제1 최종 결과물(1004)을 수정할 수 있다. 전자 장치(100)는 수정된 제1 최종 결과물(1012)을 출력할 수 있다.
도 11은 일 실시예에 따른 전자 장치의 동작 방법을 나타내는 순서도이다.
단계 S1102에서, 전자 장치(100)는 제1 컨텐츠를 수신할 수 있다. 제1 컨텐츠는 사용자로부터 입력될 수 있다. 제1 컨텐츠는 문자, 수학식, 다이어그램 및 이미지 등을 포함할 수 있다. 제1 컨텐츠는 복수의 방식들에 따라 입력될 수 있다. 예를 들어, 사용자는 음성을 통해 입력하는 방식, 키보드에 텍스트를 입력하는 방식, 키패드에 핸드라이팅하는 방식 및 카메라로 이미지를 촬영하는 방식에 따라 제1 컨텐츠를 입력할 수 있다.
단계 S1104에서, 전자 장치(100)는 제1 컨텐츠를 인식함으로써 생성된 중간 결과물을 메모리에 저장할 수 있다. 전자 장치(100)는 언어 모델, 기계학습 및 자료 처리 언어(Data Manipulation Language) 등을 사용하여 제1 컨텐츠를 인식할 수 있다. 예를 들어, 전자 장치(100)는 제1 컨텐츠로부터 특징들을 추출할 수 있으며, 인공지능 학습 모델을 사용하여 특징들의 확률들을 중간 결과물로서 결정할 수 있다. 전자 장치(100)는 제1 컨텐츠에 포함된 에러의 위치를 검출하기 위해 중간 결과물을 메모리에 별도로 저장할 수 있다.
단계 S1106에서, 전자 장치(100)는 중간 결과물로부터 생성된 제1 최종 결과물을 화면에 전시할 수 있다. 전자 장치(100)는 중간 결과물을 디코딩함으로써, 제1 최종 결과물을 생성할 수 있다. 사용자는 전시된 제1 최종 결과물을 확인하여, 제1 최종 결과물에 포함된 에러를 인지할 수 있다.
단계 S1108에서, 전자 장치(100)는 제2 컨텐츠를 수신할 수 있다. 제2 컨텐츠는 제1 최종 결과물에 포함된 에러를 정정한 결과일 수 있다. 제2 컨텐츠는 사용자로부터 입력될 수 있으며, 제1 컨텐츠와 마찬가지로 다양한 방식에 따라 입력될 수 있다. 제2 컨텐츠는 사용자가 제1 최종 결과물에 포함된 에러를 인지한 이후에 입력되므로, 제2 컨텐츠는 제1 컨텐츠보다 나중에 입력될 수 있다.
단계 S1110에서, 전자 장치(100)는 제2 최종 결과물을 생성할 수 있다. 전자 장치(100)는 제2 컨텐츠를 인식함으로써, 제2 최종 결과물을 생성할 수 있다. 전자 장치(100)는 언어 모델, 기계 학습 및 자료 처리 언어(Data Manipulation Language) 등을 사용하여 제1 컨텐츠를 인식할 수 있다.
단계 S1112에서, 전자 장치(100)는 제2 최종 결과물 및 중간 결과물에 기초하여 제1 최종 결과물에 포함된 에러의 위치를 검출할 수 있다. 전자 장치(100)는 제1 최종 결과물에 포함된 하나 또는 이상의 제1 블록들 중에서 제2 최종 결과물에 포함된 적어도 하나의 제2 블록과 대응하는 블록을 에러를 포함한 타겟 블록으로 검출할 수 있다. 구체적으로, 전자 장치(100)는 제1 블록들에 포함된 특징들의 확률들 및 제2 블록에 포함된 특징들의 확률들에 기초하여 타겟 블록을 검출할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1 블록들에 포함된 특징들의 확률들 및 제2 블록에 포함된 특징들의 확률들을 제1 중간 결과물로부터 획득할 수 있다.
단계 S1114에서, 전자 장치(100)는 에러의 위치에 기초하여 제1 최종 결과물을 수정할 수 있다. 전자 장치(100)는 에러를 제2 최종 결과물로 대체함으로써, 제1 최종 결과물을 수정할 수 있다.
본 개시의 다양한 실시예들이 전술되었다. 전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시의 실시예들은 개시된 실시예들에 한정되는 것은 아니다. 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 컨텐츠(content)를 수정하는 전자 장치에 있어서,
    메모리; 및
    적어도 하나의 프로세서를 포함하되,
    상기 적어도 하나의 프로세서는
    제1 컨텐츠 및 제2 컨텐츠를 순차적으로 수신함으로써, 각각 제1 최종 결과물 및 제2 최종 결과물을 생성하고,
    상기 제1 컨텐츠를 인식함으로써 생성된 중간 결과물을 상기 메모리에 저장하며,
    상기 제2 최종 결과물 및 상기 중간 결과물에 기초하여, 상기 제1 최종 결과물에 포함된 에러의 위치를 검출함으로써, 상기 제1 최종 결과물을 수정하는
    전자 장치.
  2. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 최종 결과물에 포함된 하나 또는 이상(one or more)의 제1 블록들 중에서 상기 제2 최종 결과물에 포함된 적어도 하나의 제2 블록과 대응하는 블록을 상기 에러를 포함한 타겟 블록으로 검출하는 전자 장치.
  3. 제2 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 블록들에 포함된 특징들의 확률들 및 상기 제2 블록에 포함된 특징들의 확률들에 기초하여, 상기 타겟 블록을 검출하는 전자 장치.
  4. 제3 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 블록들에 포함된 특징들의 확률들 및 상기 제2 블록에 포함된 특징들의 확률들을 상기 중간 결과물로부터 획득하는 전자 장치.
  5. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 에러를 상기 제2 최종 결과물로 대체함으로써, 상기 제1 최종 결과물을 수정하는 전자 장치.
  6. 제1 항에 있어서,
    상기 제1 컨텐츠 및 상기 제2 컨텐츠는 복수의 입력 방식들에 따라 입력되는 전자 장치.
  7. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 인공지능 학습 모델에 상기 제1 컨텐츠를 입력함으로써, 상기 중간 결과물을 획득하는 전자 장치.
  8. 제1 항에 있어서,
    디스플레이를 더 포함하되, 상기 적어도 하나의 프로세서는 상기 제1 최종 결과물을 전시하도록 상기 디스플레이를 제어하고, 상기 제2 컨텐츠는 상기 제1 최종 결과물이 전시된 이후에 수신되는 전자 장치.
  9. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 중간 결과물을 디코딩함으로써, 상기 제1 최종 결과물을 생성하는 전자 장치.
  10. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제2 컨텐츠를 인식함으로써, 상기 제2 최종 결과물을 생성하는 전자 장치.
  11. 컨텐츠(content)를 수정하는 방법에 있어서,
    제1 컨텐츠를 수신하는 단계;
    상기 제1 컨텐츠를 인식함으로써 생성된 중간 결과물을 메모리에 저장하는 단계;
    상기 중간 결과물로부터 생성된 제1 최종 결과물을 전시하는 단계;
    제2 컨텐츠를 수신하는 단계;
    상기 제2 컨텐츠로부터 제2 최종 결과물을 생성하는 단계;
    상기 제2 최종 결과물 및 상기 중간 결과물에 기초하여, 상기 제1 최종 결과물에 포함된 에러의 위치를 검출하는 단계; 및
    상기 에러의 위치에 기초하여, 상기 제1 최종 결과물을 수정하는 단계
    를 포함하는 방법.
  12. 제11 항에 있어서,
    상기 에러의 위치를 검출하는 단계는 상기 제1 최종 결과물에 포함된 하나 또는 이상의 제1 블록들 중에서 상기 제2 최종 결과물에 포함된 적어도 하나의 제2 블록과 대응하는 블록을 상기 에러를 포함한 타겟 블록으로 검출하는 단계를 포함하는 방법.
  13. 제12 항에 있어서,
    상기 제2 블록과 대응하는 블록을 상기 에러를 포함한 타겟 블록으로 검출하는 단계는 상기 제1 블록들에 포함된 특징들의 확률들 및 상기 제2 블록에 포함된 특징들의 확률들에 기초하여, 상기 타겟 블록을 검출하는 단계를 포함하는 방법.
  14. 제13 항에 있어서,
    상기 타겟 블록을 검출하는 단계는 상기 제1 블록들에 포함된 특징들의 확률들 및 상기 제2 블록에 포함된 특징들의 확률들을 상기 중간 결과물로부터 획득하는 단계를 포함하는 방법.
  15. 제11 항에 있어서,
    상기 제1 최종 결과물을 수정하는 단계는 상기 에러를 상기 제2 최종 결과물로 대체함으로써, 상기 제1 최종 결과물을 수정하는 단계를 포함하는 방법.
  16. 제11 항에 있어서,
    상기 제1 컨텐츠 및 상기 제2 컨텐츠는 복수의 입력 방식들에 따라 입력되는 방법.
  17. 제11 항에 있어서,
    인공지능 학습 모델에 상기 제1 컨텐츠를 입력함으로써, 상기 중간 결과물을 획득하는 단계를 더 포함하는 방법.
  18. 제11 항에 있어서,
    상기 제2 컨텐츠는 상기 제1 최종 결과물이 전시된 이후에 수신되는 방법.
  19. 제11 항에 있어서,
    상기 중간 결과물을 디코딩함으로써, 상기 제1 최종 결과물을 생성하는 단계를 더 포함하는 방법.
  20. 제11 항에 있어서,
    상기 제2 최종 결과물을 생성하는 단계는 상기 제2 컨텐츠를 인식함으로써, 상기 제2 최종 결과물을 생성하는 단계를 포함하는 방법.
KR1020200066721A 2020-06-02 2020-06-02 컨텐츠를 수정하기 위한 전자 장치 및 방법 KR20210149969A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200066721A KR20210149969A (ko) 2020-06-02 2020-06-02 컨텐츠를 수정하기 위한 전자 장치 및 방법
PCT/KR2020/010257 WO2021246570A1 (ko) 2020-06-02 2020-08-04 컨텐츠를 수정하기 위한 전자 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200066721A KR20210149969A (ko) 2020-06-02 2020-06-02 컨텐츠를 수정하기 위한 전자 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210149969A true KR20210149969A (ko) 2021-12-10

Family

ID=78830468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200066721A KR20210149969A (ko) 2020-06-02 2020-06-02 컨텐츠를 수정하기 위한 전자 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20210149969A (ko)
WO (1) WO2021246570A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19533541C1 (de) * 1995-09-11 1997-03-27 Daimler Benz Aerospace Ag Verfahren zur automatischen Steuerung eines oder mehrerer Geräte durch Sprachkommandos oder per Sprachdialog im Echtzeitbetrieb und Vorrichtung zum Ausführen des Verfahrens
KR101537693B1 (ko) * 2008-11-24 2015-07-20 엘지전자 주식회사 단말기 및 그 제어 방법
CN103714048B (zh) * 2012-09-29 2017-07-21 国际商业机器公司 用于校正文本的方法和系统
KR20150024188A (ko) * 2013-08-26 2015-03-06 삼성전자주식회사 음성 데이터에 대응하는 문자 데이터를 변경하는 방법 및 이를 위한 전자 장치
JP6605995B2 (ja) * 2016-03-16 2019-11-13 株式会社東芝 音声認識誤り修正装置、方法及びプログラム

Also Published As

Publication number Publication date
WO2021246570A1 (ko) 2021-12-09

Similar Documents

Publication Publication Date Title
Prajwal et al. Sub-word level lip reading with visual attention
US11769492B2 (en) Voice conversation analysis method and apparatus using artificial intelligence
JP7022062B2 (ja) 統合化された物体認識および顔表情認識を伴うvpa
Ariav et al. An end-to-end multimodal voice activity detection using wavenet encoder and residual networks
US10970493B1 (en) Systems and methods for slot relation extraction for machine learning task-oriented dialogue systems
EP3979098A1 (en) Data processing method and apparatus, storage medium, and electronic apparatus
US11492741B2 (en) Electronic device
US20220172710A1 (en) Interactive systems and methods
US20220019807A1 (en) Action classification in video clips using attention-based neural networks
US20210110815A1 (en) Method and apparatus for determining semantic meaning of pronoun
KR102544249B1 (ko) 발화의 문맥을 공유하여 번역을 수행하는 전자 장치 및 그 동작 방법
CN111108468A (zh) 基于滑动输入来确定输入字符的系统和方法
CN114639150A (zh) 情绪识别方法、装置、计算机设备和存储介质
Kim et al. Prompt tuning of deep neural networks for speaker-adaptive visual speech recognition
KR20190105175A (ko) 전자 장치 및 이의 자연어 생성 방법
Raghavan et al. Virtual ai assistant for person with partial vision impairment
Paplu et al. Utilizing semantic and contextual information during human-robot interaction
CN110991155B (zh) 文本修正方法、设备及介质
KR20210149969A (ko) 컨텐츠를 수정하기 위한 전자 장치 및 방법
CN115759262A (zh) 基于知识感知注意力网络的视觉常识推理方法及系统
Bin Munir et al. A machine learning based sign language interpretation system for communication with deaf-mute people
US10885273B2 (en) Method and system simplifying the input of symbols used as a pair within a user interface
Santoso Study on speech emotion recognition based on classification and reconstruction for improved practicality
Wu Multimodal emotion recognition
Alam et al. A machine learning based sign language interpretation system for communication with deaf-mute people