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')
|
|
|
|
|
|
|
|
|
|