This project focuses on extracting and analyzing insights from earnings call transcripts of publicly listed companies. These transcripts are often rich in information, as they contain direct communication between company officials and market analysts. Our goal was to process this unstructured data to better understand how companies present themselves during these calls, especially how sentiment and communication align (or misalign) with actual market behavior.
-
Data Collection
- Scraped earnings call transcripts in PDF form from Screener.in for selected companies.
- Targeted companies from varied domains: Relaxo (footwear), Ethos (luxury watches), and Globus Spirits (alcohol).
-
PDF Parsing & Dialogue Extraction
- Parsed transcripts using
pdfplumberto extract raw text. - Used regular expressions to detect speakers and segment dialogues.
- Parsed transcripts using
-
Speaker Role Classification
- Used a local language model (specifically, 'Llama 3.1' via 'Ollama') to classify each speaker as CEO, Analyst, Moderator, or Investor.
- This helped structure the unformatted text into clear, labeled dialogues.
-
Sentiment Analysis
- For each analyst question and company answer pair, applied a pre-trained sentiment model from Hugging Face, which was selected as the 'distilroberta-base' after rigorous trial and error of several models.
- Focused on cases where company responses seemed mismatched with analyst tone (e.g., evasive or overly positive answers).
-
Market Comparison
- Pulled historical stock prices and volumes using the
yfinancelibrary. - Visualized how sentiment from the call related to market movement in the following days.
- Pulled historical stock prices and volumes using the
- Found partial alignment between company tone and post-call market behavior, especially in Globus Spirits' Q1 call.
- Confirmed that while earnings call sentiment is not a definitive predictor, it offers valuable directional guidance.
- Python, Requests, BeautifulSoup, pdfplumber, Regex
- Ollama, LLaMA 3.1 (for role classification)
- Hugging Face Transformers (DistilRoBERTa for sentiment)
- yfinance (for stock price and volume data)
Since there is a lot of fine-tuning involved, to bring it to real use, we are still working on new strategies, approaches and better models. Few of them are listed below:
- Add sector-wide analysis with more companies to analyze a sector as a whole rather than a company alone.
- Deploy a dashboard for real-time transcript analysis.
- Explore fine-tuning models for company-specific language and more accurate results.
Please explore the final codebase file and the results to know more!