carpeadiam commited on
Commit
cb76f6b
·
verified ·
1 Parent(s): 9ac3f6c

Update StockSentimentAnalyser.py

Browse files
Files changed (1) hide show
  1. StockSentimentAnalyser.py +39 -2
StockSentimentAnalyser.py CHANGED
@@ -456,8 +456,45 @@ class StockSentimentAnalyzer:
456
  """Get comprehensive sentiment analysis for a stock"""
457
  # If company name not provided, try to extract from symbol
458
  self.symbol = symbol
459
- if not company_name:
460
- company_name = symbol.replace('.NS', '').replace('.BO', '')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
 
462
  print(f"\n{'='*80}")
463
  print(f"🔍 ANALYZING: {company_name.upper()} ({symbol})")
 
456
  """Get comprehensive sentiment analysis for a stock"""
457
  # If company name not provided, try to extract from symbol
458
  self.symbol = symbol
459
+ # If company name not provided, try to extract from symbol
460
+ if not company_name:
461
+ try:
462
+ # Add .NS for NSE stocks if not present
463
+ if not symbol.endswith('.NS') and not symbol.endswith('.BO'):
464
+ symbol_with_suffix = symbol + '.NS'
465
+ else:
466
+ symbol_with_suffix = symbol
467
+
468
+ # Get company info from yfinance
469
+ ticker = yf.Ticker(symbol_with_suffix)
470
+ info = ticker.info
471
+
472
+ # Extract company name with multiple fallbacks
473
+ company_name = (
474
+ info.get('longName') or
475
+ info.get('shortName') or
476
+ info.get('name') or
477
+ symbol # Final fallback to symbol
478
+ )
479
+
480
+ # Validate the extracted name
481
+ if company_name:
482
+ # Remove special characters and check if meaningful
483
+ cleaned_name = ''.join(c for c in company_name if c.isalnum() or c in (' ', '-', '&'))
484
+ if (len(cleaned_name.strip()) < 2 or # Too short
485
+ cleaned_name.strip() == symbol or # Same as symbol
486
+ any(x in cleaned_name for x in ['-', ' - ']) or # Contains dashes (likely placeholder)
487
+ cleaned_name.isnumeric()): # Just numbers
488
+ company_name = symbol # Fallback to symbol if name is invalid
489
+ else:
490
+ company_name = symbol
491
+
492
+ except Exception as e:
493
+ print(f"⚠️ Could not fetch company name for {symbol}: {str(e)}")
494
+ company_name = symbol
495
+
496
+ # Ensure we have at least the symbol as name
497
+ company_name = company_name or symbol
498
 
499
  print(f"\n{'='*80}")
500
  print(f"🔍 ANALYZING: {company_name.upper()} ({symbol})")