아티클 관련 제품: TwinReader
들어가며
- Twinreader UI를 사용하지 않고 Template 작성하는 방법 중 정보 인식 단계에 대해 알아보겠습니다.
- 정보 인식 단계에는 키워드로 추출, 체크박스 데이터 추출, 가장 큰 테이블 데이터 추출, 선택적 추출 규칙이 있습니다
사전 준비 단계
- Template 저장 위치는 /[Data home]/twinreader/template 입니다.
- Command로 Template 작성하기 1의 과정이 선행된 뒤 아래 과정을 진행하여 주시기 바랍니다.
Template 열기
작성할 Template file을 선택하여 작성해 봅니다.
cd /[Data home]/twinreader/template vi jinryebiTemplate.js
Checkbox data 추출
checkbox data 추출은 적합한 값을 찾아 선정하고 keyword를 찾아 데이터를 추출하는 기능입니다.
"SearchByCheckbox": [ { "disabled": false, "keywordInfoList": [ { "labels": [ "요양기관종류" ], "allowableDepth": 1 } ], "checkboxLabelPattern": "의원|병원|보건" } ]
- keywordInfoList
- checkbox 와 매칭 되는 keyword를 찾기 위한 속성을 정의하는 곳입니다. - labels
- 추출할 checkbox의 keyword를 입력합니다. - allowableDepth
- checkbox keyword의 탐색 허용 범위를 선택하는 것으로 1~5까지 설정 가능합니다. - checkboxLabelPattern
- checkbox 좌우의 label이 작성한 pattern에 해당되면 checkbox와 label을 매핑합니다.
Keyword로 data 추출
keyword로 data 추출은 keyword를 기반으로 데이터를 추출하는 기능입니다.
"SearchByKeyword": [ { "disabled": false, "keywordInfo": { "labels": [ "본인부담금" ], "allowableDepth": 1 }, "valueDirectionType": "valuetype", "valueInfo": { "typeInfo": { "type": "number", "pattern": "" }, "filters": [ { "key": "relativeKeywordInfoList", "value": [ { "labels": [ "진찰료" ], "allowableDepth": 1 } ] } ] }
- keywordInfo-labels
- 검색 할 keyword를 설정합니다. - valueDirectionType
- keyword를 기준으로 값을 찾는 방향을 정의하는 것으로 keyword로 선언된 것은 제외합니다.
- valuetype : 모든 방향으로 값을 찾습니다.
right : keyword의 오른쪽 방향으로 찾습니다.
bottom : keyword의 아래쪽 방향으로 찾습니다. - valueInfo
- 추출 할 value의 type을 정의합니다. - valueInfo-type
- number : 숫자 타입의 data를 추출합니다.
- text : 문자 타입의 data를 추출합니다
- pattern : 추출할 data의 형식을 직접 정의하여 추출합니다. - value-labels
- 검색 할 keyword와 연관한 label로 추출 할 value의 대상을 입력합니다.
가장 큰 table data 추출
가장 큰 테이블 데이터 추출은 특정 column을 기준으로 전체 행의 값을 추출하고 다른 column의 값을 연관 정보로 추출하여 테이블의 전체 데이터를 추출합니다.
"LargestTableSearch": [ { "disabled": false, "keyColumnInfo": { "index": -1, "pattern": "" } } ]
- keyColumnInfo
- 추출 기준이 되는 column을 입력합니다. - 기준 column의 Index 를 입력합니다.
- 미 정의 시 행의 값이 가장 많이 있는 column을 기준으로 합니다. - 추출 부분
선택적 추출
선택적 추출은 앞선 3단계를 그룹화하고 데이터를 선택하여 추출하는 단계입니다.
{ "SelectiveSearch": [ { "name": "진료비총액,합계", "selectType": "selectall", "rules": [ { "ruleType": "SearchByKeyword", "rule": { "keywordInfo": { "labels": [ "진료비총액" ], "allowableDepth": 1 }, "valueDirectionType": "valuetype", "valueInfo": { "typeInfo": { "type": "number", "pattern": "" }, "filters": [ { "key": "", "value": null } ] }, "relativeValueKeywordInfo": [ { "labels": [], "allowableDepth": 1 } ], "includeRelativeLabel": false } }, { "ruleType": "SearchByKeyword", "rule": { "keywordInfo": { "labels": [ "합계" ], "allowableDepth": 1 }, "valueDirectionType": "valuetype", "valueInfo": { "typeInfo": { "type": "number", "pattern": "" }, "filters": [ { "key": "", "value": null } ] }, "relativeValueKeywordInfo": [ { "labels": [], "allowableDepth": 1 } ], "includeRelativeLabel": false } } ] } ], "plugin": "" }
- name
- 그룹 구별을 위한 이름 설정 - selectType
- 추출 결과 선택하는 부분입니다.
- selectone : 앞의 3단계(키워드로 데이터 추출, checkbox 데이터 추출, 가장 큰 테이블 데이터 추출)에서 수행한 결과 전부를 선택합니다.
- selectall : 앞의 3단계(키워드로 데이터 추출, checkbox 데이터 추출, 가장 큰 테이블 데이터 추출)에서 수행하면서 얻은 결과 값 중 첫 번째 결과 값을 선택합니다. - rules
- 그룹화 시킬 앞의 단계의 작성 코드를 넣어줍니다.
마무리
- Template 작성하는 방법 중 정보 인식 단계에 대해 알아보았습니다.
- 다음 단계인 후 처리 과정에 대하여 Plugin 작성하기를 참고하시기 바랍니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.