아티클 관련 제품: 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 작성하기를 참고하시기 바랍니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.