ValadisCERTH commited on
Commit
2c5a895
·
1 Parent(s): 34d3a49

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +81 -20
main.py CHANGED
@@ -1,3 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from countriesIdentification import identify_locations
2
  from datesIdentification import dates_binding
3
  from magnitudeIdentification import magnitude_binding
@@ -73,65 +88,68 @@ def process_final_dict(final_dictionary):
73
 
74
 
75
  def natural_language_module(sentence):
76
-
77
-
 
78
  try:
79
  final_dictionary = []
80
-
81
  # identify whether the sentence is referred on earthquake events
82
  earth_event = identify_earthquake_event(sentence)
83
-
84
  if earth_event:
85
  final_dictionary.append(earth_event)
86
-
87
  # identify the target country and city in the sentence
88
  location = identify_locations(sentence)
89
-
90
  if location:
91
  final_dictionary.append(location)
92
-
93
  # identify the target comparative in the sentence
94
  comparative = comparatives_binding(sentence)
95
-
96
  if comparative:
97
  final_dictionary.append(comparative)
98
-
 
 
99
  # identify the target date in the sentence
100
  date = dates_binding(sentence)
101
-
102
  if isinstance(date, list):
103
-
104
  date_dict = date[0]
105
  date_replc = date[1]
106
-
107
  if date_dict:
108
  final_dictionary.append(date_dict[0])
109
-
110
  # we also delete the date reference from the sentence so that there will
111
  # not be any confusion with it for the magnitude identification module
112
  if len(date_replc) == 1:
113
  sentence = sentence.replace(date_replc[0], " ")
114
-
115
  # in case it is a tuple we add it as it is and we do not substitute something in the sentence
116
  elif isinstance(date, tuple):
117
  final_dictionary.append(date)
118
-
119
  # identify the target magnitude number in the sentence
120
  magnitude = magnitude_binding(sentence)
121
-
122
  if magnitude:
123
  final_dictionary.append(magnitude)
124
-
125
  clean_final_dictionary = process_final_dict(final_dictionary)
126
-
127
  result = {}
128
  for d in clean_final_dictionary:
129
  result.update(d)
130
-
131
  return result
132
 
133
  except:
134
- return "\n\n=== AN UNEXPECTED ERROR HAS OCCURED. PLEASE EXECUTE AGAIN THE SCRIPT OR COMMUNICATE WITH THE DEVELOPER TEAM === \n\n"
135
 
136
 
137
 
@@ -154,12 +172,55 @@ def process_json_sf(nl_json, sentence):
154
 
155
 
156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  def main(sentence):
158
  """
159
  Function to bind together all the info and be executed
160
  """
161
 
 
 
 
 
 
 
 
 
162
  nl_data = natural_language_module(sentence)
 
 
 
 
 
 
 
 
 
 
 
163
  nl_json = process_json_sf(nl_data, sentence)
164
 
165
  return nl_json
 
1
+ import time
2
+
3
+ print("\n\n ==== THE NATURAL LANGUAGE MODULE IS BEING LOADED. PLEASE WAIT ==== \n\n")
4
+ start_time_load = time.time()
5
+
6
+ from transformers import logging
7
+ logging.set_verbosity_error()
8
+
9
+ import warnings
10
+ warnings.filterwarnings("ignore", category=UserWarning)
11
+
12
+ import sys
13
+
14
+ import requests
15
+
16
  from countriesIdentification import identify_locations
17
  from datesIdentification import dates_binding
18
  from magnitudeIdentification import magnitude_binding
 
88
 
89
 
90
  def natural_language_module(sentence):
91
+ """
92
+ Function to execute the complete natural language module pipeline
93
+ """
94
  try:
95
  final_dictionary = []
96
+
97
  # identify whether the sentence is referred on earthquake events
98
  earth_event = identify_earthquake_event(sentence)
99
+
100
  if earth_event:
101
  final_dictionary.append(earth_event)
102
+
103
  # identify the target country and city in the sentence
104
  location = identify_locations(sentence)
105
+
106
  if location:
107
  final_dictionary.append(location)
108
+
109
  # identify the target comparative in the sentence
110
  comparative = comparatives_binding(sentence)
111
+
112
  if comparative:
113
  final_dictionary.append(comparative)
114
+
115
+ print(final_dictionary)
116
+
117
  # identify the target date in the sentence
118
  date = dates_binding(sentence)
119
+
120
  if isinstance(date, list):
121
+
122
  date_dict = date[0]
123
  date_replc = date[1]
124
+
125
  if date_dict:
126
  final_dictionary.append(date_dict[0])
127
+
128
  # we also delete the date reference from the sentence so that there will
129
  # not be any confusion with it for the magnitude identification module
130
  if len(date_replc) == 1:
131
  sentence = sentence.replace(date_replc[0], " ")
132
+
133
  # in case it is a tuple we add it as it is and we do not substitute something in the sentence
134
  elif isinstance(date, tuple):
135
  final_dictionary.append(date)
136
+
137
  # identify the target magnitude number in the sentence
138
  magnitude = magnitude_binding(sentence)
139
+
140
  if magnitude:
141
  final_dictionary.append(magnitude)
142
+
143
  clean_final_dictionary = process_final_dict(final_dictionary)
144
+
145
  result = {}
146
  for d in clean_final_dictionary:
147
  result.update(d)
148
+
149
  return result
150
 
151
  except:
152
+ return "\n\n=== AN UNEXPECTED ERROR HAS OCCURED. PLEASE EXECUTE AGAIN THE SCRIPT OR COMMUNICATE WITH THE DEVELOPER TEAM === \n\n"
153
 
154
 
155
 
 
172
 
173
 
174
 
175
+ def send_json_to_endpoint(json_output, username, password):
176
+ """
177
+ Function to send the produced json to a target endpoint
178
+ """
179
+ endpoint_url = "http://160.40.54.158:8087/SemanticFramework/api/retrieve"
180
+ headers = {'Content-type': 'application/json'}
181
+ auth = (username, password)
182
+
183
+ print(" === THE FINAL OUTPUT THAT IS SENT TO THE SF === \n")
184
+ print(json_output)
185
+
186
+ response = requests.post(endpoint_url, json=json_output, headers=headers, auth=auth)
187
+
188
+ if response.status_code == 200:
189
+ print("\n\n === THE RESPONSE RETRIEVED BY THE SF ===")
190
+ print("\n")
191
+ print(response.content)
192
+ print("\n\n")
193
+ else:
194
+ print("Error sending JSON to endpoint")
195
+ print("\n\n")
196
+
197
+
198
+
199
  def main(sentence):
200
  """
201
  Function to bind together all the info and be executed
202
  """
203
 
204
+ end_time_load = time.time()
205
+ elapsed_time_load = end_time_load - start_time_load
206
+
207
+ print(f"=== THE NATURAL LANGUAGE MODULE HAS BEEN LOADED. THE LOADING TIME WAS : {elapsed_time_load} seconds === \n\n")
208
+ print(" === THE NATURAL LANGUAGE MODULE HAS JUST STARTED PROCESSING THE INPUT SENTENCE === \n")
209
+
210
+ start_time = time.time()
211
+
212
  nl_data = natural_language_module(sentence)
213
+
214
+ print("\n")
215
+ print(" === FINAL OUTPUT === \n")
216
+ print(nl_data)
217
+
218
+ end_time = time.time()
219
+ elapsed_time = end_time - start_time
220
+
221
+ print("\n\n\n ==== THE NATURAL LANGUAGE MODULE HAS FINISHED ITS EXECUTION ==== \n\n\n")
222
+ print(f" ==== THE TIME OF SENTENCE PROCESSING WAS: {elapsed_time} seconds ==== \n\n")
223
+
224
  nl_json = process_json_sf(nl_data, sentence)
225
 
226
  return nl_json