File size: 2,127 Bytes
5d6c700 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import json
import streamlit as st
from google.oauth2 import service_account
from google.cloud import language_v1
# Sidebar content
st.sidebar.title("About This Tool")
st.sidebar.markdown("### Descriptive Introduction")
st.sidebar.markdown("This tool leverages Google's NLP technology for text classification.")
st.sidebar.markdown("### Step-by-Step Guide")
st.sidebar.markdown("""
1. **Open the Tool**: Navigate to the URL where the tool is hosted.
2. **User Input**: Enter the text you want to classify.
3. **Analyze**: Click the 'Analyze' button.
4. **View Results**: See the classified categories and their confidence scores.
""")
# Header and intro
st.title("Google Cloud NLP Text Classifier")
st.write("This tool classifies text into predefined categories.")
def sample_classify_text(text_content):
# Assuming service_account_info is set in your Streamlit secrets
service_account_info = json.loads(st.secrets["google_nlp"])
credentials = service_account.Credentials.from_service_account_info(
service_account_info, scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
client = language_v1.LanguageServiceClient(credentials=credentials)
document = {"content": text_content, "type_": language_v1.Document.Type.PLAIN_TEXT, "language": "en"}
content_categories_version = (
language_v1.ClassificationModelOptions.V2Model.ContentCategoriesVersion.V2
)
response = client.classify_text(
request={
"document": document,
"classification_model_options": {
"v2_model": {"content_categories_version": content_categories_version}
},
}
)
st.write(f"### We found {len(response.categories)} categories")
st.write("---")
for category in response.categories:
st.write(f"Category Name: {category.name}")
st.write(f"Confidence Score: {category.confidence}")
st.write("---")
# User input for text analysis
user_input = st.text_area("Enter text to classify", max_chars=2500)
if st.button("Analyze"):
if user_input:
sample_classify_text(user_input)
|