OCR (Tesseract)을 사용하여 그림을 스캔하고 있습니다. 그러나 Tesseract는 "주방"과 "감자"와 같은 단어와 단어를 인식 할 때 항상 정확하지는 않습니다. "k1thn"과 "oolat0"으로 인식 될 수 있습니다.대리자 메서드가 완료되었을 때 NSArray의 다음 항목을 반복합니다.
이 올바르지 않은 단어를 '교정'하려면 라이브러리 PermissiveResearch을 사용하여 사전 정의 된 가능한 단어 목록을 검색하고 다시 일치 시키려합니다.
라이브러리는 놀랍게도 잘 작동하지만 한 가지 단점이 있습니다. 대형 데이터 소스에서이라는 단어를 으로 검색하면 빌드됩니다. OCR 스캔의 결과는 여러 단어의 NSArray입니다.
그래서 할 수있는 논리적 인 일이 같은 NSArray를 반복하는 것입니다 :
for (ScannedWord *scannedWord in inputArray) {
[[PermissiveResearchDatabase sharedDatabase] searchString:scannedWord.name withOperation:ScoringOperationTypeExact];
}
I는 데 문제의 검색 결과가 위임 방법에 잡힌 것을 (-(void)searchCompletedWithResults:(NSArray *)results
)입니다 검색이 끝나면 번만 이라고합니다. 비록 NSArray를 반복하고 [[PermissiveResearchDatabase sharedDatabase] searchString:scannedWord.name withOperation:ScoringOperationTypeExact];
을 여러 번 호출한다고해도 말입니다.
이 라이브러리를 사용하여 NSArray에서 허용 검색을 수행하려면 어떻게해야합니까?
아니면 다른 라이브러리를 사용하는 다른 접근 방식을 권장합니까?
봐 같은 것을 사용할 수 있어야 여부를 명확하지 않다 : withOperation : '. 한 번에 하나씩 만 허용되며 검색은 비동기 적으로 수행됩니다. 따라서 루프가 검색을 시작하지만 각 반복은 이전 검색을 취소하고 새 반복을 시작합니다. 그래서 마지막 하나만 완료됩니다. – rmaddy
@rmaddy. 내 질문은이 라이브러리를 동 기적으로 사용하는 방법 또는 여러 가지 검색을 허용하는 다른 방법입니다. – Galip
해당 라이브러리를 살펴보면 편리한 메소드 인 searchString : withOperation :을 사용하는 대신 기본 작업을 사용해야하며,이를 자신의 큐에서 자체 완성 블록으로 대기열에 넣을 수 있습니다. 'searchString : withOperation :'에 대한 소스 코드와 문서 (https://github.com/leverdeterre/PermissiveResearch#create-your- first-search-operation)의 예를 보면 – Paulw11