Spaces:
Sleeping
Sleeping
File size: 1,792 Bytes
e4d5a8e |
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 59 60 61 |
import gradio as gr
import google.generativeai as genai
import spacy
import yake
# Initialize Google Gemini AI
genai.configure(api_key="AIzaSyDnx_qUjGTFG1pv1otPUhNt_bGGv14aMDI")
# Load NLP Model
nlp = spacy.load("en_core_web_sm")
def analyze_text(text):
"""Perform AI-driven text analysis."""
if not text:
return "Please enter some text."
# Summarization using Gemini AI
prompt = f"Summarize this text:\n{text}"
response = genai.generate_text(prompt)
summary = response.text.strip() if response.text else "Error in summarization."
# Sentiment Analysis
sentiment = "Positive" if "good" in text.lower() else "Negative" # Basic example
# Keyword Extraction
kw_extractor = yake.KeywordExtractor()
keywords = [kw[0] for kw in kw_extractor.extract_keywords(text)[:5]]
# Named Entity Recognition (NER)
doc = nlp(text)
entities = {ent.text: ent.label_ for ent in doc.ents}
# AI-Generated Report
report = f"""
**Summary:** {summary}
**Sentiment:** {sentiment}
**Keywords:** {', '.join(keywords)}
**Entities:** {entities if entities else 'None'}
"""
return report
# Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("# AI-Powered Text & File Analyzer 🚀")
input_text = gr.Textbox(label="Enter Text or Upload .txt File")
file_input = gr.File(label="Upload .txt File", file_types=[".txt"])
analyze_button = gr.Button("Analyze")
output = gr.Markdown()
def process_input(text, file):
"""Process text from input or file."""
if file:
with open(file.name, "r") as f:
text = f.read()
return analyze_text(text)
analyze_button.click(process_input, inputs=[input_text, file_input], outputs=output)
demo.launch()
|