찾다
백엔드 개발파이썬 튜토리얼주식 감정 분석을 위한 Python 스크립트

"주식 시장은 모든 것의 가격은 알지만 아무것도 아닌 것의 가치는 아는 사람들로 가득 차 있습니다." - 필립 피셔

Python은 인기가 크게 높아지고 있으며 주식 시장 데이터에 대한 기본 계산부터 고급 통계 분석까지 광범위한 응용 프로그램에 사용됩니다. 이 기사에서는 금융계에서 Python의 지배력이 커지고 있음을 보여주는 Python 스크립트를 살펴보겠습니다. 데이터와 원활하게 통합하고, 복잡한 계산을 수행하고, 작업을 자동화하는 기능은 금융 전문가에게 귀중한 도구입니다.

이 스크립트는 Python을 사용하여 뉴스 헤드라인을 분석하고 시장 심리에 대한 귀중한 통찰력을 추출하는 방법을 보여줍니다. 자연어 처리(NLP) 라이브러리의 기능을 활용하여 스크립트는 특정 주식과 관련된 뉴스 기사의 감정적 어조를 분석합니다. 이 분석은 투자자에게 중요한 정보를 제공하여 다음과 같은 도움을 줄 수 있습니다.

  • 더 많은 정보를 바탕으로 투자 결정을 내리세요: 일반적인 시장 정서를 이해함으로써 투자자는 잠재적인 기회를 식별하고 위험을 완화할 수 있습니다.
  • 보다 효과적인 거래 전략 개발: 감정 분석을 거래 알고리즘에 통합하여 타이밍을 개선하고 잠재적으로 수익을 높일 수 있습니다.
  • 경쟁 우위 확보: Python의 다용성 덕분에 정교한 금융 모델을 개발하고 방대한 데이터 세트를 분석할 수 있어 경쟁이 치열한 금융 환경에서 상당한 이점을 얻을 수 있습니다.
import requests
import pandas as pd
from nltk.sentiment.vader import SentimentIntensityAnalyzer

# THIS NEEDS TO BE INSTALLED
# ---------------------------
# import nltk
# nltk.download('vader_lexicon')

# Function to fetch news headlines from a free API
def get_news_headlines(ticker):
    """
    Fetches news headlines related to the given stock ticker from a free API.

    Args:
        ticker: Stock ticker symbol (e.g., 'AAPL', 'GOOG').

    Returns:
        A list of news headlines as strings.
    """

    # We are using the below free api from this website https://eodhd.com/financial-apis/stock-market-financial-news-api
    url = f'https://eodhd.com/api/news?s={ticker}.US&offset=0&limit=10&api_token=demo&fmt=json'
    response = requests.get(url)
    response.raise_for_status()  # Raise an exception for bad status codes

    try:
        data = response.json()
        # Extract the 'title' from each article
        headlines = [article['title'] for article in data]
        return headlines
    except (KeyError, ValueError, TypeError):
        print(f"Error parsing API response for {ticker}")
        return []

# Function to perform sentiment analysis on headlines
def analyze_sentiment(headlines):
    """
    Performs sentiment analysis on a list of news headlines using VADER.

    Args:
        headlines: A list of news headlines as strings.

    Returns:
        A pandas DataFrame with columns for headline and sentiment scores (compound, positive, negative, neutral).
    """

    sia = SentimentIntensityAnalyzer()
    sentiments = []

    for headline in headlines:
        sentiment_scores = sia.polarity_scores(headline)
        sentiments.append([headline, sentiment_scores['compound'],
                           sentiment_scores['pos'], sentiment_scores['neg'],
                           sentiment_scores['neu']])

    df = pd.DataFrame(sentiments, columns=['Headline', 'Compound', 'Positive', 'Negative', 'Neutral'])
    return df

# Main function
if __name__ == "__main__":

    ticker = input("Enter stock ticker symbol: ")
    headlines = get_news_headlines(ticker)

    if headlines:
        sentiment_df = analyze_sentiment(headlines)
        print(sentiment_df)

        # Calculate average sentiment
        average_sentiment = sentiment_df['Compound'].mean()
        print(f"Average Sentiment for {ticker}: {average_sentiment}")

        # Further analysis and visualization can be added here
        # (e.g., plotting sentiment scores, identifying most positive/negative headlines)
    else:
        print(f"No news headlines found for {ticker}.")

출력:

Python Script for Stock Sentiment Analysis

수입품

  • 요청: 웹 API에서 데이터를 가져오기 위해 HTTP 요청을 만드는 데 사용됩니다.
  • pandas: DataFrame 형식으로 데이터를 생성하고 관리하는 데 사용되는 데이터 조작 라이브러리입니다.
  • SentimentIntensityAnalyzer nltk.sentiment.vader: 텍스트에 대한 감정 점수를 제공하는 감정 분석 도구입니다.

설정

  • NLTK 설정: 스크립트에는 NLTK를 사용하여 VADER 어휘를 다운로드해야 함을 나타내는 주석이 포함되어 있습니다. 이는 nltk.download('vader_lexicon')을 사용하여 수행됩니다.

기능

get_news_headlines(티커)

  • 목적: 특정 주식 종목 기호와 관련된 뉴스 헤드라인을 가져옵니다.
  • 매개변수:
    • 티커: 주식 티커 기호를 나타내는 문자열입니다(예: Apple의 경우 'AAPL').
  • 반환: 뉴스 헤드라인을 문자열로 나열한 목록입니다.
  • 구현:
    • 제공된 티커를 사용하여 가상 뉴스 API에 대한 URL을 구성합니다.
    • API에 GET 요청을 보내고 응답 성공 상태를 확인합니다.
    • JSON 응답을 구문 분석하여 헤드라인을 추출합니다.
    • try-Exception 블록을 사용하여 구문 분석 시 발생할 수 있는 오류를 처리합니다.

analyze_sentiment(헤드라인)

  • 목적: 뉴스 헤드라인 목록에 대한 감성 분석을 수행합니다.
  • 매개변수:
    • 헤드라인: 각각 뉴스 헤드라인을 나타내는 문자열 목록입니다.
  • 반품: 헤드라인과 감정 점수(복합, 긍정적, 부정적, 중립)가 포함된 Pandas DataFrame.
  • 구현:
    • SentimentIntensityAnalyzer를 초기화합니다.
    • 각 헤드라인을 반복하고 감정 점수를 계산하여 목록에 저장합니다.
    • 감정 데이터 목록을 Pandas DataFrame으로 변환합니다.

주요 실행

  • 스크립트는 사용자에게 주식 종목 기호를 입력하라는 메시지를 표시합니다.
  • get_news_headlines를 호출하여 해당 종목의 헤드라인을 가져옵니다.
  • 헤드라인이 발견되면 analyze_sentiment를 사용해 감성 분석을 수행합니다.
  • 결과 DataFrame이 인쇄되어 각 헤드라인에 감정 점수가 표시됩니다.
  • 헤드라인의 평균 복합 감정 점수를 계산하여 인쇄합니다.
  • 헤드라인이 발견되지 않으면 이를 알리는 메시지가 인쇄됩니다.

결론

Python은 다재다능하고 강력한 라이브러리 덕분에 최신 데이터 분석 및 계산 작업에 없어서는 안 될 도구입니다. 간단한 계산부터 복잡한 주식 시장 분석까지 모든 것을 처리하는 능력은 산업 전반에 걸쳐 그 가치를 강조합니다. Python이 지속적으로 발전함에 따라 데이터 기반 의사 결정에서 혁신과 효율성을 주도하는 Python의 역할은 더욱 확대되어 기술 발전의 초석으로서의 입지를 더욱 공고히 할 것입니다

참고: AI 지원 콘텐츠

위 내용은 주식 감정 분석을 위한 Python 스크립트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
파이썬 어레이를 어떻게 슬라이스합니까?파이썬 어레이를 어떻게 슬라이스합니까?May 01, 2025 am 12:18 AM

Python List 슬라이싱의 기본 구문은 목록 [start : stop : step]입니다. 1. Start는 첫 번째 요소 인덱스, 2.Stop은 첫 번째 요소 인덱스가 제외되고 3. Step은 요소 사이의 단계 크기를 결정합니다. 슬라이스는 데이터를 추출하는 데 사용될뿐만 아니라 목록을 수정하고 반전시키는 데 사용됩니다.

어떤 상황에서 목록이 배열보다 더 잘 수행 될 수 있습니까?어떤 상황에서 목록이 배열보다 더 잘 수행 될 수 있습니까?May 01, 2025 am 12:06 AM

ListSoutPerformArraysin : 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData 및 3) MemoryEfficiencyForsParsEdata, butMayHavesLightPerformanceCosceperationOperations.

파이썬 어레이를 파이썬 목록으로 어떻게 변환 할 수 있습니까?파이썬 어레이를 파이썬 목록으로 어떻게 변환 할 수 있습니까?May 01, 2025 am 12:05 AM

TOCONVERTAPYTHONARRAYTOALIST, USETHELIST () CONSTUCTORORAGENERATERATOREXPRESSION.1) importTheArrayModuleAndCreateAnarray.2) USELIST (ARR) 또는 [XFORXINARR] TOCONVERTITTOALIST.

Python에 목록이있을 때 배열을 사용하는 목적은 무엇입니까?Python에 목록이있을 때 배열을 사용하는 목적은 무엇입니까?May 01, 2025 am 12:04 AM

chooSearRaysOverListSinpyTonforBetTerferformanceAndMemoryEfficiencyInspecificscenarios.1) arrgenumericalDatasets : arraysreducememoryUsage.2) Performance-CriticalOperations : ArraysofferspeedboostsfortaskslikeApenorsearching.3) TypeSenforc

목록과 배열의 요소를 반복하는 방법을 설명하십시오.목록과 배열의 요소를 반복하는 방법을 설명하십시오.May 01, 2025 am 12:01 AM

파이썬에서는 루프에 사용하여 열거 및 추적 목록에 대한 이해를 나열 할 수 있습니다. Java에서는 루프를 위해 전통적인 사용 및 루프가 트래버스 어레이를 향해 향상시킬 수 있습니다. 1. Python 목록 트래버스 방법에는 다음이 포함됩니다. 루프, 열거 및 목록 이해력. 2. Java 어레이 트래버스 방법에는 다음이 포함됩니다. 루프 용 전통 및 루프를위한 향상.

Python Switch 문은 무엇입니까?Python Switch 문은 무엇입니까?Apr 30, 2025 pm 02:08 PM

이 기사는 버전 3.10에 도입 된 Python의 새로운 "매치"진술에 대해 논의하며, 이는 다른 언어로 된 문장과 동등한 역할을합니다. 코드 가독성을 향상시키고 기존 IF-ELIF-EL보다 성능 이점을 제공합니다.

파이썬의 예외 그룹은 무엇입니까?파이썬의 예외 그룹은 무엇입니까?Apr 30, 2025 pm 02:07 PM

Python 3.11의 예외 그룹은 여러 예외를 동시에 처리하여 동시 시나리오 및 복잡한 작업에서 오류 관리를 향상시킵니다.

파이썬의 기능 주석이란 무엇입니까?파이썬의 기능 주석이란 무엇입니까?Apr 30, 2025 pm 02:06 PM

Python의 기능 주석은 유형 확인, 문서 및 IDE 지원에 대한 기능에 메타 데이터를 추가합니다. 코드 가독성, 유지 보수를 향상 시키며 API 개발, 데이터 과학 및 라이브러리 생성에 중요합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경