텍스트마이닝 분석에서 가장 먼저 무너지는 건 통계 기법이 아니라 데이터 수집 단계다. 플랫폼마다 API 구조가 다르고, 어떤 곳은 API 자체가 없다. 이 격차를 어떻게 메우느냐가 이후 분석 전체의 재현 가능성을 좌우한다.

무엇을 분석했나

수집 엔진은 공식 API를 우선 사용한다(YouTube Data API, 멜론·글로우픽 내부 API 등). 정적 API로 접근이 어려운 동적 페이지는 Playwright 렌더링으로 폴백한다. 키워드와 기간(Phase)을 파라미터로 받아 페이지네이션을 자동 순회하고, 체크포인트를 저장해 중간에 차단·중단되어도 재개할 수 있게 했다. 수집 직후에는 링크·ID 기준 중복 제거, 연도별 기간 필터, 광고성·노이즈 텍스트 제거를 거쳐 분석용 통합 코퍼스로 정제한다. 이 과정에서 작성자 닉네임·아이디 등 개인 식별정보 컬럼은 산출물에서 제외·마스킹했다.

실제 사례로 네이버 블로그·카페 게시글 45,034건과 유튜브 영상 2,338편·댓글 22,744건, 멜론 음원 리뷰 5,118건, 글로우픽 제품 리뷰 9,156건(뷰티브랜드 A·B) 등 8만여 레코드를 수집했다.

무엇이 나왔나

첫째, 폴백 구조로 플랫폼 격차를 흡수했다. 공식 API가 있는 곳은 API로, 없는 곳은 Playwright 렌더링으로 전환하는 구조를 하나의 파이프라인 안에 통합해, 플랫폼별로 별도 스크립트를 관리할 필요가 없었다.

둘째, 수집이 곧바로 분석 자산이 됐다. 수집한 데이터는 속성기반 감성분석(ABSA)과 LDA·DTM 토픽모델링, 키워드 동시출현 네트워크로 바로 연결되어, 리뷰 텍스트를 속성별 감성 분포와 담론 변화 추이로 정량화했다.

셋째, 체크포인트 재개로 대량 수집의 안정성을 확보했다. 8만여 레코드 규모의 수집에서 중간 차단·중단이 발생해도 처음부터 다시 돌리지 않고 이어서 재개할 수 있는 구조를 넣었다.

심사위원이라면 여기를 본다

수집 파이프라인은 분석 결과보다 먼저 "이 데이터, 어떻게 모았나"라는 질문을 받는다. 이 작업에서 준비한 방어 포인트다.

포인트 1 — 재현 가능한 스크립트. 원천 수집부터 정제·분석 연계까지 재현 가능한 스크립트로 구성해, 논문 심사나 보고서 방어 상황에서 "이 수치는 어떤 절차로 나왔는가"를 코드로 되짚어 보일 수 있도록 설계했다.

포인트 2 — 개인정보 처리 원칙. 작성자 닉네임·아이디 등 개인 식별정보 컬럼을 산출물 단계에서부터 제외·마스킹해, 데이터 윤리 질의에 구조적으로 답할 수 있게 했다.

포인트 3 — 정제 기준의 명시성. 중복 제거는 링크·ID 기준, 기간 필터는 연도별, 노이즈 제거는 광고성 텍스트 기준으로 각각 규칙을 분리해, "무엇을 왜 걸러냈는가"를 단계별로 설명할 수 있다.

마치며

분석 기법이 정교해도 수집 단계가 재현 불가능하면 그 위의 모든 수치는 방어력을 잃는다. 플랫폼이 여러 개로 갈라진 데이터를 안정적으로, 그리고 설명 가능하게 모으는 파이프라인이 필요하다면 텍스트마이닝 분석 페이지에서 진행 방식을 확인할 수 있다. 관련 노하우는 뉴스레터 「강의실의 AI」 구독으로도 받아볼 수 있다.