1 |
1
입력 프로그램을 인가받아 최소 구성 요소 단위로 구분하고, 구분된 각 구성 요소를 기지정된 방식으로 토큰화하여 다수의 토큰을 포함하는 토큰 테이블을 획득하는 토큰화부; 상기 토큰 테이블의 다수의 토큰 각각의 배치 순서에 따른 위치 정보를 생성하여 맵핑하는 위치 인코딩부; 상기 다수의 토큰 각각과 대응하는 위치 정보 각각을 벡터화하고 결합하여 다수의 입력 벡터를 획득하는 입력 임베딩부; 및 미리 학습된 인공 신경망으로 구현되어, 상기 다수의 입력 벡터를 인가받아 학습된 방식에 따라 인코딩 및 디코딩하여 상기 입력 프로그램의 다수의 토큰 중 오류 토큰을 수정하기 위한 다수의 수정 명령이 각 토큰의 위치에 대응하도록 출력하는 신경망을 포함하되, 상기 신경망은 학습 시에 입력 프로그램으로서 인가되는 학습 프로그램과 상기 학습 프로그램의 오류가 수정된 진리 프로그램으로 편집하기 위한 편집 정보 및 상기 학습 프로그램과 상기 진리 프로그램에서 서로 대응하는 토큰들 사이의 위치 정보를 동기화하는 동기 위치 정보 각각을 벡터화하고 결합된 업데이트 벡터에 의해 학습되는 프로그램 소스 코드 자동 수정 장치
|
2 |
2
제1항에 있어서, 상기 신경망은 순차 연결된 다수의 인코딩 셀을 포함하여, 상기 다수의 입력 벡터를 인가받아 미리 학습된 방식에 따라 인코딩하여 다수의 토큰 각각에 대응하는 다수의 히든 벡터를 추출하는 인코더; 및 순차 연결된 다수의 디코딩 셀을 포함하여, 상기 다수의 인코딩 셀 각각에서 추출된 히든 벡터를 인가받아 미리 학습된 방식에 따라 디코딩하여 상기 다수의 토큰 각각의 오류를 수정하기 위한 다수의 수정 명령을 각 토큰의 위치에 대응하여 출력하는 디코더를 포함하는 프로그램 소스 코드 자동 수정 장치
|
3 |
3
제2항에 있어서, 상기 다수의 인코딩 셀 각각은 다수의 입력 벡터 중 대응하는 입력 벡터와 이전 배치된 인코딩 셀에서 출력되는 히든 벡터를 인가받아 학습된 방식에 따라 인코딩하여 특징 벡터와 히든 벡터를 출력하는 프로그램 소스 코드 자동 수정 장치
|
4 |
4
제2항에 있어서, 상기 다수의 디코딩 셀 각각은 이전 배치된 디코딩 셀에서 추출된 히든 벡터를 인가받고, 상기 다수의 인코딩 셀 각각에서 추출된 히든 벡터와 함께 디코딩하여 상기 다수의 수정 명령을 획득하는 프로그램 소스 코드 자동 수정 장치
|
5 |
5
제4항에 있어서, 상기 신경망은 상기 다수의 인코딩 셀에서 추출된 다수의 히든 벡터와 각 디코딩 셀에서 추출된 히든 벡터를 각각 내적하고 정규화하여 다수의 디코딩 셀 각각에 대응하는 다수의 어텐션 스코어를 획득하고, 획득된 다수의 어텐션 스코어를 상기 다수의 인코딩 셀에서 추출된 다수의 히든 벡터에 가중하여 대응하는 디코딩 셀로 인가하는 어텐션부를 더 포함하는 프로그램 소스 코드 자동 수정 장치
|
6 |
6
제5항에 있어서, 상기 신경망은 상기 학습 프로그램과 상기 진리 프로그램의 각 토큰들 사이의 차이를 편집 거리 알고리즘에 따라 비교하여, 최소의 편집으로 상기 학습 프로그램이 상기 진리 프로그램으로 변환되도록 하기 위한 수정 명령으로 구성되는 다수의 편집 정보와 상기 학습 프로그램과 상기 진리 프로그램에서 서로 대응하는 토큰들 사이의 위치가 동일해지도록 동기화하는 다수의 동기 위치 정보가 획득되어 벡터화되고, 벡터화된 다수의 편집 정보와 대응하는 동기 위치 정보가 결합된 다수의 업데이트 벡터가 상기 다수의 디코딩 셀 중 대응하는 디코딩 셀에 인가되어 학습되는 프로그램 소스 코드 자동 수정 장치
|
7 |
7
제1항에 있어서, 상기 프로그램 소스 코드 자동 수정 장치는 상기 신경망에서 출력되는 다수의 수정 명령에 따라 상기 입력 프로그램의 오류를 수정하고, 역토큰화하여 오류가 제거된 수정 프로그램을 출력하는 코드 수정부를 더 포함하는 프로그램 소스 코드 자동 수정 장치
|
8 |
8
입력 프로그램을 인가받아 최소 구성 요소 단위로 구분하고, 구분된 각 구성 요소를 기지정된 방식으로 토큰화하여 다수의 토큰을 포함하는 토큰 테이블을 획득하는 단계; 상기 토큰 테이블의 다수의 토큰 각각의 배치 순서에 따른 위치 정보를 생성하여 맵핑하는 단계; 상기 다수의 토큰 각각과 대응하는 위치 정보 각각을 벡터화하고 결합하여 다수의 입력 벡터를 획득하는 단계; 및 미리 학습된 인공 신경망에 상기 다수의 입력 벡터를 입력하여, 학습된 방식에 따라 상기 입력 벡터를 인코딩 및 디코딩하여 상기 입력 프로그램의 다수의 토큰 중 오류 토큰을 수정하기 위한 다수의 수정 명령이 각 토큰의 위치에 대응하도록 출력하는 단계를 포함하되, 상기 신경망은 학습 시에 입력 프로그램으로서 인가되는 학습 프로그램과 상기 학습 프로그램의 오류가 수정된 진리 프로그램으로 편집하기 위한 편집 정보 및 상기 학습 프로그램과 상기 진리 프로그램에서 서로 대응하는 토큰들 사이의 위치 정보를 동기화하는 동기 위치 정보 각각을 벡터화하고 결합된 업데이트 벡터에 의해 학습되는 프로그램 소스 코드 자동 수정 방법
|
9 |
9
제8항에 있어서, 상기 각 토큰의 위치에 대응하도록 출력하는 단계는 순차 연결된 다수의 인코딩 셀이 포함된 상기 신경망의 인코더가 상기 다수의 입력 벡터를 인가받아 미리 학습된 방식에 따라 인코딩하여 다수의 토큰 각각에 대응하는 다수의 히든 벡터를 추출하는 단계; 및 순차 연결된 다수의 디코딩 셀을 포함하는 상기 신경망의 디코더가 상기 다수의 인코딩 셀 각각에서 추출된 히든 벡터를 인가받아 미리 학습된 방식에 따라 디코딩하여 상기 다수의 토큰 각각의 오류를 수정하기 위한 다수의 수정 명령을 각 토큰의 위치에 대응하여 출력하는 단계를 포함하는 프로그램 소스 코드 자동 수정 방법
|
10 |
10
제9항에 있어서, 상기 다수의 인코딩 셀 각각은 다수의 입력 벡터 중 대응하는 입력 벡터와 이전 배치된 인코딩 셀에서 출력되는 히든 벡터를 인가받아 학습된 방식에 따라 인코딩하여 특징 벡터와 히든 벡터를 출력하는 프로그램 소스 코드 자동 수정 방법
|
11 |
11
제10항에 있어서, 상기 다수의 디코딩 셀 각각은 이전 배치된 디코딩 셀에서 추출된 히든 벡터를 인가받고, 상기 다수의 인코딩 셀 각각에서 추출된 히든 벡터와 함께 디코딩하여 상기 다수의 수정 명령을 획득하는 프로그램 소스 코드 자동 수정 방법
|
12 |
12
제11항에 있어서, 상기 각 토큰의 위치에 대응하도록 출력하는 단계는 상기 다수의 히든 벡터를 추출하는 단계 이후, 상기 다수의 인코딩 셀에서 추출된 다수의 히든 벡터와 각 디코딩 셀에서 추출된 히든 벡터를 각각 내적하고 정규화하여 다수의 디코딩 셀 각각에 대응하는 다수의 어텐션 스코어를 획득하는 단계; 및 획득된 다수의 어텐션 스코어를 상기 다수의 인코딩 셀에서 추출된 다수의 히든 벡터에 가중하여 대응하는 디코딩 셀로 인가하는 단계를 더 포함하는 프로그램 소스 코드 자동 수정 방법
|
13 |
13
제12항에 있어서, 상기 신경망은 상기 학습 프로그램과 상기 진리 프로그램의 각 토큰들 사이의 차이를 편집 거리 알고리즘에 따라 비교하여, 최소의 편집으로 상기 학습 프로그램이 상기 진리 프로그램으로 변환되도록 하기 위한 수정 명령으로 구성되는 다수의 편집 정보와 상기 학습 프로그램과 상기 진리 프로그램에서 서로 대응하는 토큰들 사이의 위치가 동일해지도록 동기화하는 다수의 동기 위치 정보가 획득되어 벡터화되고, 벡터화된 다수의 편집 정보와 대응하는 동기 위치 정보가 결합된 다수의 업데이트 벡터가 상기 다수의 디코딩 셀 중 대응하는 디코딩 셀에 인가되어 학습되는 프로그램 소스 코드 자동 수정 방법
|
14 |
14
제8항에 있어서, 상기 프로그램 소스 코드 자동 수정 방법은 상기 신경망에서 출력되는 다수의 수정 명령에 따라 상기 입력 프로그램의 오류를 수정하고, 역토큰화하여 오류가 제거된 수정 프로그램을 출력하는 단계를 더 포함하는 프로그램 소스 코드 자동 수정 방법
|
15 |
15
제8항 내지 제14항 중 어느 한에 있어서, 상기 프로그램 소스 코드 자동 수정 방법을 수행하기 위한 컴퓨팅 장치에서 판독 가능한 프로그램 명령어가 기록된 기록 매체
|