Spaces:
Sleeping
Sleeping
Commit
·
170f624
1
Parent(s):
e054f20
Update app.py
Browse files
app.py
CHANGED
|
@@ -5,80 +5,54 @@ from google.cloud import language_v1
|
|
| 5 |
|
| 6 |
# Sidebar content
|
| 7 |
st.sidebar.title("About This Tool")
|
| 8 |
-
st.sidebar.markdown("
|
| 9 |
-
st.sidebar.markdown
|
| 10 |
st.sidebar.markdown("### Step-by-Step Guide")
|
| 11 |
st.sidebar.markdown("""
|
| 12 |
1. **Open the Tool**: Navigate to the URL where the tool is hosted.
|
| 13 |
-
2. **User Input**:
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
- **Analyze**: Click the button labeled "Analyze". The tool will then process the text and perform entity analysis on it.
|
| 17 |
-
3. **View Results**:
|
| 18 |
-
- After the analysis is complete, you'll see a section that says, "We found X results for your query of your_query" (or just "We found results for your query" if no query was entered).
|
| 19 |
-
- Below this, you'll find a line-by-line breakdown of each entity identified in the text.
|
| 20 |
""")
|
| 21 |
|
| 22 |
# Header and intro
|
| 23 |
st.title("Google Cloud NLP Entity Analyzer")
|
| 24 |
-
st.write("
|
| 25 |
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
def sample_analyze_entities(text_content, your_query=""):
|
| 29 |
service_account_info = json.loads(st.secrets["google_nlp"])
|
| 30 |
credentials = service_account.Credentials.from_service_account_info(
|
| 31 |
service_account_info, scopes=["https://www.googleapis.com/auth/cloud-platform"]
|
| 32 |
)
|
|
|
|
| 33 |
client = language_v1.LanguageServiceClient(credentials=credentials)
|
| 34 |
-
|
| 35 |
-
language = "en"
|
| 36 |
-
document = {"content": text_content, "type_": type_, "language": language}
|
| 37 |
encoding_type = language_v1.EncodingType.UTF8
|
| 38 |
|
| 39 |
response = client.analyze_entities(request={"document": document, "encoding_type": encoding_type})
|
| 40 |
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
entity_details = {
|
| 44 |
-
"Name": entity.name,
|
| 45 |
-
"Type": language_v1.Entity.Type(entity.type_).name,
|
| 46 |
-
"Salience Score": entity.salience,
|
| 47 |
-
"Metadata": entity.metadata,
|
| 48 |
-
"Mentions": [mention.text.content for mention in entity.mentions]
|
| 49 |
-
}
|
| 50 |
-
entities_list.append(entity_details)
|
| 51 |
-
|
| 52 |
-
if your_query:
|
| 53 |
-
st.write(f"### We found {len(entities_list)} results for your query of **{your_query}**")
|
| 54 |
-
else:
|
| 55 |
-
st.write("### We found results for your query")
|
| 56 |
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
st.write(f"
|
| 60 |
-
st.write(f"
|
| 61 |
-
st.write(f"
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
metadata = entity.get('Metadata', {})
|
| 66 |
-
if metadata:
|
| 67 |
st.write("Metadata:")
|
| 68 |
-
st.write(metadata)
|
| 69 |
|
| 70 |
-
|
| 71 |
-
if mentions:
|
| 72 |
st.write("Mentions:")
|
| 73 |
-
st.write(
|
| 74 |
-
|
| 75 |
-
st.write("
|
| 76 |
-
|
| 77 |
-
st.write(f"### Language of the text: {response.language}")
|
| 78 |
|
| 79 |
# User input for text analysis
|
| 80 |
-
user_input = st.text_area("Enter text to analyze")
|
| 81 |
-
#your_query = st.text_input("Enter your query (optional)")
|
| 82 |
|
| 83 |
if st.button("Analyze"):
|
| 84 |
-
|
|
|
|
|
|
| 5 |
|
| 6 |
# Sidebar content
|
| 7 |
st.sidebar.title("About This Tool")
|
| 8 |
+
st.sidebar.markdown("This tool leverages Google's NLP technology for entity analysis.")
|
|
|
|
| 9 |
st.sidebar.markdown("### Step-by-Step Guide")
|
| 10 |
st.sidebar.markdown("""
|
| 11 |
1. **Open the Tool**: Navigate to the URL where the tool is hosted.
|
| 12 |
+
2. **User Input**: Enter the text you want to analyze.
|
| 13 |
+
3. **Analyze**: Click the 'Analyze' button.
|
| 14 |
+
4. **View Results**: See the identified entities and their details.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
""")
|
| 16 |
|
| 17 |
# Header and intro
|
| 18 |
st.title("Google Cloud NLP Entity Analyzer")
|
| 19 |
+
st.write("This tool analyzes text to identify entities such as people, locations, organizations, and events.")
|
| 20 |
|
| 21 |
+
def sample_analyze_entities(text_content):
|
| 22 |
+
# Assuming service_account_info is set in your Streamlit secrets
|
|
|
|
| 23 |
service_account_info = json.loads(st.secrets["google_nlp"])
|
| 24 |
credentials = service_account.Credentials.from_service_account_info(
|
| 25 |
service_account_info, scopes=["https://www.googleapis.com/auth/cloud-platform"]
|
| 26 |
)
|
| 27 |
+
|
| 28 |
client = language_v1.LanguageServiceClient(credentials=credentials)
|
| 29 |
+
document = {"content": text_content, "type_": language_v1.Document.Type.PLAIN_TEXT, "language": "en"}
|
|
|
|
|
|
|
| 30 |
encoding_type = language_v1.EncodingType.UTF8
|
| 31 |
|
| 32 |
response = client.analyze_entities(request={"document": document, "encoding_type": encoding_type})
|
| 33 |
|
| 34 |
+
st.write(f"### We found {len(response.entities)} entities")
|
| 35 |
+
st.write("---")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
+
for i, entity in enumerate(response.entities):
|
| 38 |
+
st.write(f"Entity {i+1} of {len(response.entities)}")
|
| 39 |
+
st.write(f"Name: {entity.name}")
|
| 40 |
+
st.write(f"Type: {language_v1.Entity.Type(entity.type_).name}")
|
| 41 |
+
st.write(f"Salience Score: {entity.salience}")
|
| 42 |
+
|
| 43 |
+
if entity.metadata:
|
|
|
|
|
|
|
|
|
|
| 44 |
st.write("Metadata:")
|
| 45 |
+
st.write(entity.metadata)
|
| 46 |
|
| 47 |
+
if entity.mentions:
|
|
|
|
| 48 |
st.write("Mentions:")
|
| 49 |
+
st.write(', '.join([mention.text.content for mention in entity.mentions]))
|
| 50 |
+
|
| 51 |
+
st.write("---")
|
|
|
|
|
|
|
| 52 |
|
| 53 |
# User input for text analysis
|
| 54 |
+
user_input = st.text_area("Enter text to analyze", max_chars=2500)
|
|
|
|
| 55 |
|
| 56 |
if st.button("Analyze"):
|
| 57 |
+
if user_input:
|
| 58 |
+
sample_analyze_entities(user_input)
|