Spaces:
Runtime error
Runtime error
Commit ·
8deafd3
1
Parent(s): 0d36871
Update app.py
Browse files
app.py
CHANGED
|
@@ -2,6 +2,23 @@ import json
|
|
| 2 |
import streamlit as st
|
| 3 |
from google.oauth2 import service_account
|
| 4 |
from google.cloud import language_v1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
# Function to count entities with 'mid' that contains '/g/' or '/m/' in their metadata
|
| 7 |
def count_entities(entities):
|
|
@@ -26,7 +43,7 @@ st.sidebar.markdown("""
|
|
| 26 |
# Header and intro
|
| 27 |
st.title("Google Cloud NLP Entity Analyzer")
|
| 28 |
st.write("This tool analyzes text to identify entities such as people, locations, organizations, and events")
|
| 29 |
-
st.write("Entity salience scores are always relative to the analysed text.
|
| 30 |
|
| 31 |
def sample_analyze_entities(text_content):
|
| 32 |
service_account_info = json.loads(st.secrets["google_nlp"])
|
|
@@ -58,8 +75,7 @@ def sample_analyze_entities(text_content):
|
|
| 58 |
|
| 59 |
if 'mid' in entity.metadata and ('/g/' in entity.metadata['mid'] or '/m/' in entity.metadata['mid']):
|
| 60 |
entity_id = entity.metadata['mid']
|
| 61 |
-
|
| 62 |
-
st.markdown(f'<a href="{ahref_link}" target="_blank">Google Entity Link</a>', unsafe_allow_html=True)
|
| 63 |
|
| 64 |
if entity.mentions:
|
| 65 |
st.write("Mentions:")
|
|
|
|
| 2 |
import streamlit as st
|
| 3 |
from google.oauth2 import service_account
|
| 4 |
from google.cloud import language_v1
|
| 5 |
+
import urllib.parse
|
| 6 |
+
import urllib.request
|
| 7 |
+
|
| 8 |
+
# Function to query Google's Knowledge Graph API
|
| 9 |
+
def query_knowledge_graph(entity_id):
|
| 10 |
+
service_url = 'https://kgsearch.googleapis.com/v1/entities:search'
|
| 11 |
+
params = {
|
| 12 |
+
'ids': entity_id,
|
| 13 |
+
'limit': 1,
|
| 14 |
+
'indent': True,
|
| 15 |
+
'key': st.secrets["kg_api"],
|
| 16 |
+
}
|
| 17 |
+
url = service_url + '?' + urllib.parse.urlencode(params)
|
| 18 |
+
response = json.loads(urllib.request.urlopen(url).read())
|
| 19 |
+
for element in response['itemListElement']:
|
| 20 |
+
st.write(f"Knowledge Graph name: {element['result']['name']}")
|
| 21 |
+
st.write(f"Knowledge Graph score: {element['resultScore']}")
|
| 22 |
|
| 23 |
# Function to count entities with 'mid' that contains '/g/' or '/m/' in their metadata
|
| 24 |
def count_entities(entities):
|
|
|
|
| 43 |
# Header and intro
|
| 44 |
st.title("Google Cloud NLP Entity Analyzer")
|
| 45 |
st.write("This tool analyzes text to identify entities such as people, locations, organizations, and events")
|
| 46 |
+
st.write("Entity salience scores are always relative to the analysed text.")
|
| 47 |
|
| 48 |
def sample_analyze_entities(text_content):
|
| 49 |
service_account_info = json.loads(st.secrets["google_nlp"])
|
|
|
|
| 75 |
|
| 76 |
if 'mid' in entity.metadata and ('/g/' in entity.metadata['mid'] or '/m/' in entity.metadata['mid']):
|
| 77 |
entity_id = entity.metadata['mid']
|
| 78 |
+
query_knowledge_graph(entity_id)
|
|
|
|
| 79 |
|
| 80 |
if entity.mentions:
|
| 81 |
st.write("Mentions:")
|