본문 바로가기
AI_RSS_트래픽 프로젝트

모르는 상태로 하는 RSS&분석&RAG 프로젝트(15) 크로스 플랫폼 키워드 추출 및 빈도 분석

by chol_rang 2025. 12. 30.

크로스 플랫폼 키워드 추출 및 빈도 분석

  1. 시간차 분석 (뉴스 ↔ SNS 전파 패턴)
  2. 트렌드 분석 (시간대별 변화, 플랫폼별)

를 진행하기 전 사전 이론에 대한 공부를 진행 후 대략적인 느낌 파악을 한뒤에 진행할 예정이라 

간단하게 정리 하는 시간을 갖기로했다. 

 

1. 크로스 플랫폼 키워드 추출 및 빈도 분석을 위해서는 

 

한국어 형태소 분석 기초, 키워드 추출에 대해서 알아야 한다. 

 

'형태소' 라는건 언어에서 "의미를 가진 최소 단위" 를 말한다.

여기서 의미는 단어가 가진 문법적인 의미 또는 관계적인 의미를 말한다. 

 

우리가 할건 형태소 분석이다. 

'형태소 분석' 이란 '언어'에서 '말'들을 '형태소'단위로 분리시키는 작업이다. 

예를들어, “행복은 너의 마음에 있다” 위 문장처럼 일상생활에서 자연스럽게 쓰는 말들을 ‘자연어’라고 칭한다. 자연어 문장을 형태소 분석기에 넣으면 아래와 같은 결과가 나온다.

“행복(/보통명사)+은(/보조사), 너(/대명사)+의(/격조사) 마음(/보통명사)+에(/격조사), 있(/보조용언)+다(/종결어미)+.(/마침표)”
                                                                   출처: https://wikidocs.net/213362

 

위의 내용처럼 한문장안에 명사, 보조사, 대명사, 조사, 용언, 어미 등 많은 품사들이 있고 

한국어에는 9개의 품사가 있어서 각 품사들을 분리하고 키워드를 뽑아내려면 보통 명사를 활용하기에 

분리 후 분석을 해야한다.

 

이쯤 알아보고 내가 사용할 한국어 형태소 분석기는 

KoNLPy(코엔엘파이)의 라이브러리안에있는  PyKOMORAN(Komoran) 로 진행할 예정이다.

한국어 정보처리를 위한 파이썬 패키지이다.

선정 이유는 

 

https://konlpy.org/ko/latest/morph/#comparison-between-pos-tagging-classes

의 비교 분석되어있는 공홈과 다른 블로그들을 살펴본 결과 

 

mecab이 제일 좋은 성능과 효율(시간)을 가지고 있었지만, macOS의 전용까지는 아니지만 로컬에 폴더를 생성 후 새로 깔아야하는 번거로움과 함께 수많은 에러를 마주할 시간이 부족하며 이 하나만으로 많은 시간을 허용할 수 없고

PyKOMORAN는

https://github.com/shineware/PyKOMORAN

 

GitHub - shineware/PyKOMORAN: (Beta) PyKOMORAN is wrapped KOMORAN in Python using Py4J.

(Beta) PyKOMORAN is wrapped KOMORAN in Python using Py4J. - shineware/PyKOMORAN

github.com

를 살펴보면 pip install과 함께 바로 사용해 볼 수 있다는게 큰 장점으로 다가왔다. 

 

사용하다가 분석이 애매하거나 성능과 효율(시간)이 많이 뒤쳐진다고 생각이 들 경우 튜닝 및 모델 변경을 해볼 생각이다.

 

2. 키워드 추출 방법

빈도기반(Frequency-based), 정규화( Normalization), TextRank(마지막 진행)

 

많은 키워드 추출 방법이 있지만 위의 내용을 먼저 진행 후 추후 필요시 충원할 예정이다. 

 

먼저 빈도 기반은 말 그대로 단어 출현 빈도를 계산하고 불용어 처리와 정규화를 하여 추출하는 방법이고

정규화는 플랫폼별(news,sns) 데이터 규모 차이를 보정하기 위해 

상대 빈도의 공식을 활용 ( 상대빈도 = 절대 빈도 / 전체 단어 수 ) 하여 보정후 

많은 data(news,SNS의 post)들이 쌓였을 때 그래프 기반 키워드를 추출하는 방식으로 진행할 예정이다. 

 

 

3. 플랫폼별 비교 분석

데이터 집계, 집합연산, 통계

 

플랫폼 별 키워드 빈도 집계(시간대별 도 집계)

교집합과 합집합을 이용해 상대 빈도 비교 및 플랫폼별 비율 계산을 해볼 예정이다. 

 

사실 작성하면서도 이게 다 뭔말인지 모르고 어떻게 해야하는건지도 잘 모르겠지만 

열심히 검색하면서 구현해볼 생각이다. 

 

다 만들고 분석도 잘 되는걸 확인하면 되게 행복할 것 같다.