Update app.py
Browse files
app.py
CHANGED
|
@@ -1,19 +1,15 @@
|
|
| 1 |
import pandas as pd
|
| 2 |
import numpy as np
|
| 3 |
import streamlit as st
|
| 4 |
-
|
| 5 |
from transformers import AutoModelForQuestionAnswering, AutoTokenizer, pipeline
|
| 6 |
|
|
|
|
| 7 |
model_name = "deepset/roberta-base-squad2"
|
| 8 |
-
|
| 9 |
-
# a) Get predictions
|
| 10 |
nlp = pipeline('question-answering', model=model_name, tokenizer=model_name)
|
| 11 |
-
|
| 12 |
-
# b) Load model & tokenizer
|
| 13 |
model = AutoModelForQuestionAnswering.from_pretrained(model_name)
|
| 14 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 15 |
|
| 16 |
-
|
| 17 |
suspicious_words = [
|
| 18 |
"robbery", "crime", "exchange", "extortion", "threat", "suspicious", "fraud", "laundering",
|
| 19 |
"illegal", "contraband", "smuggling", "burglary", "assault", "hijacking", "kidnapping", "ransom",
|
|
@@ -29,47 +25,36 @@ suspicious_words = [
|
|
| 29 |
"saboteur", "suicide", "discreet", "hide", "action", "profile", "alert", "vigilant", "clandestine", "riot", "arms", "deal"
|
| 30 |
]
|
| 31 |
|
|
|
|
| 32 |
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
q[0] = "What event is going to take place?"
|
| 38 |
-
q[1] = "Where is it going to happen"
|
| 39 |
-
q[2] = "What time is it going to happen?"
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
QA_input = [{} for i in range(3)]
|
| 43 |
-
res = [{} for i in range(3)]
|
| 44 |
|
|
|
|
| 45 |
df = pd.read_excel('senti.xlsx')
|
| 46 |
-
|
| 47 |
parsed_column = df['sentences'].to_list()
|
| 48 |
|
| 49 |
-
|
|
|
|
|
|
|
| 50 |
for sentence in parsed_column:
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
st.write("The time of crime detected is: ",a[2])
|
| 72 |
-
elif len(a[2]) == 0:
|
| 73 |
-
st.write("No time detected")
|
| 74 |
-
elif len(cw) == 0:
|
| 75 |
-
st.write("No crime detected")
|
|
|
|
| 1 |
import pandas as pd
|
| 2 |
import numpy as np
|
| 3 |
import streamlit as st
|
|
|
|
| 4 |
from transformers import AutoModelForQuestionAnswering, AutoTokenizer, pipeline
|
| 5 |
|
| 6 |
+
# Initialize transformers
|
| 7 |
model_name = "deepset/roberta-base-squad2"
|
|
|
|
|
|
|
| 8 |
nlp = pipeline('question-answering', model=model_name, tokenizer=model_name)
|
|
|
|
|
|
|
| 9 |
model = AutoModelForQuestionAnswering.from_pretrained(model_name)
|
| 10 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 11 |
|
| 12 |
+
# Define suspicious words and questions
|
| 13 |
suspicious_words = [
|
| 14 |
"robbery", "crime", "exchange", "extortion", "threat", "suspicious", "fraud", "laundering",
|
| 15 |
"illegal", "contraband", "smuggling", "burglary", "assault", "hijacking", "kidnapping", "ransom",
|
|
|
|
| 25 |
"saboteur", "suicide", "discreet", "hide", "action", "profile", "alert", "vigilant", "clandestine", "riot", "arms", "deal"
|
| 26 |
]
|
| 27 |
|
| 28 |
+
questions = ["What event is going to take place?", "Where is it going to happen", "What time is it going to happen?"]
|
| 29 |
|
| 30 |
+
# Initialize Streamlit app
|
| 31 |
+
st.title("Crime Detection App")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
|
| 33 |
+
# Load data
|
| 34 |
df = pd.read_excel('senti.xlsx')
|
|
|
|
| 35 |
parsed_column = df['sentences'].to_list()
|
| 36 |
|
| 37 |
+
# Process sentences and store results
|
| 38 |
+
output_data = {'Crime Detected': [], 'Location Detected': [], 'Time Detected': []}
|
| 39 |
+
|
| 40 |
for sentence in parsed_column:
|
| 41 |
+
answers = nlp(questions, sentence)
|
| 42 |
+
cw = set(answers[0]['answer'].lower().split()) & set(suspicious_words)
|
| 43 |
+
|
| 44 |
+
if cw:
|
| 45 |
+
output_data['Crime Detected'].append(answers[0]['answer'])
|
| 46 |
+
output_data['Location Detected'].append(answers[1]['answer'] if answers[1]['answer'] else 'No location detected')
|
| 47 |
+
output_data['Time Detected'].append(answers[2]['answer'] if answers[2]['answer'] else 'No time detected')
|
| 48 |
+
else:
|
| 49 |
+
output_data['Crime Detected'].append('No crime detected')
|
| 50 |
+
output_data['Location Detected'].append('No location detected')
|
| 51 |
+
output_data['Time Detected'].append('No time detected')
|
| 52 |
+
|
| 53 |
+
# Convert data to DataFrame
|
| 54 |
+
output_df = pd.DataFrame(output_data)
|
| 55 |
+
|
| 56 |
+
# Display results
|
| 57 |
+
st.write(output_df)
|
| 58 |
+
|
| 59 |
+
# Download button for Excel file
|
| 60 |
+
st.download_button(label="Download Excel", data=output_df.to_excel(), file_name='crime_data_output.xlsx', mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|