728x90
안녕하세요.
파이썬으로 감정분석을 해보았습니다.
기존에는 긍정, 부정적인 word를 일일히 0,1 index를 부여하면서 ML을 수행했습니다.
그런데 transformers라는 라이브러리를 이용하여 분석보고서를 모두 읽지 않고 감정을 알아낼 수 있습니다.
세계 경제전망에 대한 유명 보고서들을 모두 모아서 분석하면 신뢰도 높은 결과를 얻을 수 있을거 같습니다.
결론 : 보고서 전체를 읽지 않고 transformer 라이브러리를 이용하여 분석가능.
결과 : 약 74%의 확률로 부정적임을 알 수 있었습니다.
[{'label': 'NEGATIVE', 'score': 0.7457375526428223}]
cf) 카톡 대화내용을 내보내기하여 자기가 사용하는 단어가 긍정/부정인지를 통해 대화 습관을 개선하는데에도 도움이 될걸로 예상됩니다.
1. KDI 경제정보센터에서 2024 경제전망 보고서를 다운
- 다운로드 링크 : https://eiec.kdi.re.kr/userdata/nara/202312/202312.pdf
2. 구글 드라이브에 위 파일 업로드
3. 구글 드라이브 마운트하기
(보안때문에 로컬PC에 있는걸 Colab으로는 session맺은 동안만 임시로 올릴 수 는 있으나 아래방법이 영구적으로 사용할 수 있습니다)
from google.colab import drive
drive.mount('/content/drive', force_remount=True)
4. Colab 실행하기
- https://colab.research.google.com/drive
Google Colaboratory Notebook
Run, share, and edit Python notebooks
colab.research.google.com
5. 분석코드
from pdfminer.high_level import extract_text_to_fp
from pdfminer.layout import LAParams
from io import StringIO
import sys
# PDF 파일에서 특정 페이지의 텍스트 추출
def extract_text_from_pdf_pages(pdf_file_path, start_page, end_page):
output_string = StringIO()
with open(pdf_file_path, 'rb') as f_in:
extract_text_to_fp(f_in, output_string, laparams=LAParams(), output_type='text', codec=None,pagenos=range(start_page-1, end_page))
text = output_string.getvalue()
return text
# 사전에 학습된 감성 분석 모델 로드
sentiment_pipeline = pipeline("sentiment-analysis")
# 주어진 텍스트에 대한 감성 분석 수행
def analyze_sentiment(text):
try:
result = sentiment_pipeline(text[:512]) # 첫 512글자에 대한 분석
return result
except Exception as e:
print(f"감성 분석 중 오류 발생: {e}", file=sys.stderr)
return None
# PDF 파일 경로 및 페이지 설정
pdf_file_path = '/content/drive/My Drive/2024경제예상.pdf' # 업로드한 파일 이름으로 변경
start_page = 10 # 시작 페이지
end_page = start_page # 여기서는 시작 페이지만 분석하도록 설정했습니다.
# 텍스트 추출 및 감성 분석
text = extract_text_from_pdf_pages(pdf_file_path, start_page, end_page)
if text:
sentiment_result = analyze_sentiment(text)
print(sentiment_result)
'IT' 카테고리의 다른 글
포트스캐너 활용 (0) | 2024.11.11 |
---|---|
이미지 분석하기(with VGG16 모델) (0) | 2024.03.04 |
사진첩에서 강아지를 찾아라!(AI torchvision활용, 파이썬) (0) | 2024.02.18 |
공공데이터 Rest API 활용팁(부동산,정책 등) (0) | 2024.02.17 |
ML 분석시 최적의 조합 찾기 위한 방법 (0) | 2024.02.14 |