Skip to content
게으른 엔지니어의 기술 블로그
Go back

고객사 뉴스 리포트 만들다가 3편 — 회사명만 검색해도 관련 없는 기사가 계속 나왔다

지난 글에서 모델 문제를 고치고 나서 실제 리포트 내용을 처음으로 제대로 들여다봤다. 그런데 한 보험 회사 항목에 “금감원, 전 금융권 교육 확대” 같은, 그 회사랑 전혀 상관없어 보이는 기사들이 섞여 있었다.

첫 번째 원인 — 키워드가 회사명이랑 따로 놀았다

각 회사마다 검색 키워드를 4개씩(회사명 1개 + 관련 키워드 3개) 두고 있었는데, 이 키워드들을 각자 따로 검색하고 있었다. 예를 들어 한 건설사의 “수주”라는 키워드는 그 회사명과 묶지 않고 “수주”라는 단어 하나만 단독으로 검색했다. 그러니 그 회사와 전혀 상관없는 다른 회사의 수주 뉴스도 다 걸려 들어왔다.

일단 각 회사의 키워드를 회사명 하나로만 줄였다. 노이즈가 확실히 줄긴 했는데, 완전히 없어지진 않았다.

두 번째 원인 — 검색 자체가 정확한 일치를 안 본다

회사명 하나만 검색해도 여전히 관련 없는 기사가 나오는 게 이상해서, 검색 결과 몇 개를 실제로 뜯어봤다. 회사명이 제목에도 본문 요약에도 전혀 안 들어간 기사가 섞여 있었다. 즉 검색 API 자체가 “이 문자열을 포함한 결과”가 아니라 “이 문자열과 유사한 결과”를 돌려주고 있었던 것이다.

늘려도 되고, 줄여도 안 됐다

후보를 넉넉히 확보하면 그중에서 걸러낼 여지가 커질 것 같아서, 한 번에 가져오는 검색 결과 개수를 늘려봤다(API가 실제로 허용하는 최대치까지). 근데 이것만으로는 노이즈 비율 자체가 줄지 않았다 — 후보가 많아져도 그중 관련 없는 것의 비율은 그대로였다.

결국 검색 API의 정렬 방식을 유사도 기준으로 바꾸는 것도 고려했는데, 이건 다른 문제를 만들 수 있었다. 유사도 기준 정렬은 기간과 무관하게 전체에서 가장 비슷한 것만 상위로 뽑아오기 때문에, 월간처럼 기간이 길어지면 그 상위권이 최근 기간 밖에 몰려있을 수 있었다. 결과의 정확도를 높이려다가 정작 원하는 기간의 기사를 못 잡는 문제가 생길 수 있었던 것이다.

결국 직접 걸러야 했다

그래서 검색 API의 정렬 방식은 그대로 두고, 검색 결과에서 회사명이 실제로 제목이나 요약 어딘가에 있는지를 직접 확인해서, 없으면 크롤링도 안 하고 걸러내도록 했다. 완벽하진 않다 — 여러 회사가 한 문장에 같이 언급되는 보도자료성 기사는 여전히 걸러지지 않는다. 그래도 회사명 자체가 아예 안 나오는 명백히 무관한 기사는 확실히 줄었다.

배운 점

노이즈를 줄이는 방법을 하나 적용하고 나서, 그걸로 끝났다고 생각하지 않고 실제 결과를 다시 열어본 게 이번 전체 과정의 핵심이었다. 키워드를 줄이는 것만으로 끝난 줄 알았는데 실제로 열어보니 안 끝나 있었고, 더 정밀해 보이는 정렬 방식(유사도순)도 실제로 이 프로젝트의 다른 요구사항 (기간 커버리지)과 부딪히는지 따로 확인해야 했다. 검색 API가 겉보기엔 “검색어”를 받는 것 같아도, 실제로 뭘 기준으로 결과를 돌려주는지는 직접 결과를 뜯어보기 전까진 모른다.


Share this post:

Previous Part
고객사 뉴스 리포트 만들다가 2편 — 돌연 요약이 다 실패로 나왔다, 모델이 사라진 걸 아무도 안 알려줬다
Next Part
고객사 뉴스 리포트 만들다가 4편 — 링크가 왜 깨지나 했더니, 제목에 대괄호가 있었다