LinkLinkWu commited on
Commit
15e8ca2
·
verified ·
1 Parent(s): f38602e

Update func.py

Browse files
Files changed (1) hide show
  1. func.py +12 -21
func.py CHANGED
@@ -2,26 +2,17 @@ from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassifica
2
  from bs4 import BeautifulSoup
3
  import requests
4
 
5
- # ----------- Lazy Initialization of Pipelines -----------
6
- _sentiment_pipeline = None
7
- _ner_pipeline = None
 
 
 
8
 
9
- def get_sentiment_pipeline():
10
- global _sentiment_pipeline
11
- if _sentiment_pipeline is None:
12
- model_id = "LinkLinkWu/ISOM5240HKUSTBASE"
13
- tokenizer = AutoTokenizer.from_pretrained(model_id)
14
- model = AutoModelForSequenceClassification.from_pretrained(model_id)
15
- _sentiment_pipeline = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
16
- return _sentiment_pipeline
17
-
18
- def get_ner_pipeline():
19
- global _ner_pipeline
20
- if _ner_pipeline is None:
21
- tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER")
22
- model = AutoModelForTokenClassification.from_pretrained("dslim/bert-base-NER")
23
- _ner_pipeline = pipeline("ner", model=model, tokenizer=tokenizer, grouped_entities=True)
24
- return _ner_pipeline
25
 
26
  # ----------- Core Functions -----------
27
  def fetch_news(ticker):
@@ -58,14 +49,14 @@ def fetch_news(ticker):
58
  except Exception:
59
  return []
60
 
61
- def analyze_sentiment(text, sentiment_pipeline):
62
  try:
63
  result = sentiment_pipeline(text)[0]
64
  return "Positive" if result['label'] == 'POSITIVE' else "Negative"
65
  except Exception:
66
  return "Unknown"
67
 
68
- def extract_org_entities(text, ner_pipeline):
69
  try:
70
  entities = ner_pipeline(text)
71
  org_entities = []
 
2
  from bs4 import BeautifulSoup
3
  import requests
4
 
5
+ # ----------- Eager Initialization of Pipelines -----------
6
+ # Sentiment pipeline
7
+ model_id = "LinkLinkWu/ISOM5240HKUSTBASE"
8
+ sentiment_tokenizer = AutoTokenizer.from_pretrained(model_id)
9
+ sentiment_model = AutoModelForSequenceClassification.from_pretrained(model_id)
10
+ sentiment_pipeline = pipeline("sentiment-analysis", model=sentiment_model, tokenizer=sentiment_tokenizer)
11
 
12
+ # NER pipeline
13
+ ner_tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER")
14
+ ner_model = AutoModelForTokenClassification.from_pretrained("dslim/bert-base-NER")
15
+ ner_pipeline = pipeline("ner", model=ner_model, tokenizer=ner_tokenizer, grouped_entities=True)
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  # ----------- Core Functions -----------
18
  def fetch_news(ticker):
 
49
  except Exception:
50
  return []
51
 
52
+ def analyze_sentiment(text):
53
  try:
54
  result = sentiment_pipeline(text)[0]
55
  return "Positive" if result['label'] == 'POSITIVE' else "Negative"
56
  except Exception:
57
  return "Unknown"
58
 
59
+ def extract_org_entities(text):
60
  try:
61
  entities = ner_pipeline(text)
62
  org_entities = []