Update func.py
Browse files
func.py
CHANGED
@@ -2,26 +2,17 @@ from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassifica
|
|
2 |
from bs4 import BeautifulSoup
|
3 |
import requests
|
4 |
|
5 |
-
# -----------
|
6 |
-
|
7 |
-
|
|
|
|
|
|
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
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
|
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
|
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 = []
|