뭔말인지 모르겠는데 정답이 있는 상태에서 일부 오류에 대해서 커버하고 싶으면 symspell이랑 aho corasick으로 검색해서 잘 쓰까쓰면 됨. 간단한 경우면 symspell만 써도 거의 커버됨. - dc App
troublecoder(troublecoder)2025-05-25 06:40
답글
이미 비슷한 교정 로직하고 있음. Fuzzy 써서
ㅆㅇㅆ(124.216)2025-05-25 06:53
답글
문제는 이거임
OCR 특성상 비정형 데이터가 존나게 들어가고 값이 중간중간 못읽거나 하니까 그걸 읽게 하려고 Fuzzy로 정밀로 낮추고 올리고하면서 오류 보정하는거 이미Fuzzy로 좀 비슷하게 하고 있음. 아호 코라식은 어차피 비슷한거 다 넣고 하는식은데 지금도 비슷하게 구현함
@troublecoder
그니까 이게 형님 말대로는 기업 vs 기업 단위인데, 개인이 좆타트업 한테 받은 외주라서, 배보다 배꼽이 큼.
ㅆㅇㅆ(124.216)2025-05-25 07:07
답글
아니 이미 튜닝되어있음. 함 ocr 결과 넣고 회사라는 라벨 넣고 테스트 해봐. 저기 비로 테스트할수있음 - dc App
troublecoder(troublecoder)2025-05-25 07:07
답글
@troublecoder
확실히 행님이 파이썬은 나보다 훨씬 잘 알고 잘하는듯. 쩝.
ㅆㅇㅆ(124.216)2025-05-25 07:07
답글
@troublecoder
나중에 이거 기반으로 Saas 만들어 볼 생각인데 그때 한번 더 보겠음. 지금은 형님 제안을 하기에는 업체가 정해져있는게 아니라서 지금 한계가 있는듯. 형님이 잘 알고 있는건 맞는데, 지금 내 문제랑은 좀 다른계열인듯. 왜냐하면 형님은
"리스트 다 받은거 아니냐?"
이건데 보안상의 이유로 못받음
ㅆㅇㅆ(124.216)2025-05-25 07:09
답글
일단 너님 케이스에서는 리스트없는 상황이면 위에 허깅페이스 스페이스 모델 쓰면 될 것 같음 - dc App
troublecoder(troublecoder)2025-05-25 07:09
답글
일단 더이상의 성명은 필요없어보이고 위에 GLiNER 한번 테스트해보고 그래도 답없으면 사실상 해결 어려움 - dc App
troublecoder(troublecoder)2025-05-25 07:10
답글
@troublecoder
흠, 일단 지금 케이스상에서 모델 붙이는거 좀 많이 힘들지 않을까 고민중. 확실히 나중에 SaaS로 할때 고민해볼듯.
조언 감사
ㅆㅇㅆ(124.216)2025-05-25 07:11
답글
아니 일단 테스트해봐 저거 cpu로 돌려도 0.5초안에 답 나오는 모델임;; - dc App
troublecoder(troublecoder)2025-05-25 07:13
답글
@troublecoder
GLiNER처럼 transformers 기반의 NER(Named Entity Recognition) 모델을 사용하려면 별도의 추출 루틴이 필요한데 이거 어떻게 붙여야할지 솔직히 감이 좀 안잡혀서 생각해보겠음 조언은 감사
ㅆㅇㅆ(124.216)2025-05-25 07:16
답글
@troublecoder
글고 허깅 페이스 1기가 정도인데 고객이 바라는 코드에 비해서 어렵지 않나 싶음. api쓰면 유료니까. 일단은 좀 더 고민해보겠음
ㅆㅇㅆ(124.216)2025-05-25 07:19
답글
easyocr이 더 커;; 뭐 어째튼 뭐 내가 너의 상황을 자세히 모르니 어째튼 고생하셈 - dc App
troublecoder(troublecoder)2025-05-25 07:20
답글
@troublecoder
흠 일단 오케이 알려줘서 감사
ㅆㅇㅆ(124.216)2025-05-25 07:21
답글
@troublecoder
님이 나보다 잘 알아서 님 말 우선순위 높혀서 생각은 해보겠는데, 일단 보통 OCR 구현하는대로 해보고 정안되면 생각해보겠음
뭔말인지 모르겠는데 정답이 있는 상태에서 일부 오류에 대해서 커버하고 싶으면 symspell이랑 aho corasick으로 검색해서 잘 쓰까쓰면 됨. 간단한 경우면 symspell만 써도 거의 커버됨. - dc App
이미 비슷한 교정 로직하고 있음. Fuzzy 써서
문제는 이거임 OCR 특성상 비정형 데이터가 존나게 들어가고 값이 중간중간 못읽거나 하니까 그걸 읽게 하려고 Fuzzy로 정밀로 낮추고 올리고하면서 오류 보정하는거 이미Fuzzy로 좀 비슷하게 하고 있음. 아호 코라식은 어차피 비슷한거 다 넣고 하는식은데 지금도 비슷하게 구현함
아호 코라식은 넣으면 성능상의 문제가 있으니까. 일단 고려해봐야할듯
이해가 안되고 있음. 예시를 들어줄수있음?가짜가 아닌 진짜로 - dc App
@troublecoder def match_supplier(ocr_text: str, supplier_map: dict, fuzzy_threshold: int, my_company_names_normalized: List[str]) -> Optional[int]: """ OCR 텍스트에서 공급자명을 추출하고 fuzzy 매칭하여 행 번호 반환. 자사명 제외 로직이 extract_supplier_candidate로 이동. 이런식으로 처리중 list는 csv로 받고
@ㅆㅇㅆ(124.216) extract_supplier_candidate() 함수로 공급자: (주)삼성전자를 추출 → "삼성전자" 반환 normalize_text("삼성전자") → "삼성전자" (소문자, 특수문자 제거 등 수행) fuzz.partial_ratio("삼성전자", "samsung electronics") → 예: 80점 fuzzy_threshold = 65 → 매칭 성공 이런 느낌
fuzzy가 아마 sympell 알고리즘 구조상 더 느릴거같긴한데 어째튼 난 정답이랑 데이터값 얘기한거임 - dc App
@troublecoder 일단 둘 다 같이 쓸 예정이긴함. 일단 아호 코라식은 진짜 답도 없이 느려져서 이거는 안쓰는게 나을거 같음
안되는 케이스를 얘기해야지;; 그리고 한->영은 미리 구축해놓은거지? - dc App
kd tree가 느리다는 얘기는 들었어도 symspell은 초기화할때 사전만들때 빼고는 느릴 이유가 없엉 - dc App
@troublecoder 공급자 정답 목록이 없음... 그니까 내가 존나 답답한거임. 보안상의 이유로 못받아서 그냥 동적으로 계속 추측하면서 상호명 때려박으면서 하는거임... 영수증에 상호명이 없다
@troublecoder 그니까 납품업체가 정해져있으면 나도 존나 빠르게 할 수 있음 근데 납품 리스트가 없음 두루뭉술하게 30업체고 업체 직원이 몇곳 기억나는 곳 받아서 60업종중에 5개 받은후에 동적으로 찾으면서 하는거임
일단 한글로만 보면 나도 그런 케이스 많이 젖했는데 symspell이랑 aho corasick으로 다 해결함. 너같이 엔티티를 추출하는거라면 그냥 ocr 결과 잘 배치해서 GLiNER같은 모델 잘라봐 회사명같은거면 pii로 튜닝된 모델 끼우면 잘 찾아줌 - dc App
@troublecoder 답이 있었으면 symspell 썼음..
@troublecoder 흠 조언 감사 일단 아호 코라식은 느리다는 걸로 알고 있어서 지금도 배제하고 symspell은 적용할 수 있게 해보겠음
@troublecoder 일단 PII 튜닝 모델까지 하기에는 비용이 맞지 않고, 지금 완전 사실 OCR로 수동 체크중이라 일단 AI API 이용하면 솔직히 존나 쉬운데, 문제는 AI API가 유료라서 문제인듯
리스트없으면
https://huggingface.co/spaces/urchade/gliner_multi_pii-v1
이거로 한번 테스크해보고 적용해봐 - dc App
@troublecoder 그니까 이게 형님 말대로는 기업 vs 기업 단위인데, 개인이 좆타트업 한테 받은 외주라서, 배보다 배꼽이 큼.
아니 이미 튜닝되어있음. 함 ocr 결과 넣고 회사라는 라벨 넣고 테스트 해봐. 저기 비로 테스트할수있음 - dc App
@troublecoder 확실히 행님이 파이썬은 나보다 훨씬 잘 알고 잘하는듯. 쩝.
@troublecoder 나중에 이거 기반으로 Saas 만들어 볼 생각인데 그때 한번 더 보겠음. 지금은 형님 제안을 하기에는 업체가 정해져있는게 아니라서 지금 한계가 있는듯. 형님이 잘 알고 있는건 맞는데, 지금 내 문제랑은 좀 다른계열인듯. 왜냐하면 형님은 "리스트 다 받은거 아니냐?" 이건데 보안상의 이유로 못받음
일단 너님 케이스에서는 리스트없는 상황이면 위에 허깅페이스 스페이스 모델 쓰면 될 것 같음 - dc App
일단 더이상의 성명은 필요없어보이고 위에 GLiNER 한번 테스트해보고 그래도 답없으면 사실상 해결 어려움 - dc App
@troublecoder 흠, 일단 지금 케이스상에서 모델 붙이는거 좀 많이 힘들지 않을까 고민중. 확실히 나중에 SaaS로 할때 고민해볼듯. 조언 감사
아니 일단 테스트해봐 저거 cpu로 돌려도 0.5초안에 답 나오는 모델임;; - dc App
@troublecoder GLiNER처럼 transformers 기반의 NER(Named Entity Recognition) 모델을 사용하려면 별도의 추출 루틴이 필요한데 이거 어떻게 붙여야할지 솔직히 감이 좀 안잡혀서 생각해보겠음 조언은 감사
@troublecoder 글고 허깅 페이스 1기가 정도인데 고객이 바라는 코드에 비해서 어렵지 않나 싶음. api쓰면 유료니까. 일단은 좀 더 고민해보겠음
easyocr이 더 커;; 뭐 어째튼 뭐 내가 너의 상황을 자세히 모르니 어째튼 고생하셈 - dc App
@troublecoder 흠 일단 오케이 알려줘서 감사
@troublecoder 님이 나보다 잘 알아서 님 말 우선순위 높혀서 생각은 해보겠는데, 일단 보통 OCR 구현하는대로 해보고 정안되면 생각해보겠음