KR102027141B1 - 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법 - Google Patents

음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법 Download PDF

Info

Publication number
KR102027141B1
KR102027141B1 KR1020170159924A KR20170159924A KR102027141B1 KR 102027141 B1 KR102027141 B1 KR 102027141B1 KR 1020170159924 A KR1020170159924 A KR 1020170159924A KR 20170159924 A KR20170159924 A KR 20170159924A KR 102027141 B1 KR102027141 B1 KR 102027141B1
Authority
KR
South Korea
Prior art keywords
natural language
learning
program code
size
program
Prior art date
Application number
KR1020170159924A
Other languages
English (en)
Other versions
KR20190061488A (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 KR1020170159924A priority Critical patent/KR102027141B1/ko
Publication of KR20190061488A publication Critical patent/KR20190061488A/ko
Application granted granted Critical
Publication of KR102027141B1 publication Critical patent/KR102027141B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것으로, 사용자의 음성을 인식하여 자연어로 변환하고, 상기 변환된 자연어에 대응하는 프로그래밍 코드를 생성할 때, 딥러닝을 포함한 인공지능을 알고리즘을 적용하여 프로그래밍 결과가 사용자의 음성에 의해서 자동으로 생성, 개선 및 최적화되도록 하는 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것이다.

Description

음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법{A PROGRAM CODING SYSTEM BASED ON ARTIFICIAL INTELLIGENCE THROUGH VOICE RECOGNITION AND A METHOD THEREOF}
본 발명은 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 사용자의 음성을 인식하여 자연어로 변환하고, 상기 변환된 자연어에 대응하는 프로그래밍 코드를 생성할 때, 딥러닝을 포함한 인공지능을 알고리즘을 적용하여 프로그래밍 결과가 사용자의 음성에 의해서 자동으로 생성, 개선 및 최적화되도록 하는 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것이다.
디지털 통신기술의 발달과 컴퓨팅 성능의 개선에 따라 복잡한 딥러닝에 기반한 인공지능 알고리즘의 성공적인 적용 사례도 늘어가고 있는 추세이다. 특히 기계학습의 경우 계산량이 너무 많아 과거에는 실생활에 적용하기 어려운 것으로 여겨졌으나, 최근에는 실생활에 딥러닝이 활용되는 경우가 많으며, 그 적용분야도 점점 확대되고 있는 추세이다.
이러한 인공지능의 근간은 컴퓨터 프로그래밍에 의해서 실현되는 것이기 때문에 소프트웨어에 대한 전문적인 지식을 갖춘 전문가를 양성하는 것이 필요하다. 따라서 컴퓨터의 활용력을 높이기 위한 각종 소프트웨어 교육의 필요성이 점차 증가하고 있으며, 웹 프로그램, 애플리케이션 프로그램, 빅데이터 분석, 데이터 마이닝, 통계분석 등과 관련한 소프트웨어를 직접 제작하고 것에 대한 사용자들의 관심도가 높아지고 있다.
이처럼 각종 소프트웨어에 대한 교육의 수요가 크게 늘어나고 있지만, 오프라인 교육의 경우, 사용자들이 특정 장소 및 시간에 교육을 받아야 하는 특성상 원하는 시간에 자유롭게 교육을 받지 못하였고, 교육을 담당하는 인력과 양질의 교재나 도구가 부족함은 물론, 교육공간도 많이 부족한 실정이며, 교육비용도 과다하게 소요되는 문제가 있었다.
이러한 문제를 해결하기 위하여 대량의 교육, 양질의 교육, 실습 위주의 교육, 시공간의 제약극복 등의 여러 가지 장점을 가진 온라인 교육이 활성화되고 있으며, 스마트폰, 태블릿 등의 모바일 형태의 사용자 단말기를 통해 이동 중에도 자유롭게 교육 관련 콘텐츠를 이용할 수 있는 스마트 러닝(smart learning) 서비스가 각광받고 있다.
그러나 사용자 단말기를 통해 온라인 교육을 수행할 때, 실습이나 코딩작업이 필수인 프로그래밍과 관련된 학습 콘텐츠(예를 들어, R 프로그램, Python, Java, C 등)를 이용하는 경우 사용자들은 사용자 단말기에 구비된 키보드가 작기 때문에 프로그램 실습이나 코딩작업을 위한 데이터의 입력이 쉽지 않고, 경우에 따라 키보드를 별도로 연결하여 사용하여야 하는 불편함이 있었으며, 결과적으로 모바일 환경에서 프로그램 학습을 원활하게 수행하지 못하게 되는 문제점이 있었다.
또한, 현재 온라인상에서 이루어지고 있는 대부분의 소프트웨어에 대한 교육은 일반인들을 대상으로 하는 것이기 때문에 거동이 불편한 장애인들의 경우 소프트웨어에 관심이 있더라도 소프트웨어에 관련된 실습교육을 받는데 한계가 있었다.
아울러 소프트웨어를 강의하는 사람에 따라 교육의 질에 대한 차이가 많이 있으며, 정보의 흐름이 워낙 빠르고 그 정보를 접하는 사람의 능력도 천차만별이기 때문에 프로그램을 교육하는 사람보다 프로그램을 배우는 사람이 더 많은 지식을 가지고 있는 경우가 흔히 발생하고 있다. 즉, 이제는 프로그램에 관한 한 교육자와 피교육자가 따로 있는 것이 아니라, 프로그램에 관심이 있는 사람들이 상호 정보를 교류하면서 스스로 배워가는 수평적인 교육이 필요한 시점이다.
따라서 본 발명에서는 사용자의 음성을 인식하여 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성하여 각종 프로그래밍 언어를 사용한 프로그래밍 작업을 자동으로 처리함으로써, 키 입력의 불편함을 해소하여 이동 중에도 클라우드 환경에서 프로그램 실습이나 코딩작업을 수행할 수 있으며, 특히 딥러닝을 통해서 프로그래밍 결과가 점점 개선되도록 함으로써, 바로 제품화하여도 손색이 없을 정도의 최적화된 프로그램 코드를 제공하는 방안을 제시하고자 한다.
다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.
먼저 한국공개특허 제2002-0030156호(2002.04.24.)는 컴퓨터의 운영 시스템 및 각종 응용프로그램을 키보드 또는 마우스와 같은 손조작에 의한 입력장치 없이도 음성인식기술을 이용하여 사용자의 음성명령만으로 제어할 수 있도록 함으로써 일반인은 물론 각종 장애인들도 간편하게 컴퓨터 시스템은 물론 각종 프로그램을 활용할 수 있도록 하는 음성인식을 이용한 컴퓨터 프로그램의 제어방법에 관한 것이다.
상기 선행기술은 컴퓨터 프로그램을 제어하는 것이지 프로그램 코드 자체를 생성하는 것이 아니다. 반면에 본 발명은 사용자의 음성을 인식하여 자연어 처리를 수행하고, 이에 대응하는 프로그래밍 코드를 딥러닝에 기반으로 생성함으로써, 프로그래밍 작업을 자동으로 처리하는 것뿐만 아니라, 프로그래밍 코딩 결과가 기계학습을 통해서 점점 개선되도록 하는 기술적 구성을 제시하고 있다. 따라서 상기 선행기술은 본 발명에서 제시하는 기술과 차이점이 명확하다.
또한, 한국등록특허 제1213890호(2012.12.18.)는 강한 데이터 유형을 이용하여 소프트웨어 프로그램에서 음성 인식 문법을 나타내기 위한 방법에 관한 것이다.
상기 선행기술은 음성을 인식하여 운영체제, 애플리케이션 프로그램, 기타 프로그램 모듈, 프로그램 데이터를 구동하는 것이지, 본 발명과 같이 사용자의 음성을 인식하여 프로그램 코딩작업을 자동으로 수행하는 것이 아니다. 따라서 상기 선행기술은 본 발명에서 제시하는 기술과 차이가 있다.
즉 상기 언급한 각각의 선행기술들은 대부분 음성 인식을 통해 컴퓨터의 응용프로그램이나 모바일 전화기에서 특정 애플리케이션을 실행하도록 하는 기술적 구성을 제시하고 있기 때문에, 사용자의 음성명령을 자연어 처리를 통해 인식하고, 이를 토대로 프로그래밍 코드를 생성하고 실행하여 C++, JAVA, Python, R 프로그램 등의 각종 프로그래밍 언어를 사용한 코딩작업을 자동으로 실행할 수 있고, 또한 상기 프로그램 코드가 점점 개선되도록 하여 최적화된 코드를 생성하는 본 발명의 구성과는 기술적 차이점이 분명하다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 사용자의 음성을 인식하여 프로그램코딩 작업을 자동으로 수행할 수 있는 음성 인식을 통한 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 사용자가 말하는 음성을 인식하여 자연어로 변환하고, 이를 토대로 프로그램코드를 생성함에 있어서, 딥러닝을 통한 기계학습을 적용하여 상기 자연어를 프로그래밍 언어로 번역하되, 번역 결과가 학습을 통해서 점점 개선되도록 하는 음성인식 기반 인공지능 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 또 다른 목적으로 한다.
또한 본 발명은 음성인식을 이용하여 이동 중이거나 모바일 환경에서도 클라우드 상에서 프로그램 코딩을 실습하거나 프로그램 코딩으로 제품을 개발하는 작업을 수행할 수 있도록 하는 음성인식 기반 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 동작이 불편하거나 시각적인 장애로 인하여 키보드 자판을 조작하는데 어려움이 있는 장애인들에 대한 프로그램 관련 교육 및 작업에 도움을 줄 수 있는 음성인식 기반 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 또 다른 목적으로 한다.
본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법은, 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 단계 및 사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 단계를 포함하는 것을 특징으로 한다.
또한 상기 음성인식을 통한 인공지능 프로그램코딩 방법은, 사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식 단계, 상기 출력한 프로그램 코드를 검증하는 단계 및 상기 검증한 결과에 따라 상기 매핑관계를 추가하거나 변경하는 단계를 더 포함하며, 상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 한다.
또한 상기 학습모델을 생성하는 단계는, CNN(Convolutional Neural Network)을 통한 기계학습을 수행하는 단계를 포함하며, 상기 CNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.
또한 상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며, 상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하며, 상기 이미지의 해상도는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.
또한 상기 학습모델을 생성하는 단계는, RNN(Recursive Neural Network)을 통한 기계학습을 수행하는 단계를 포함하며, 상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.
또한 상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며, 상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며, 상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.
아울러 본 발명의 일 실시예에 따른 음성인식을 통한 인공지능 프로그램코딩 시스템은, 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 학습모델 생성부 및 사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 프로그램 코드 추정부를 포함하는 것을 특징으로 한다.
또한 상기 음성인식을 통한 인공지능 프로그램코딩 시스템은, 사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식부를 더 포함하며, 상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 한다.
또한 상기 학습모델 생성부는, CNN(Convolutional Neural Network)을 통해 기계학습을 수행하며, 상기 CNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.
또한 상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며, 상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하며, 상기 이미지의 해상도는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.
또한 상기 학습모델 생성부는, RNN(Recursive Neural Network)을 통해 기계학습을 수행하며, 상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.
또한 상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며, 상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며, 상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.
이상에서와 같이 본 발명의 음성인식 기반 인공지능 프로그램코딩 시스템 및 코딩 방법에 따르면, 음성을 인식하여 코딩작업을 자동으로 수행할 수 있기 때문에, 사용자가 키보드, 마우스 등의 별도의 입력장치를 사용할 필요 없이 음성을 통해 간편하게 코딩작업을 수행할 수 있으며, 특히 모바일이나 이동 환경에서 프로그램 실습이나 코딩작업을 수행할 때 발생할 수 있는 키 입력의 불편함을 해소할 수 있는 효과가 있다.
또한, 사용자의 음성만으로 특정 프로그래밍 언어의 실습이나 코딩작업이 이루어지기 때문에 사용자가 프로그래밍 언어를 모르더라도 음성인식에 의한 코딩작업을 직관적으로 확인할 수 있어, 프로그래밍 언어나 코딩작업을 이해하는데 도움이 되는 효과가 있다.
또한, 본 발명은 사용자가 말하는 음성을 인식하여 자연어로 변환하고, 이를 토대로 프로그래밍 코드를 생성함에 있어서, 딥러닝을 통한 기계학습을 적용하여 상기 자연어를 프로그래밍 언어로 번역하되, 번역 결과가 학습을 통해서 점점 개선되도록 하기 때문에 최적화된 프로그램 코드를 학습하고 제작하는 효과가 있다.
또한, 본 발명은 동작이 불편하거나 시각적인 장애로 인하여 키보드 자판을 조작하는데 어려움이 있는 장애인들에 대한 프로그램 관련 교육 및 작업에 도움을 줄 수 있는 효과가 있다.
또한, 본 발명은 특정 프로그래밍 언어에 대한 단순한 교육 차원을 벗어나, 음성명령만으로 모바일 환경의 애플리케이션을 구축하거나 블로그 및 홈페이지를 제작할 수도 있으며, 말로 표현하기 어려운 부분에 있어서도 사용자가 말하는 대표 키워드를 통해 프로그래밍 작업에 도움이 되는 프로그램의 제공이 가능할 것이므로 향후 프로그래밍 언어를 사용하는 모든 산업 분야의 발전에 적용할 수 있는 효과가 있다.
도 1은 본 발명이 적용된 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법의 개념을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에 대한 구성도이다.
도 3은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 CNN을 통해 기계학습을 수행하는 경우, CNN에 입력되는 입력 데이터의 전처리를 과정을 보인 도면이다.
도 4는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 RNN을 통해 기계학습을 수행하는 경우, RNN에 입력되는 입력데이터의 전처리 과정을 보인 도면이다.
도 5는 본 발명의 일 실시예에 따른 CNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 RNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법이 실행되는 과정을 보인 흐름도이다.
이하, 첨부한 도면을 참조하여 본 발명의 딥러닝을 통한 음성인식코딩 시스템 및 그 방법에 대한 바람직한 실시 예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.
도 1은 본 발명이 적용된 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법의 개념을 설명하기 위한 개념도이다.
도 1에 도시된 바와 같이, 음성인식을 통한 인공지능 프로그램코딩 시스템(10)은 사용자의 음성을 인식하고, 상기 인식한 사용자 음성을 딥러닝을 통한 기계학습을 적용하여 프로그램코드로 변환하는 음성인식을 통한 인공지능 프로그램코딩 장치(100), 상기 기계학습을 위한 학습데이터로써, 자연어와 프로그램 코드 레이블에 대한 매핑 테이블이 저장된 학습데이터 데이터베이스(Sen2Cod)(200), 기계학습에 의해 학습된 학습모델을 저장하는 학습모델 데이터베이스(300) 및 적어도 하나 이상의 사용자 디바이스(400)들 사이에서 작용한다.
먼저 학습데이터 데이터베이스(200)에는 사용자의 음성인식을 토대로 현재 사용되고 있는 R 프로그램, C++, JAVA, Python 등의 각종 프로그래밍 언어에 대한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트에 대한 프로그램 코드 레이블과 사용자들이 말하는 단어를 매칭한 정보를 데이터베이스로 구축하고 있다. 예를 들어 특정 프로그램 코드에 대해 가능한 모든 자연어 표현을 생성하며, 상기 자연어 표현과 상기 특정 프로그램 코드는 1:1로 매칭되어 저장된다.
이러한 자연어-프로그램 코드 레이블에 대한 매핑 테이블은 음성인식을 통한 인공지능 프로그램코딩 장치(100)에서 딥러닝을 위한 학습데이터로 활용된다(①). 학습데이터는 기계학습의 입력데이터로 사용되고, 그 결과로 학습모델이 생성되며(②), 상기 생성된 학습모델은 프로그램 코딩에 활용하기 위해 학습모델 데이터베이스에 저장된다(③). 여기서 기계학습은 RNN(recurrent neural network)으로 수행되거나, CNN(convolution neural network)으로 수행될 수 있다.
한편 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 학습데이터를 학습하는 과정에 있어서 상기에서 나열한 기계학습 기법(즉, RNN 또는 CNN)에 적합하도록 상기 학습데이터를 전처리한다. 이후, 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 상기 전처리한 학습데이터를 학습하여, 특정 자연어 문구에 대한 프로그램코드를 추정하기 위한 학습모델을 생성한다. 한편 상기 CNN 또는 RNN에 따른 전처리 과정은 도 3 및 도 4를 각각 참조하여 상세히 설명하도록 한다.
사용자는 음성인식을 통한 인공지능 프로그램코딩 장치(100)를 통해 프로그램 코드를 생성하기 위해 상기 학습모델 데이터베이스(300)로부터 학습모델을 액세스하여 사용한다. 사용자 디바이스(400)에서는 음성인식을 통한 인공지능 프로그램코딩 장치(100)를 통하거나 혹은 자체적적으로 상기 음성인식을 통한 인공지능 프로그램코딩 장치(100)로부터 다운로딩한 프로그램코딩용 앱을 통해서 사용자의 음성을 인식한 결과를 프로그램 코드로 변환한다(④). 이 과정에서 사용자는 음성으로 입력한 내용과 프로그램 결과가 최적이 아니라면 새롭게 자연어와 프로그램 코드의 매핑 데이터를 입력시킬 수 있다. 즉, 특정 권한을 가진 사용자나 관리자는 출력된 프로그램을 확인한 다음 검증과정을 거쳐 최적의 프로그램인지 확증하고 그 결과를 상기 매핑 테이블을 저장하고 있는 학습데이터 데이터베이스(200)에 업데이트 한다(⑤). 여기서 특정 권한을 가진 사용자나 관리자는 특정 프로그래밍 언어에 대한 전문가가 될 수 있다. 따라서 상기 검증과정을 수행하는 사용자는 일반 사용자가 아니라 상기 특정 프로그래밍 언어에 대한 고도화된 숙련도를 가지고 있는 사람을 의미한다.
또한 사용자 디바이스(400)는 스마트폰, 태블릿 PC 등과 같은 모바일 통신기기로써 사용자가 구비한 사용자 단말을 의미하며, 사용자의 음성을 입력받는 마이크가 구비되어 있다. 즉, 상기 모바일 통신기기는 음성인식을 통한 인공지능 프로그램코딩 장치(100)로부터 프로그램코딩을 위한 애플리케이션(application, app)을 다운로드 받아 상기 애플리케이션을 실행함으로써, 프로그램코딩을 위한 사용자 디바이스(400)가 된다.
다음으로 음성인식코딩 서버는 데이터베이스가 새롭게 갱신되면 이를 이용하여 학습모델도 새롭게 갱신하고(⑥) 그 결과를 학습모델 데이터베이스(300)에 저장한다(⑦).
이렇게 사용자가 본 발명에 따른 음성인식코딩 시스템을 사용하며 할수록 학습모델이 강화학습(reinforcement learning)을 통해서 점점 고도화되게 된다.
또한 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 클라우드 서버, 로컬 서버 또는 이들의 조합으로 구현될 수 있으며, 상기 음성인식은 사용자 디바이스(400)로부터 사용자 음성을 수신하여 상기 음성인식을 통한 인공지능 프로그램 코딩 장치(100)에 구비된 음성인식 엔진을 통해 수행되는 것이 바람직하지만, 상기 음성인식 엔진을 구비한 사용자 디바이스(400)에서 수행될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에 대한 구성도이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)는 사용자 디바이스(400)로부터 수신되는 사용자 음성을 인식하는 음성인식부(110), 상기 인식한 사용자 음성과 학습데이터를 전처리하여 상기 학습데이터를 기계학습 방법에 따라 적용할 수 있도록 하는 전처리부(120), 상기 전처리한 학습데이터를 학습하여 학습모델을 생성하는 학습모델 생성부(130), 상기 생성한 학습모델에 상기 전처리한 사용자 음성을 적용하여 프로그램코드를 추정하는 프로그램 코드 추정부(140), 상기 추정한 프로그램 코드에 대한 검증을 수행하는 검증부(150), 상기 검증한 결과에 따라 학습데이터를 업데이트하는 학습데이터 업데이트부(160) 및 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)의 각 구성부분을 전반적으로 제어하는 제어부(170)를 포함하여 구성된다.
음성인식부(110)는 사용자 단말로부터 실시간으로 수신되는 사용자 음성을 인식하고, 상기 인식한 사용자 음성에 대한 자연어 문구(이하 자연어라 칭함)를 추출하여 전처리부(120)로 제공한다.
이때, 상기 전처리부(120)는 상기 자연어를 전처리하여 상기 학습모델 생성부(130)에 의해 생성한 학습모델에 입력할 수 있도록 함으로써, 상기 학습모델을 통해 사용자 음성에 대한 프로그램 코드를 추정할 수 있도록 한다.
즉, 상기 음성인식부(110)는 음성인식 엔진을 통해 사용자 음성을 인식하여 자연어 처리를 수행함으로써, 해당 사용자의 음성으로부터 자연어를 추출하여, 학습모델을 통해 상기 추출한 자연어에 대한 특정 프로그램 코드를 추정할 수 있도록 하는 것이다.
한편 상기 음성인식부(100)는 프로그래밍 실습이나 코딩작업을 수행하는 사용자에 의해 입력되는 사용자 음성을 형태소, 구문, 의미, 담화분석 등을 통해 자연어 처리를 수행하는 것으로, 에코(echo), 시리(siri) 등과 같은 다양한 음성인식 엔진 또는 음성인식을 위한 다양한 기계학습 방법을 이용하여 사용자 음성에 대한 자연어 처리를 수행할 수 있으며, 본 발명에서는 사용자 음성을 자연어 처리하는 방법에 대해서는 그 제한을 두지 않는다.
한편 사용자 음성에 대한 자연어 처리는 상기 음성인식엔진을 탑재한 사용자 디바이스(400)에서 수행될 수 있으며, 상기 음성인식부(120)는 상기 사용자 디바이스(400)로부터 자연어를 수신하여, 상기 전처리부(120)를 통해 상기 학습모델에 입력할 수 있는 데이터로 변환할 수 있도록 한다.
또한 전처리부(120)는 학습데이터 데이터베이스(200)에 저장된 학습데이터를 로딩하여, 상기 학습모델 생성부(130)에서 수행되는 기계학습 방법에 따라 상기 로딩한 학습데이터를 전처리한다.
한편 학습데이터는 특정 프로그램 코드에 인덱스된 one-hot 인코딩 방식으로 구성된 프로그램 코드 레이블과 해당 프로그램 코드 레이블에 대한 자연어가 1:1로 매핑된 매핑테이블 형태로 학습데이터 데이터베이스(200)에 저장된다.
또한 학습모델 생성부(130)는 CNN, RNN 중 적어도 하나의 기계학습 방법을 통해 상기 전처리된 학습데이터를 학습하여 학습모델을 생성할 수 있다.
따라서, 상기 전처리부(120)는 상기 학습모델 생성부(130)가 CNN을 통해 기계학습을 수행하는 경우, 상기 학습데이터가 CNN에 적합하도록 상기 매핑테이블의 자연어와 프로그램 코드 간의 매핑관계를 수치화하여 이미지화하고, 상기 이미지화한 학습데이터를 학습데이터 데이터베이스(200)에 저장한다.
이후, 학습모델 생성부(120)는 상기 이미지화한 학습데이터를 입력받아 특정 자연어에 대한 프로그램코드를 추정할 수 있도록 하는 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.
한편 상기 매핑관계를 수치화한 각각의 이미지는 특정 자연어와 프로그램 코드 레이블 간의 매핑관계를 유일하게 중복되지 않도록 설정된다.
또한 CNN을 구성하는 네트워크의 크기는 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 상기 학습데이터의 업데이트 또는 변경에 따라 상기 네트워크의 크기가 점진적으로 커지도록 구성될 수 있다. 즉, 상기 CNN의 네트워크는 학습해야 되는 전체적인 학습데이터의 용량에 적응적으로 대응할 수 있도록 구성된다. 이에 따라 상기 CNN 네트워크의 뎁스는 상기 네트워크의 크기에 따라 가변적으로 설정될 수 있다.
또한 상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하여 구성되며, 상기 이미지 슬라이스는 상기 자연어, 프로그램코드 및 매핑관계를 수치화하는 정도에 따라 바이너리 이미지, 그레이 스케일 이미지, 컬러 이미지 또는 이들의 조합을 포함한다. 예를 들어, 상기 자연어, 프로그램코드 및 이의 매핑관계를 0 또는 1로 수치화하는 경우 바이너리 이미지로 상기 학습데이터를 변환할 수 있으며, 0 ~ 255 범위로 수치화하는 경우 그레이 스케일 이미지로 상기 학습데이터를 변환할 수 있다. 상기 이미지의 해상도는 상기 CNN 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성된다. 한편 상기 CNN을 위한 전처리 과정은 도 3을 참조하여 상세히 설명하도록 한다.
또한 전처리부(120)는 상기 학습모델 생성부(130)가 RNN을 통해 기계학습을 수행하는 경우, 상기 학습데이터가 RNN에 적합하도록 상기 매핑테이블의 자연어와 프로그램 코드 레이블 간의 매핑관계를 수열로 수치화한다.
이후, 학습모델 생성부(120)는 상기 자연어에 대한 프로그램 코드 레이블 간의 매핑관계를 수치화한 복수의 수열을 입력받아 학습을 수행하여, 사용자 음성으로부터 특정 프로그램 코드를 추정할 수 있도록 하는 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.
한편 상기 매핑관계를 수치화한 각각의 수열은 특정 자연어와 프로그램 코드 간 레이블의 매핑관계를 유일하게 중복되지 않도록 설정된다.
또한 RNN을 구성하는 네트워크의 크기는 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 상기 학습데이터의 업데이트 또는 변경에 따라 상기 네트워크의 크기가 점진적으로 커지도록 구성될 수 있다. 즉, 상기 CNN의 네트워크는 학습해야 되는 전체적인 학습데이터의 용량에 적응적으로 대응할 수 있도록 구성된다. 이에 따라 상기 CNN을 통한 기계학습과 같이 상기 CNN 네트워크의 뎁스 또한 상기 CNN 네트워크의 크기에 따라 가변적으로 설정될 수 있다.
또한 상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함한다. 한편 상기 비트열의 사이즈는 상기 CNN 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성된다. 한편 상기 CNN을 위한 전처리 과정은 도 4를 참조하여 상세히 설명하도록 한다.
또한 학습모델 생성부(130)는 상기 전처리부(120)에 의해 전처리한 학습데이터를 학습데이터 데이터베이스(200)로부터 로딩하여 학습함으로써, 사용자 디바이스(400)로부터 수신되는 사용자 음성에 대응하는 프로그램 코드를 추정하기 위한 학습모델을 생성한다. 한편 학습모델 생성부(130)는 CNN, RNN 중 적어도 하나에 대한 기계학습 방법을 통해 기계학습을 수행할 수 있으며, 상기 학습데이터는 상기 학습모델 생성부(130)에서 수행하는 기계학습 방법에 따라 전처리됨은 상술한 바와 같다.
또한 상기 학습모델 생성부(130)에서 생성된 학습모델은 사용자 디바이스(200)에서 인식되거나, 상기 음성인식부(110)에서 인식한 사용자 음성을 토대로 프로그램 코드를 추정하기 위한 것으로, 상기 학습모델의 입력은 상기 인식한 사용자의 음성에 대한 자연어를 전처리한 데이터이며, 출력은 해당 자연어에 대한 프로그램 코드이다.
또한 학습모델 생성부(130)는 특정 자연어에 대한 프로그램 코드를 알고 있으므로, 상기 학습과정에 있어서 백프로퍼게이션(back propagation)방법을 적용하여 기계학습 네트워크(즉, RNN 또는 CNN 네트워크)의 가중치를 조정함으로써, 상기 학습모델을 생성하기 위한 기계학습 네트워크의 정확도를 향상시킬 수 있도록 한다.
또한 프로그램 코드 추정부(140)는 상기 학습모델 생성부(130)를 통해 학습모델이 생성된 이후, 사용자로부터 입력되는 사용자의 음성에 대한 자연어가 입력되는 경우, 상기 학습모델을 학습모델 데이터베이스(300)로부터 로딩하여 상기 로딩한 학습모델에 상기 자연어를 적용함으로서, 해당 자연어에 대응되는 프로그램 코드를 추정하여 사용자 디바이스(400)로 제공한다.
이때, 제공되는 프로그램 코드는 해당 사용자가 요청한 사용자 음성에 대한 프로그래밍 언어(예: JAVA, C++ 등등)이다.
한편 사용자 음성에 대한 자연어는 전처리부(120)에 의해 학습데이터를 전처리하는 과정과 동일한 과정을 통해 전처리된 데이터이다.
즉, 학습모델 생성부(130)가 CNN을 통해 학습데이터를 학습하여 학습모델을 생성하는 경우 상기 사용자 음성에 대한 자연어는 이미지화되며, 상기 학습모델 생성부(130)가 RNN을 통해 학습데이터를 학습하여 학습모델을 생성하는 경우 상기 사용자 음성에 대한 자연어는 수열 슬라이스로 전처리된다.
또한 검증부(150)는 상기 프로그램코드 추정부(140)에서 추정한 프로그램 코드와 상기 추정한 프로그램 코드의 기반이 된 사용자 음성에 대한 자연어를 특정 권한을 가지는 사용자 혹은 관리자(예: 음성인식을 통한 인공지능 프로그램코딩 장치(100)에서 특정 권한을 준 프로그래밍 언어에 대한 전문가)에게 실시간 혹은 주기적으로 제공하여 상기 생성한 프로그램코드에 대한 검증을 수행할 수 있도록 한다.
한편 상기 특정 권한을 가지는 사용자 혹은 관리자는 검증부(150)로부터 수신한 자연어 및 프로그램 코드를 확인하여, 상기 자연어에 대하여 생성한 프로그램코드가 최적의 프로그램코드인지를 확정하고 상기 확정한 결과에 따라 상기 학습데이터 데이터베이스를 업데이트할 수 있도록 한다.
다시 말해, 상기 특정 권한을 가지는 사용자 혹은 관리자는 검증결과에 따라 상기 학습데이터 데이터베이스(200)에 저장되는 자연어와 프로그램 코드 레이블의 매핑관계를 새롭게 생성하여 추가하거나, 변경할 수 있다. 예를 들어, 상기 사용자 혹은 관리자는 검증부(150)를 통해 수신한 자연어에 대한 프로그램코드가 최적의 결과가 아닌 경우, 새롭게 자연어와 상기 자연어에 해당하는 프로그램 코드에 대한 프로그램 코드 레이블을 포함하는 업데이트 데이터를 상기 검증부(150)로 제공할 수 있으며, 상기 검증부(150)를 상기 수신한 업데이터 데이터를 학습데이터 업데이트부(160)로 제공하여 학습데이터 데이터베이스(200)를 업데이트할 수 있도록 한다.
또한 학습데이터 업데이트부(160)는 상기 검증부(150)로부터 검증결과에 따른 업데이트 데이터를 수신한 경우, 상기 수신한 업데이트 데이터를 학습데이터 데이터베이스(200)에 반영함으로써, 상기 학습데이터 데이터베이스(200)를 업데이트 한다. 한편 상기 업데이트는 검증부(140)의 정책(즉, 검증과정을 실시간 혹은 주기적으로 수행)에 따라 실시간 혹은 주기적으로 수행된다.
또한 학습모델 생성부(130)는 학습데이터 데이터베이스(200)가 업데이트되는 경우, 상기 업데이트된 학습데이터를 반영하여 기존에 생성된 학습모델보다 정확도 및 신뢰도가 높은 학습모델을 새롭게 생성하며, 상기 생성한 학습모델을 학습모델 데이터베이스(300)에 저장한다. 이러한 과정을 반복적으로 수행하는 경우, 상기 학습부(130)를 통해 생성되는 학습모델을 점점 고도화되며, 이를 통해 사용자 음성으로부터 최적의 프로그램코드를 생성할 수 있도록 한다.
도 3은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 CNN을 통해 기계학습을 수행하는 경우, CNN에 입력되는 입력 데이터의 전처리를 과정을 보인 도면이다.
도 3에 도시한 바와 같이 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)에서 CNN을 통해 기계학습을 수행하는 경우, 입력 데이터의 전처리 과정은, 우선 학습데이터 데이터베이스(200)로부터 학습데이터를 로딩한다.
학습데이터는 자연어와 해당 자연어에 대응되는 프로그램 코드 레이블과 유일성을 가지며 매핑되어 있다. 또한 프로그램 코드 레이블은 상기 자연어에 대응되는 특정 프로그램 코드와 레이블링 되어 있다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 각 자연어는 소정의 과정에 따라 수치화되어 하나의 이미지 슬라이스에 각각 부여되고, 상기 각 이미지 슬라이스에 레이블링을 수행하여 상기 각 이미지 슬라이스에 프로그램 코드 레이블을 부여한다.
상기 프로그램 코드 레이블은 one-hot 인코딩 형식으로 구성되며, 상기 각 프로그램 코드 레이블은 특정 프로그램 코드와 각각 인덱스되어 있으며, 상기 프로그램 코드는 상기 자연어에 대해 하나의 완성된 프로그램 라인을 의미한다. 즉, 상기 프로그램 코드는 단순히 하나의 코드(a = b)뿐만 아니라 sum(), printf() 등과 같은 완전한 함수를 나타낼 수 있다. 이에 따라 상기 사용자는 사용자 음성을 순차적으로 입력함으로서, 복수의 프로그램 코드를 연결할 수 있도록 하여 하나의 완전한 프로그램을 생성할 수 있다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 레이블링을 수행한 복수의 이미지 슬라이스를 특정 해상도(예: 32 x 32)를 가지는 이미지로 이미지화하여 이미지 데이터를 생성한다.
한편 상기 해상도는 학습되는 학습데이터의 전체 용량에 따라 지속적으로 추가할 수 있도록 구성된다. 즉, 음성인식 기반 인공지능 프로그램코딩 장치(10)는 상기 해상도를 확장해 가면서 상기 학습데이터를 적응적으로 학습할 수 있도록 한다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 이미지 데이터를 CNN에 입력함으로써, 자연어와 프로그램 코드 레이블 간의 매핑관계를 학습하여 특정 자연어에 대한 프로그램 코드를 출력할 수 있도록 하는 학습모델을 생성할 수 있도록 한다.
상기에서 설명한 것과 같이, 상기 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(100)가 CNN을 통해 학습을 수행하는 경우, 학습데이터를 CNN에 적용하기 위해 수행된다.
도 4는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 RNN을 통해 기계학습을 수행하는 경우, RNN에 입력되는 입력데이터의 전처리 과정을 보인 도면이다.
도 4에 도시한 바와 같이, 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)에서 RNN을 통해 기계학습을 수행하는 경우, RNN에 입력되는 입력데이터의 전처리 과정은, 우선 상기 음성인식 기반 인공지능 프로그램 코딩 장치(100)는 자연어와 프로그램 코드 레이블이 매핑되어 저장된 학습데이터를 학습데이터 데이터베이스(200)로부터 로딩한다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 각 자연어를 소정의 과정에 따라 수치화하여 하나의 수열로 생성하여, 상기 생성한 각 자연어에 대한 각각의 수열을 하나의 수열 슬라이스에 각각 부여한다. 이때, 상기 수열 슬라이스는 적어도 하나 이상의 비트열에 대한 조합을 포함하여, 상기 비트열의 사이즈는 RNN 네트워크의 크기에 따라 지속적으로 추가될 수 있다. 즉, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 비트열의 크기를 확장할 수 있도록 하여 상기 학습데이터를 적응적으로 학습할 수 있도록 한다.
다음으로 상기 각 수열 슬라이스에 레이블링을 수행하여 상기 각 수열 슬라이스에 프로그램 코드 레이블을 부여하여 최종적인 소스 수열을 생성한다. 한편 상기 프로그램 코드 레이블은 one-hot 인코딩 형식으로 구성됨은 상술한 바와 같으며 이때, 상기 프로그램 코드 레이블은 상기 자연어에 대응하는 프로그램 코드에 대한 타겟 수열이 된다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 생성한 소스 수열을 RNN에 입력함으로써, 자연어와 프로그램 코드 레이블 간의 매핑관계를 학습하여 특정 자연어에 대한 프로그램 코드를 출력할 수 있도록 하는 학습모델을 생성할 수 있도록 한다.
도 4를 참조하여 설명한 것과 같이, 상기 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(100)가 RNN을 통해 학습데이터에 대한 학습을 수행하는 경우, 상기 학습데이터를 RNN에 적용할 수 있도록 하기 위해 수행된다.
도 5는 본 발명의 일 실시예에 따른 CNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.
도 5에 도시한 바와 같이, 음성인식 기반 인공지능 프로그램코딩 장치(100)의 학습모델 생성부(130)에서 CNN을 통해 학습데이터를 학습하는 경우, 상기 CNN의 학습구조는 전처리과정을 통해 이미지화된 학습데이터를 입력받은 입력레이어, 특정 크기의 커널(kernel)을 이용하여 상기 커널과 상기 이미지의 특정 부분을 컨볼루션(convolution)하는 컨볼루션 레이어, 상기 컨볼루션한 특정 부분을 최대값이나 평균값으로 풀링하여 서브샘플링(subsampling)을 수행하는 풀링레이어(pooling layer) 및 완전연관레이어(fully connected layer)로 구성된다.
또한 입력레이어는 전처리 과정을 통해 이미지화된 학습데이터를 입력받으며, 상기 컨볼루션 레이어는 특정 가중치를 가지는 커널을 미리 설정한 스트라이드(상기 커널의 이동단위를 의미함)에 따라 이동해 가면서 상기 이미지의 특정 부분과 상기 커널의 가중치를 컨볼루션하여, 상기 이미지의 특정 부분에 대한 특징 맵(feature map)을 생성하여 출력한다.
다음으로 풀링레이어는 맥스 풀링(max pooling) 또는 평균값 풀링(average pooling)방법을 통해 상기 커널과 스트라이드의 크기에 따라 상기 특징 맵을 풀링함으로써, 적어도 하나 이상의 서브 이미지 데이터로 서브 샘플링한다.
또한 상기 CNN은 상기 컨볼루션과 서브 샘플링 과정을 반복적으로 수행하여 특정 자연어에 대한 프로그램 코드 레이블에 대한 특징 맵을 생성할 수 있도록 한다.
다음으로 상기 완전연관레이어는 상기 프로그램 코드 레이블에 대한 특징 맵을 연결시켜 특정 자연어에 대한 프로그램 코드를 출력할 수 있도록 한다.
이러한 과정을 통해 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 자연어, 프로그램 코드 및 상기 자연어와 프로그램 코드 간의 매핑관계에 대한 학습데이터를 학습할 수 있다. 또한 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 학습데이터의 업데이트를 반영하여 고도화된 학습모델을 생성함으로서, 사용자 음성에 대한 최적화된 프로그램코드를 추정하여 사용자에게 제공할 수 있다.
또한 음성인식 기반 인공지능 프로그램코딩 장치(100)는 특정 자연어와 이에 해당하는 프로그램코드를 미리 알고 있으므로, 상기 학습과정에 있어서 백프로퍼게이션 방법을 통해 상기 CNN의 네트워크에 대한 가중치를 조정할 수 있으며, 이를 통해 상기 CNN 네트워크의 정확도를 향상시킬 수 있다.
도 6은 본 발명의 일 실시예에 따른 RNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.
도 6에 도시한 바와 같이 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)의 학습모델 생성부(130)에서 RNN을 통해 학습데이터를 학습하는 경우, RNN의 구조는 엔코더(encoder) 및 디코더(decoder)로 지칭되는 RNN 네트워크를 포함하여 구성될 수 있다.
상기 엔코더는 전처리 과정을 통해 생성한 소스 수열의 수치값을 순차적으로 입력받아, 내부노드의 상태값으로 축적하고, 상기 각 내부노드의 가중치에 따라 각 내부노드에 대한 최종상태를 디코더로 전달한다.
또한 상기 디코더는 상기 엔코더로부터 전달된 소스 수열에 대한 최종상태를 상기 디코더를 구성하는 각 내부노드의 가중치에 따라 상기 소스 수열에 대한 타겟 수열(즉, 프로그램 코드 레이블)의 수치값을 하나씩 출력한다.
즉, 상기 엔코더와 디코더를 구성하는 각각의 노드는 서로 다른 가중치를 가지고 있으며, 상기 엔코더는 소스 수열을 입력데이터로 순차적으로 받아 타임 스템프(time stamp)에 따라 피드 포워드 프로퍼게이션(feed forward propagation) 시켜 상기 엔코더의 제일 마지막 노드의 정보를 상기 디코더에 전달한다. 이때, 상기 디코더에 전달되는 정보는 상기 입력된 소스 수열의 정보를 모두 담고 있는 센텐스 리프리젠테이션(sentence representation)이라 볼 수 있다. 또한 상기 소스 수열의 정보를 받은 디코더는 상기 각 노드의 가중치에 따라 타겟 수열에 대한 수치값을 하나씩 출력함으로서, 특정 자연어에 대한 프로그램 코드를 추정할 수 있도록 한다.
도 7은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법이 실행되는 과정을 보인 흐름도이다.
도 7에 도시한 바와 같이, 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법이 실행되는 과정은 우선, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 기계학습의 입력데이터가 되는 학습데이터를 CNN이나 RNN에 적용할 수 있도록 상기 학습데이터를 전처리하여 학습데이터 데이터베이스(200)에 저장한다(S110).
도 3 및 도 4를 참조하여 설명한 것과 같이, 학습데이터를 학습하여 학습모델을 생성하기 위한 기계학습의 입력데이터를 생성하기 위해 수행되는 것으로, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 CNN을 통해 학습데이터를 학습하는 경우, 상기 학습데이터를 이미지화하는 전처리 과정을 수행하며, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 RNN을 통해 학습데이터를 학습하는 경우, 상기 학습데이터를 소스 수열로 변환하는 전처리 과정을 수행한다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습데이터 데이터베이스(200)로부터 전처리한 학습데이터를 로딩(S120)하고, 상기 로딩한 학습데이터를 학습(S130)하여 특정 자연어에 대한 특정 프로그램코드를 생성하기 위한 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.
한편 상기 학습은 RNN 혹은 CNN을 통해 수행될 수 있음은 상술한 바와 같다.
이후, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 사용자 디바이스(400)로부터 프로그램코딩을 위한 사용자 음성을 수신한 경우(S210), 상기 수신한 사용자 음성을 인식하기 위해 자연어 처리과정을 수행하고, 상기 자연어 처리과정을 통해 생성한 자연어를 전처리한다(S220).
한편 사용자 음성에 대한 자연어는 음성인식 기반 인공지능 프로그램코딩 장치(100)에서 처리되어 생성되는 것이 바람직하지만, 음성인식 엔진을 탑재한 사용자 디바이스(200)에서 자체적으로 처리되어 생성될 수 있다. 이때, 상기 사용자 디바이스(200)는 상기 생성한 자연어를 음성인식 기반 인공지능 프로그램코딩 장치(100)로 전송한다.
한편 사용자 음성에 대한 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(100)의 기계학습 방법(즉, RNN 또는 CNN)에 따라 상기 S110단계에서 수행하는 전처리 과정과 동일한 과정을 통해 수행된다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습모델 데이터베이스(300)로부터 학습모델을 로딩하고, 상기 로딩한 학습모델에 전처리한 사용자 음성에 대한 자연어를 입력한다. 이를 통해 상기 자연어에 대한 프로그램코드를 생성함으로서, 상기 사용자 음성에 상응하는 프로그램코드를 추정한다(S230).
즉, 상기 학습모델의 입력은 자연어이며, 상기 학습모델의 출력은 상기 자연어에 대한 프로그램 코드 레이블이며, 상기 프로그램 코드 레이블에 대한 프로그램 코드를 생성함으로써, 상기 프로그램 코드를 추정하게 된다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 추정한 프로그램코드를 해당 사용자가 구비한 사용자 디바이스(400)로 전송함으로써, 상기 추정한 프로그램코드를 사용자에게 제공한다.
한편 음성인식 기반 인공지능 프로그램코딩 장치(100)는 강화학습을 통해 상기 추정한 프로그램코드의 정확도와 신뢰성을 고도화시킬 있다.
즉, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 추정한 프로그램코드를 프로그래밍 언어에 대한 전문가와 같이 상기 특정 권한을 가지는 사용자 혹은 관리자에게 실시간 혹은 주기적으로 제공(S240)하여 검증과정(S250)을 수행할 수 있다.
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 검증과정의 검증결과에 따라 학습데이터를 업데이트(S260)할 수 있다.
즉, 상기 특정 권한을 가지는 사용자 혹은 관리자는 음성인식 기반 인공지능 프로그램코딩 장치(100)로부터 실시간 혹은 주기적으로 상기 사용자 음성에 대한 자연어 및 해당 자연어를 토대로 추정한 프로그램코드를 수신하고, 상기 자연어에 대한 프로그램코드가 최적의 결과가 아닌 경우에 해당 자연어에 해당하는 최적의 프로그램코드를 포함하는 업데이트 데이터를 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)로 제공하게 된다.
이때, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 제공받은 업데이트 데이터를 반영하여 학습데이터를 업데이트함으로써, 상기 학습데이터 데이터베이스(200)를 업데이트한다.
이후, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습데이터 가 업데이트 된 경우, 상기 업데이트된 학습데이터를 반영한 강화학습과정을 수행하여 새로운 학습모델을 생성한다. 이러한 과정을 반복함으로써, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 프로그램코딩을 위한 학습모델에 대한 정확성과 신뢰성을 획기적으로 고도화시킬 수 있다.
이상에서 설명한 바와 같이, 본 발명은 사용자의 음성을 기반으로 프로그램코드를 생성하기 위해 자연어와 상기 자연어에 해당하는 프로그램코드를 매핑한 학습데이터를 RNN 또는 CNN을 통해 학습하여 학습모델을 생성하며, 상기 사용자가 프로그램코드를 생성하기 위해 사용자 음성을 자연어로 변환하여 상기 학습모델에 입력함으로써, 단순히 사용자의 음성만으로도 프로그램코드가 자동으로 생성될 수 있도록 하는 효과가 있다.
또한 본 발명은 상기 생성한 프로그램코드에 대한 검증과정을 통해 학습데이터를 업데이트함으로써, 상기 학습데이터에 대한 강화학습을 수행하여 사용자 음성을 토대로 생성되는 프로그램코드의 정확도와 신뢰성을 더욱 향상시킬 수 있는 효과가 있다.
상기에서는 본 발명에 따른 바람직한 실시 예를 위주로 상술하였으나, 본 발명의 기술적 사상은 이에 한정되는 것은 아니며 본 발명의 각 구성요소는 동일한 목적 및 효과의 달성을 위하여 본 발명의 기술적 범위 내에서 변경 또는 수정될 수 있을 것이다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
10: 음성인식을 통한 인공지능 프로그램코딩 시스템
100: 음성인식을 통한 인공지능 프로그램코딩 장치
110: 음성인식부 120: 전처리부
130: 학습모델 생성부 140: 프로그램 코드 추정부
150: 검증부 160: 학습데이터 업데이트부
200: 학습데이터 데이터베이스 300: 학습모델 데이터베이스
400: 사용자 디바이스

Claims (12)

  1. 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 단계; 및
    사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 단계;를 포함하며,
    상기 학습모델을 생성하는 단계는,
    CNN(Convolutional Neural Network)을 통한 기계학습을 수행하는 단계;를 포함하며,
    상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며,
    상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며,
    상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
  2. 청구항 1에 있어서,
    상기 음성인식을 통한 인공지능 프로그램코딩 방법은,
    사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식 단계;
    상기 출력한 프로그램 코드를 검증하는 단계; 및
    상기 검증한 결과에 따라 상기 매핑관계를 추가하거나 변경하는 단계;를 더 포함하며,
    상기 음성인식은, 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
  3. 청구항 1에 있어서,
    상기 CNN의 네트워크에 대한 크기는,
    동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
    상기 네트워크의 깊이는,
    상기 크기에 따라 가변적으로 설정되며,
    상기 이미지의 해상도는,
    네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
  4. 삭제
  5. 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 단계; 및
    사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 단계;를 포함하며,
    상기 학습모델을 생성하는 단계는,
    RNN(Recursive Neural Network)을 통한 기계학습을 수행하는 단계;를 포함하며,
    상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
    상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되며,
    상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며,
    상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며,
    상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며,
    상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
  6. 삭제
  7. 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 학습모델 생성부; 및
    사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 프로그램 코드 추정부;를 포함하며,
    상기 학습모델 생성부는,
    CNN(Convolutional Neural Network)를 통한 기계학습을 수행하며,
    상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며,
    상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며,
    상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램 코딩 시스템.
  8. 청구항 7에 있어서,
    상기 음성인식을 통한 인공지능 프로그램코딩 시스템은,
    사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식부;를 더 포함하며,
    상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
  9. 청구항 7에 있어서,
    상기 CNN의 네트워크에 대한 크기는,
    동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
    상기 네트워크의 깊이는,
    상기 크기에 따라 가변적으로 설정되며,
    상기 이미지의 해상도는,
    네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
  10. 삭제
  11. 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 학습모델 생성부; 및
    사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 프로그램 코드 추정부;를 포함하며,
    상기 학습모델 생성부는,
    RNN(Recursive Neural Network)을 통한 기계학습을 수행하며,
    상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
    상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되며,
    상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며,
    상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며,
    상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며,
    상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
  12. 삭제
KR1020170159924A 2017-11-28 2017-11-28 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법 KR102027141B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170159924A KR102027141B1 (ko) 2017-11-28 2017-11-28 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170159924A KR102027141B1 (ko) 2017-11-28 2017-11-28 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190061488A KR20190061488A (ko) 2019-06-05
KR102027141B1 true KR102027141B1 (ko) 2019-11-04

Family

ID=66845101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170159924A KR102027141B1 (ko) 2017-11-28 2017-11-28 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102027141B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048075A (ko) 2020-10-12 2022-04-19 광운대학교 산학협력단 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법
US20230041718A1 (en) * 2021-08-09 2023-02-09 Kenneth Raymond Perry Automated code generation based on pseudo-code

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102283585B1 (ko) * 2019-07-03 2021-07-29 샘코포레이션 주식회사 인공지능을 이용한 이미지에 포함된 컬러 코드 업데이트 방법 및 장치
KR102087889B1 (ko) 2019-11-11 2020-03-11 손동우 화살표 이미지 기반 딥러닝 교육 시스템
CN111292721A (zh) * 2020-02-20 2020-06-16 深圳壹账通智能科技有限公司 代码编写方法、装置及计算机设备
RU2020110541A (ru) * 2020-03-13 2021-09-14 Сергей Станиславович Чайковский Способ и система применения искусственного интеллекта в разработке программного обеспечения
KR102434534B1 (ko) * 2020-07-24 2022-08-22 주식회사 레드브릭 블록 코딩을 지원하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
KR102324352B1 (ko) * 2021-06-22 2021-11-12 수테크시스템즈 주식회사 Ai 기반 프로그램 자동 생성 시스템
KR102579180B1 (ko) * 2021-07-13 2023-09-15 주식회사 크리모 음성 인식이 가능한 코딩 알고리즘 훈련 교구
DE102021132399A1 (de) 2021-12-09 2023-06-15 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren, System und Computerprogrammprodukt zum autonomen Konstruieren und/oder Designen von zumindest einer Komponente für eine Entität
CN115794065B (zh) * 2022-11-01 2023-11-03 中犇科技有限公司 一种基于ai语音交互的可视化智能编程方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106608A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and system for efficient voice-based programming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106608A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and system for efficient voice-based programming

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Aditya Desai et al, "Program Synthesis using Natural Language"(2015.09.) 1부.*
Francisco Javier Ordóñez et al, "Deep Convolutional and LSTM Recurrent Neural Networks for Multimodal Wearable Activity Recognition", Sensors Volume 16, Issue 1(2016.01.) 1부.*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048075A (ko) 2020-10-12 2022-04-19 광운대학교 산학협력단 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법
US20230041718A1 (en) * 2021-08-09 2023-02-09 Kenneth Raymond Perry Automated code generation based on pseudo-code

Also Published As

Publication number Publication date
KR20190061488A (ko) 2019-06-05

Similar Documents

Publication Publication Date Title
KR102027141B1 (ko) 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법
WO2021047286A1 (zh) 文本处理模型的训练方法、文本处理方法及装置
CN111897941B (zh) 对话生成方法、网络训练方法、装置、存储介质及设备
CN111325028B (zh) 一种基于深度分层编码的智能语义匹配方法和装置
CN111061847A (zh) 对话生成及语料扩充方法、装置、计算机设备和存储介质
CN111984766B (zh) 缺失语义补全方法及装置
WO2023160472A1 (zh) 一种模型训练方法及相关设备
CN110795945A (zh) 一种语义理解模型训练方法、语义理解方法、装置及存储介质
WO2020155619A1 (zh) 带情感的机器聊天方法、装置、计算机设备及存储介质
CN116932708A (zh) 大语言模型驱动的开放域自然语言推理问答系统及方法
CN113688244A (zh) 基于神经网络的文本分类方法、系统、设备及存储介质
CN111737432A (zh) 一种基于联合训练模型的自动对话方法和系统
CN111078847A (zh) 电力用户意图识别方法、装置、计算机设备和存储介质
CN112115247A (zh) 一种基于长短时记忆信息的个性化对话生成方法和系统
CN117234341B (zh) 基于人工智能的虚拟现实人机交互方法及系统
CN112417092A (zh) 基于深度学习的智能化文本自动生成系统及其实现方法
CN113778871A (zh) Mock测试方法、装置、设备及存储介质
CN116150338A (zh) 一种基于多轮对话的智能客服方法及系统
CN110516240B (zh) 一种基于Transformer的语义相似度计算模型DSSM技术
CN112905188A (zh) 一种基于生成式对抗gan网络的代码翻译方法及系统
CN113326367B (zh) 基于端到端文本生成的任务型对话方法和系统
CN110991279B (zh) 文档图像分析与识别方法及系统
CN116431827A (zh) 信息处理方法、装置、存储介质及计算机设备
CN116978367A (zh) 语音识别方法、装置、电子设备和存储介质
CN113626537B (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
GRNT Written decision to grant