Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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",
|
| 20 |
+
"hostage", "terrorism", "homicide", "murder", "manslaughter", "weapon", "gun", "explosive", "bomb", "knives",
|
| 21 |
+
"threaten", "blackmail", "intimidate", "menace", "harassment", "stalking", "kidnap", "abduction", "guns", "bombs",
|
| 22 |
+
"abuse", "trafficking", "prostitution", "pimping", "drug", "narcotic", "cocaine", "heroin", "methamphetamine",
|
| 23 |
+
"amphetamine", "opiate", "meth", "gang", "gangster", "mafia", "racket", "extort", "embezzle", "corruption",
|
| 24 |
+
"bribe", "scam", "forgery", "counterfeit", "fraudulent", "cybercrime", "hacker", "phishing", "identity", "theft",
|
| 25 |
+
"credit card", "fraud", "identity", "fraud", "ponzi", "scheme", "pyramid", "scheme", "money", "scam", "swindle", "deception",
|
| 26 |
+
"conspiracy", "scheme", "plot", "coercion", "corrupt", "criminal", "felony", "misdemeanor", "felon", "fugitive",
|
| 27 |
+
"wanted", "arson", "arsonist", "arsony", "stolen", "steal", "loot", "heist", "launder", "hitman", "racketeer",
|
| 28 |
+
"hijack", "smuggle", "terrorist", "kidnapper", "perpetrator", "ringleader", "prowler", "vigilante", "sabotage",
|
| 29 |
+
"saboteur", "suicide", "discreet", "hide", "action", "profile", "alert", "vigilant", "clandestine", "riot", "arms", "deal"
|
| 30 |
+
]
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
q = ["","",""]
|
| 34 |
+
a = ["","",""]
|
| 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 |
+
|
| 46 |
+
sentence=st.text_area("Enter your sentence")
|
| 47 |
+
|
| 48 |
+
for i in range(3):
|
| 49 |
+
QA_input[i] = {
|
| 50 |
+
'question': q[i],
|
| 51 |
+
'context': sentence
|
| 52 |
+
}
|
| 53 |
+
res[i] = nlp(QA_input[i])
|
| 54 |
+
a[i] = res[i]['answer']
|
| 55 |
+
|
| 56 |
+
a1 = a[0].lower()
|
| 57 |
+
a1s = set(a1.split())
|
| 58 |
+
sus = set(suspicious_words)
|
| 59 |
+
cw = a1s.intersection(sus)
|
| 60 |
+
|
| 61 |
+
if len(cw) != 0:
|
| 62 |
+
st.write("The crime detected is: ",a[0])
|
| 63 |
+
if len(a[1]) != 0:
|
| 64 |
+
st.write("The location of crime detected is: ",a[1])
|
| 65 |
+
elif len(a[1]) == 0:
|
| 66 |
+
st.write("No location detected")
|
| 67 |
+
if len(a[2]) != 0:
|
| 68 |
+
st.write("The time of crime detected is: ",a[2])
|
| 69 |
+
elif len(a[2]) == 0:
|
| 70 |
+
st.write("No time detected")
|
| 71 |
+
elif len(cw) == 0:
|
| 72 |
+
st.write("No crime detected")
|