0. 이 글은 누구를 위한 글인가요?
- 내가 관심 있는 키워드가 포함된 뉴스만 추천받고 싶어요.
- 부정적인 뉴스는 보고 싶지 않아요. 긍정적인 뉴스만 보여주세요!
- 크롤링 + 감성 분석 + 필터링 + 추천 자동화를 직접 구현해보고 싶어요.
1. 프로젝트 개요
- 입력 파일:
인공지능_블로그_감성분석결과.csv
- 사용 열: 제목, 날짜, 감성
- 기능:
- 사용자 키워드 입력
- 감성 == "긍정"인 텍스트만 필터링
- 제목에 키워드가 포함된 뉴스만 추출
- 최신 순으로 정렬, 최대 5개 추천
2. 필요한 라이브러리
pip install pandas
3. 데이터 불러오기
import pandas as pd
df = pd.read_csv("인공지능_블로그_감성분석결과.csv")
print(df[['제목', '감성', '날짜']].head())
| 제목 | 감성 | 날짜 |
|----------------------------------|------|------------|
| AI가 바꾸는 미래 사회 | 긍정 | 2025.03.01 |
| 블록체인으로 금융 혁신 | 긍정 | 2025.03.02 |
| AI 실직 위기 경고 | 부정 | 2025.03.03 |
4. 날짜 형식 정제 및 정렬
df['날짜'] = pd.to_datetime(df['날짜'], errors='coerce')
df = df.sort_values(by='날짜', ascending=False)
5. 추천 시스템 함수 정의
def recommend_news(df, keyword, top_n=5):
filtered = df[
(df['감성'] == '긍정') &
(df['제목'].str.contains(keyword, case=False, na=False))
]
return filtered[['날짜', '제목', '감성']].head(top_n)
6. 사용자 입력 & 실행
user_input = input("관심 키워드를 입력하세요: ")
recommended = recommend_news(df, user_input)
if recommended.empty:
print(f"\n'{user_input}' 키워드가 포함된 긍정 뉴스가 없습니다.")
else:
print(f"\n'{user_input}' 키워드로 추천된 긍정 뉴스 {len(recommended)}건:")
print(recommended.to_string(index=False))
입력 예시
관심 키워드를 입력하세요: 미래
출력 예시
[추천 뉴스]
날짜 제목 감성
2025-03-10 AI가 이끄는 미래 교육 혁신 긍정
2025-03-06 미래 직업 트렌드 총정리 긍정
2025-03-03 인공지능으로 보는 미래 산업 긍정
7. 전체 통합 코드
import pandas as pd
df = pd.read_csv("인공지능_블로그_감성분석결과.csv")
df['날짜'] = pd.to_datetime(df['날짜'], errors='coerce')
df = df.sort_values(by='날짜', ascending=False)
def recommend_news(df, keyword, top_n=5):
filtered = df[
(df['감성'] == '긍정') &
(df['제목'].str.contains(keyword, case=False, na=False))
]
return filtered[['날짜', '제목', '감성']].head(top_n)
user_input = input("관심 키워드를 입력하세요: ")
recommended = recommend_news(df, user_input)
if recommended.empty:
print(f"\n'{user_input}' 키워드가 포함된 긍정 뉴스가 없습니다.")
else:
print(f"\n'{user_input}' 키워드로 추천된 긍정 뉴스 {len(recommended)}건:")
print(recommended.to_string(index=False))
8. 기능 요약
기능 | 설명 |
감성 필터 | 감성 == '긍정'만 선택 |
키워드 필터 | 사용자 입력 키워드를 포함한 제목 필터링 |
최신 정렬 | 날짜 기준 최신 순 정렬 |
최대 5건 추천 | 상위 5개 뉴스 추천 |
9. 확장 아이디어
- 본문까지 포함한 내용 기반 추천 시스템 확장
- 긍정 확률 점수를 기반으로 신뢰도 높은 뉴스 우선 정렬
- 추천 결과를 텔레그램/이메일 등으로 알림 보내기