맛집 리뷰 필터링 프로젝트 아이디어를 도출하게된 과정
맛집 프로젝트용으로 OCR API를 선택하기 위한 두번째 과정. 네이버 Clova API를 이용해서 OCR을 진행해 보았다!미리 이야기하자면, 느리다! ㅋㅋㅋㅋㅋ 하지만 Google Cloud 보다 진짜진짜 사용하기 편했고, 설명도 잘 나와있어서 어렵지 않았다. Clo
Google Vision OCR vs Naver Clova OCR 성능 비교
블로그 내용을 파싱해야 합니다! 우선 글자를 파싱해서 업체에서 받았는지를 검사해야 하고, 글자에서 안잡히면 사진을 분석해서 찾아야 합니다. 우선 첫번째 방법, 글자를 분석하려면 우선 HTML을 분석해서 글자를 추출해야 하기 때문에 자바에서 HTML을 파싱하는 방법을 찾
HTML 파싱 속도를 높여야 합니다. 자바로는 도저히 서비스 불가능한 속도가 나오기 때문에... 이전 검색에서 찾은 자료에서 압도적으로 빠른 성능이 나온 c언어의 libxml2를 이용해 보기로 하였습니다.
MS의 Azure에서도 OCR 기능을 지원합니다! azure도 사용하기 매우 편리했는데, 리소스를 만들면 알아서 API키와 엔드포인트를 줍니다.
java로 파싱할 경우, 건당 평균 1초정도가 소요된다. 서비스에 5건만 보여준다고 해도, 텍스트 파싱에만 5초를 사용하기에는 너무 긴 시간이다! 그래서 다른 라이브러리를 찾아보고 있지만, 자바 안에서 최대한의 성능을 뽑기 위해서 우선 병렬 처리를 해보기로 했다.
우선, 순수 자바로만 구성하여 간단하게 광고인지 판별하는 로직을 작성했습니다. 블로그 원문에서 특정 단어를 검색하고있으면 바로 광고로 판정없으면 마지막 이미지를 OCR 진행OCR 결과에서 특정 단어가 있으면 광고로 판정이런 흐름으로 작성하였습니다.
지금까지 구글 Vision API를 사용한 OCR 응답속도는 너무 느립니다. 속도 개선을 위해 바이너리 이미지 + base64 인코딩을 사용하였습니다.
아직 구체적으로 흐름을 계획한 단계는 아닙니다.필터링 결과만 보여줄지 (진짜 리뷰만 보여주기)모두 다 보여주는 대신에 이 글이 광고인지 아닌지를 보여줄지 둘 중 하나를 선택해야만 했습니다.
이전 포스트에서 요청을 보낼 때 이미지 URL을 base64 인코딩을 하였더니 OCR 처리 시간이 획기적으로 줄어들었습니다. google vision ocr 응답시간 개선 참고! 아무튼 이미지를 base64 인코딩하면 처리 속도가 빨라진다는 말! 왜 그럴까? 우선 g
QueryDSL 도입해보자.
JWT. 기본이라고 할 수 있죠. 카테캠에서는 프론트에서 쿠키로 구현할 시간이 부족하다고 하여 이전처럼 local storage를 이용하기로 했는데, 이번 see-realview 프로젝트는 시간이 널널하기 때문에 저장소 선택을 고민했습니다.
정말 재미있다! 아니 어떻게 이렇게 딱 맞는 주제가 등장하지? 안그래도 자연어 전처리(NLP)를 찾아보면서 도저히 갈피를 잡지 못하고 있었는데 수업시간에 두둥 등장. 바로바로 RNN, BERT 등등 자연어 처리를 위한 여러 모델이 등장한다
1차 배포 여정
정말 많은 기대를 하고 배포를 했고, 처음엔 에러가 없는 줄 알았으나.... 역시 유저 플로우는 아무도 모른다고. 정말 많은 오류들이 발생했고, 또 수정할 내용들이 정말 많다.... 로그를 자세히 남기지 않아 정말 어려웠다.