dh-mc commited on
Commit
1179be6
·
1 Parent(s): ded43f3

init files

Browse files
Files changed (33) hide show
  1. .gitattributes +4 -0
  2. .gitignore +150 -0
  3. IS424_Data_Mining/code/Classification/Classification models on incident category.ipynb +0 -0
  4. IS424_Data_Mining/code/Classification/Classification models on maritime incident.ipynb +1014 -0
  5. IS424_Data_Mining/code/Classification/converstion.png +0 -0
  6. IS424_Data_Mining/code/Classification/label_list.xlsx +3 -0
  7. IS424_Data_Mining/code/Classification/new_labels.xlsx +3 -0
  8. IS424_Data_Mining/code/Classification/unique labels.xlsx +3 -0
  9. IS424_Data_Mining/code/GPT/Pipeline.ipynb +0 -0
  10. IS424_Data_Mining/code/GPT/cleaned_data1.csv +34 -0
  11. IS424_Data_Mining/code/LDA/basic_text_preprocessing.ipynb +741 -0
  12. IS424_Data_Mining/code/LDA/basic_text_preprocessing_on_scraped_data.ipynb +0 -0
  13. IS424_Data_Mining/code/LDA/cleaned_data.csv +0 -0
  14. IS424_Data_Mining/code/LDA/processed_data.parquet +3 -0
  15. IS424_Data_Mining/code/LDA/processed_data1.parquet +3 -0
  16. IS424_Data_Mining/code/LDA/topic_modelling_benchmark_using_headline.ipynb +967 -0
  17. IS424_Data_Mining/code/LDA/topic_modelling_minor.ipynb +1380 -0
  18. IS424_Data_Mining/code/LDA/topic_modelling_moderate.ipynb +0 -0
  19. IS424_Data_Mining/code/LDA/topic_modelling_severe.ipynb +0 -0
  20. IS424_Data_Mining/code/LLM Evaluation/cleaned_data.csv +167 -0
  21. IS424_Data_Mining/code/LLM Evaluation/cleaned_data_with_categories.csv +167 -0
  22. IS424_Data_Mining/code/LLM Evaluation/evaluation.ipynb +1797 -0
  23. IS424_Data_Mining/code/LLM Evaluation/evaluation_result.csv +158 -0
  24. IS424_Data_Mining/code/LLM Evaluation/result.csv +167 -0
  25. IS424_Data_Mining/code/NER/Named_Entity_Recognition.ipynb +0 -0
  26. IS424_Data_Mining/code/NewsScraper/newsScraper.ipynb +0 -0
  27. IS424_Data_Mining/code/NewsScraper/scraped_data1.parquet +3 -0
  28. IS424_Data_Mining/code/README.md +12 -0
  29. IS424_Data_Mining/code/all_port_labelled.csv +0 -0
  30. IS424_Data_Mining/docs/Data Mining_A Star_updated.pdf +3 -0
  31. IS424_Data_Mining/docs/Data Mining_A Star_updated.pptx +3 -0
  32. IS424_Data_Mining/docs/Project Report.docx +3 -0
  33. IS424_Data_Mining/docs/Project Report.pdf +3 -0
.gitattributes CHANGED
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ *.pdf filter=lfs diff=lfs merge=lfs -text
37
+ *.docx filter=lfs diff=lfs merge=lfs -text
38
+ *.pptx filter=lfs diff=lfs merge=lfs -text
39
+ *.xlsx filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.out
2
+ *.log
3
+ pdfs/
4
+ .vscode/
5
+
6
+ # Byte-compiled / optimized / DLL files
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # C extensions
12
+ *.so
13
+
14
+ # Distribution / packaging
15
+ .Python
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ pip-wheel-metadata/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # PyInstaller
36
+ # Usually these files are written by a python script from a template
37
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
38
+ *.manifest
39
+ *.spec
40
+
41
+ # Installer logs
42
+ pip-log.txt
43
+ pip-delete-this-directory.txt
44
+
45
+ # Unit test / coverage reports
46
+ htmlcov/
47
+ .tox/
48
+ .nox/
49
+ .coverage
50
+ .coverage.*
51
+ .cache
52
+ nosetests.xml
53
+ coverage.xml
54
+ *.cover
55
+ *.py,cover
56
+ .hypothesis/
57
+ .pytest_cache/
58
+
59
+ # Translations
60
+ *.mo
61
+ *.pot
62
+
63
+ # Django stuff:
64
+ # *.log
65
+ local_settings.py
66
+ db.sqlite3
67
+ db.sqlite3-journal
68
+
69
+ # Flask stuff:
70
+ instance/
71
+ .webassets-cache
72
+
73
+ # Scrapy stuff:
74
+ .scrapy
75
+
76
+ # Sphinx documentation
77
+ docs/_build/
78
+
79
+ # PyBuilder
80
+ target/
81
+
82
+ # Jupyter Notebook
83
+ .ipynb_checkpoints
84
+
85
+ # IPython
86
+ profile_default/
87
+ ipython_config.py
88
+
89
+ # pyenv
90
+ .python-version
91
+
92
+ # pipenv
93
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
94
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
95
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
96
+ # install all needed dependencies.
97
+ #Pipfile.lock
98
+
99
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
100
+ __pypackages__/
101
+
102
+ # Celery stuff
103
+ celerybeat-schedule
104
+ celerybeat.pid
105
+
106
+ # SageMath parsed files
107
+ *.sage.py
108
+
109
+ # Environments
110
+ .env
111
+ .venv
112
+ env/
113
+ venv/
114
+ ENV/
115
+ env.bak/
116
+ venv.bak/
117
+
118
+ # Spyder project settings
119
+ .spyderproject
120
+ .spyproject
121
+
122
+ # Rope project settings
123
+ .ropeproject
124
+
125
+ # mkdocs documentation
126
+ /site
127
+
128
+ # mypy
129
+ .mypy_cache/
130
+ .dmypy.json
131
+ dmypy.json
132
+
133
+ # Pyre type checker
134
+ .pyre/
135
+
136
+ # JetBrains
137
+ .idea
138
+
139
+ *.db
140
+
141
+ .DS_Store
142
+
143
+ vectorstore.pkl
144
+ langchain.readthedocs.io/
145
+
146
+ models/
147
+ qa_chain_test_results.csv
148
+ data/logs/hftgi-2024-03-18.txt
149
+ qa_chain_all_results.csv
150
+ qa_batch_1_test_results.csv
IS424_Data_Mining/code/Classification/Classification models on incident category.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/Classification/Classification models on maritime incident.ipynb ADDED
@@ -0,0 +1,1014 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "1fecbc87",
6
+ "metadata": {},
7
+ "source": [
8
+ "## Import Statement"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": 1,
14
+ "id": "5169e3ee",
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "import pandas as pd"
19
+ ]
20
+ },
21
+ {
22
+ "cell_type": "markdown",
23
+ "id": "76905f72",
24
+ "metadata": {},
25
+ "source": [
26
+ "### read the data"
27
+ ]
28
+ },
29
+ {
30
+ "cell_type": "code",
31
+ "execution_count": 2,
32
+ "id": "b1043895",
33
+ "metadata": {},
34
+ "outputs": [],
35
+ "source": [
36
+ "df = pd.read_csv(\"../all_port_labelled.csv\")"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "code",
41
+ "execution_count": 3,
42
+ "id": "2e40d90a",
43
+ "metadata": {
44
+ "scrolled": true
45
+ },
46
+ "outputs": [
47
+ {
48
+ "data": {
49
+ "text/html": [
50
+ "<div>\n",
51
+ "<style scoped>\n",
52
+ " .dataframe tbody tr th:only-of-type {\n",
53
+ " vertical-align: middle;\n",
54
+ " }\n",
55
+ "\n",
56
+ " .dataframe tbody tr th {\n",
57
+ " vertical-align: top;\n",
58
+ " }\n",
59
+ "\n",
60
+ " .dataframe thead th {\n",
61
+ " text-align: right;\n",
62
+ " }\n",
63
+ "</style>\n",
64
+ "<table border=\"1\" class=\"dataframe\">\n",
65
+ " <thead>\n",
66
+ " <tr style=\"text-align: right;\">\n",
67
+ " <th></th>\n",
68
+ " <th>Unnamed: 0</th>\n",
69
+ " <th>Index</th>\n",
70
+ " <th>Unnamed: 0.1</th>\n",
71
+ " <th>Headline</th>\n",
72
+ " <th>Details</th>\n",
73
+ " <th>Severity</th>\n",
74
+ " <th>Category</th>\n",
75
+ " <th>Region</th>\n",
76
+ " <th>Datetime</th>\n",
77
+ " <th>Year</th>\n",
78
+ " <th>...</th>\n",
79
+ " <th>IT</th>\n",
80
+ " <th>EP</th>\n",
81
+ " <th>NEW</th>\n",
82
+ " <th>CSD</th>\n",
83
+ " <th>RPE</th>\n",
84
+ " <th>MN</th>\n",
85
+ " <th>NM</th>\n",
86
+ " <th>if_labeled</th>\n",
87
+ " <th>Month</th>\n",
88
+ " <th>Week</th>\n",
89
+ " </tr>\n",
90
+ " </thead>\n",
91
+ " <tbody>\n",
92
+ " <tr>\n",
93
+ " <th>0</th>\n",
94
+ " <td>0.0</td>\n",
95
+ " <td>8.0</td>\n",
96
+ " <td>34.0</td>\n",
97
+ " <td>Grasberg Mine- Grasberg mine workers extend st...</td>\n",
98
+ " <td>Media sources indicate that workers at the Gra...</td>\n",
99
+ " <td>Moderate</td>\n",
100
+ " <td>Mine Workers Strike</td>\n",
101
+ " <td>Indonesia</td>\n",
102
+ " <td>28/5/17 17:08</td>\n",
103
+ " <td>2017.0</td>\n",
104
+ " <td>...</td>\n",
105
+ " <td>0.0</td>\n",
106
+ " <td>0.0</td>\n",
107
+ " <td>0.0</td>\n",
108
+ " <td>0.0</td>\n",
109
+ " <td>0.0</td>\n",
110
+ " <td>0.0</td>\n",
111
+ " <td>1.0</td>\n",
112
+ " <td>False</td>\n",
113
+ " <td>5.0</td>\n",
114
+ " <td>21.0</td>\n",
115
+ " </tr>\n",
116
+ " <tr>\n",
117
+ " <th>1</th>\n",
118
+ " <td>1.0</td>\n",
119
+ " <td>10.0</td>\n",
120
+ " <td>63.0</td>\n",
121
+ " <td>Indonesia: Undersea internet cables damaged by...</td>\n",
122
+ " <td>News sources are stating that recent typhoons ...</td>\n",
123
+ " <td>Minor</td>\n",
124
+ " <td>Travel Warning</td>\n",
125
+ " <td>Indonesia</td>\n",
126
+ " <td>4/9/17 14:30</td>\n",
127
+ " <td>2017.0</td>\n",
128
+ " <td>...</td>\n",
129
+ " <td>0.0</td>\n",
130
+ " <td>0.0</td>\n",
131
+ " <td>0.0</td>\n",
132
+ " <td>0.0</td>\n",
133
+ " <td>0.0</td>\n",
134
+ " <td>1.0</td>\n",
135
+ " <td>0.0</td>\n",
136
+ " <td>False</td>\n",
137
+ " <td>4.0</td>\n",
138
+ " <td>14.0</td>\n",
139
+ " </tr>\n",
140
+ " </tbody>\n",
141
+ "</table>\n",
142
+ "<p>2 rows × 46 columns</p>\n",
143
+ "</div>"
144
+ ],
145
+ "text/plain": [
146
+ " Unnamed: 0 Index Unnamed: 0.1 \\\n",
147
+ "0 0.0 8.0 34.0 \n",
148
+ "1 1.0 10.0 63.0 \n",
149
+ "\n",
150
+ " Headline \\\n",
151
+ "0 Grasberg Mine- Grasberg mine workers extend st... \n",
152
+ "1 Indonesia: Undersea internet cables damaged by... \n",
153
+ "\n",
154
+ " Details Severity \\\n",
155
+ "0 Media sources indicate that workers at the Gra... Moderate \n",
156
+ "1 News sources are stating that recent typhoons ... Minor \n",
157
+ "\n",
158
+ " Category Region Datetime Year ... IT EP NEW \\\n",
159
+ "0 Mine Workers Strike Indonesia 28/5/17 17:08 2017.0 ... 0.0 0.0 0.0 \n",
160
+ "1 Travel Warning Indonesia 4/9/17 14:30 2017.0 ... 0.0 0.0 0.0 \n",
161
+ "\n",
162
+ " CSD RPE MN NM if_labeled Month Week \n",
163
+ "0 0.0 0.0 0.0 1.0 False 5.0 21.0 \n",
164
+ "1 0.0 0.0 1.0 0.0 False 4.0 14.0 \n",
165
+ "\n",
166
+ "[2 rows x 46 columns]"
167
+ ]
168
+ },
169
+ "execution_count": 3,
170
+ "metadata": {},
171
+ "output_type": "execute_result"
172
+ }
173
+ ],
174
+ "source": [
175
+ "df.head(2)"
176
+ ]
177
+ },
178
+ {
179
+ "cell_type": "markdown",
180
+ "id": "643a7e40",
181
+ "metadata": {},
182
+ "source": [
183
+ "### Clean empty data"
184
+ ]
185
+ },
186
+ {
187
+ "cell_type": "code",
188
+ "execution_count": 4,
189
+ "id": "d6ee1fd7",
190
+ "metadata": {},
191
+ "outputs": [],
192
+ "source": [
193
+ "import nltk\n",
194
+ "from nltk.corpus import stopwords\n",
195
+ "from nltk.tokenize import word_tokenize\n",
196
+ "from nltk.stem import WordNetLemmatizer\n",
197
+ "import string\n",
198
+ "#nltk.download('punkt')\n",
199
+ "#nltk.download('stopwords')\n",
200
+ "#nltk.download('wordnet')\n",
201
+ "\n",
202
+ "def clean_text(text):\n",
203
+ " # Lowercase\n",
204
+ " text = text.lower()\n",
205
+ " # Tokenization\n",
206
+ " tokens = word_tokenize(text)\n",
207
+ " # Removing punctuation\n",
208
+ " tokens = [word for word in tokens if word not in string.punctuation]\n",
209
+ " # Removing stop words\n",
210
+ " stop_words = set(stopwords.words('english'))\n",
211
+ " tokens = [word for word in tokens if word not in stop_words]\n",
212
+ " # Lemmatization\n",
213
+ " lemmatizer = WordNetLemmatizer()\n",
214
+ " tokens = [lemmatizer.lemmatize(word) for word in tokens]\n",
215
+ " \n",
216
+ " return ' '.join(tokens)"
217
+ ]
218
+ },
219
+ {
220
+ "cell_type": "code",
221
+ "execution_count": 5,
222
+ "id": "9e35b49a",
223
+ "metadata": {},
224
+ "outputs": [
225
+ {
226
+ "name": "stderr",
227
+ "output_type": "stream",
228
+ "text": [
229
+ "[nltk_data] Downloading package omw-1.4 to\n",
230
+ "[nltk_data] C:\\Users\\ellay\\AppData\\Roaming\\nltk_data...\n",
231
+ "[nltk_data] Package omw-1.4 is already up-to-date!\n"
232
+ ]
233
+ },
234
+ {
235
+ "data": {
236
+ "text/plain": [
237
+ "True"
238
+ ]
239
+ },
240
+ "execution_count": 5,
241
+ "metadata": {},
242
+ "output_type": "execute_result"
243
+ }
244
+ ],
245
+ "source": [
246
+ "import nltk\n",
247
+ "nltk.download('omw-1.4')"
248
+ ]
249
+ },
250
+ {
251
+ "cell_type": "markdown",
252
+ "id": "ca331c4b",
253
+ "metadata": {},
254
+ "source": [
255
+ "### The Details column has an issue\n",
256
+ "\n",
257
+ "some of the data are of the type float and none of the text processing functions can be applied to it therefore we have to process it"
258
+ ]
259
+ },
260
+ {
261
+ "cell_type": "code",
262
+ "execution_count": 6,
263
+ "id": "2438c58f",
264
+ "metadata": {},
265
+ "outputs": [
266
+ {
267
+ "name": "stdout",
268
+ "output_type": "stream",
269
+ "text": [
270
+ "<class 'pandas.core.frame.DataFrame'>\n",
271
+ "RangeIndex: 5782 entries, 0 to 5781\n",
272
+ "Data columns (total 2 columns):\n",
273
+ " # Column Non-Null Count Dtype \n",
274
+ "--- ------ -------------- ----- \n",
275
+ " 0 Details 5781 non-null object\n",
276
+ " 1 maritime_label 5781 non-null object\n",
277
+ "dtypes: object(2)\n",
278
+ "memory usage: 90.5+ KB\n",
279
+ "<class 'pandas.core.frame.DataFrame'>\n",
280
+ "RangeIndex: 5782 entries, 0 to 5781\n",
281
+ "Data columns (total 3 columns):\n",
282
+ " # Column Non-Null Count Dtype \n",
283
+ "--- ------ -------------- ----- \n",
284
+ " 0 Details 5781 non-null object\n",
285
+ " 1 maritime_label 5781 non-null object\n",
286
+ " 2 Details_cleaned 5781 non-null object\n",
287
+ "dtypes: object(3)\n",
288
+ "memory usage: 135.6+ KB\n"
289
+ ]
290
+ },
291
+ {
292
+ "name": "stderr",
293
+ "output_type": "stream",
294
+ "text": [
295
+ "<ipython-input-6-254c36cdfdd3>:3: SettingWithCopyWarning: \n",
296
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
297
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
298
+ "\n",
299
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
300
+ " text_df['Details_cleaned'] = text_df['Details'].apply(lambda x: clean_text(x) if not isinstance(x, float) else None)\n"
301
+ ]
302
+ }
303
+ ],
304
+ "source": [
305
+ "text_df = df[[\"Details\",\"maritime_label\"]]\n",
306
+ "text_df.info()\n",
307
+ "text_df['Details_cleaned'] = text_df['Details'].apply(lambda x: clean_text(x) if not isinstance(x, float) else None)\n",
308
+ "#no_nan_df[no_nan_df[\"Details\"].apply(lambda x: print(type(x)))]\n",
309
+ "#cleaned_df = text_df[text_df[\"Details\"].apply(lambda x: clean_text(x))]\n",
310
+ "#cleaned_df = df['Details'][1:2]\n",
311
+ "#type(no_nan_df[\"Details\"][0])\n",
312
+ "#print(clean_text(no_nan_df[\"Details\"][0]))\n",
313
+ "text_df.info()"
314
+ ]
315
+ },
316
+ {
317
+ "cell_type": "code",
318
+ "execution_count": 7,
319
+ "id": "4d3b0011",
320
+ "metadata": {},
321
+ "outputs": [
322
+ {
323
+ "data": {
324
+ "text/html": [
325
+ "<div>\n",
326
+ "<style scoped>\n",
327
+ " .dataframe tbody tr th:only-of-type {\n",
328
+ " vertical-align: middle;\n",
329
+ " }\n",
330
+ "\n",
331
+ " .dataframe tbody tr th {\n",
332
+ " vertical-align: top;\n",
333
+ " }\n",
334
+ "\n",
335
+ " .dataframe thead th {\n",
336
+ " text-align: right;\n",
337
+ " }\n",
338
+ "</style>\n",
339
+ "<table border=\"1\" class=\"dataframe\">\n",
340
+ " <thead>\n",
341
+ " <tr style=\"text-align: right;\">\n",
342
+ " <th></th>\n",
343
+ " <th>Details</th>\n",
344
+ " <th>maritime_label</th>\n",
345
+ " <th>Details_cleaned</th>\n",
346
+ " </tr>\n",
347
+ " </thead>\n",
348
+ " <tbody>\n",
349
+ " <tr>\n",
350
+ " <th>0</th>\n",
351
+ " <td>Media sources indicate that workers at the Gra...</td>\n",
352
+ " <td>FALSE</td>\n",
353
+ " <td>medium source indicate worker grasberg mine ex...</td>\n",
354
+ " </tr>\n",
355
+ " <tr>\n",
356
+ " <th>1</th>\n",
357
+ " <td>News sources are stating that recent typhoons ...</td>\n",
358
+ " <td>FALSE</td>\n",
359
+ " <td>news source stating recent typhoon impact hong...</td>\n",
360
+ " </tr>\n",
361
+ " <tr>\n",
362
+ " <th>2</th>\n",
363
+ " <td>The persisting port congestion at Shanghai’s Y...</td>\n",
364
+ " <td>TRUE</td>\n",
365
+ " <td>persisting port congestion shanghai ’ yangshan...</td>\n",
366
+ " </tr>\n",
367
+ " <tr>\n",
368
+ " <th>3</th>\n",
369
+ " <td>Updated local media sources from Jakarta indic...</td>\n",
370
+ " <td>TRUE</td>\n",
371
+ " <td>updated local medium source jakarta indicate e...</td>\n",
372
+ " </tr>\n",
373
+ " <tr>\n",
374
+ " <th>4</th>\n",
375
+ " <td>According to local police in Jakarta, two expl...</td>\n",
376
+ " <td>TRUE</td>\n",
377
+ " <td>according local police jakarta two explosion c...</td>\n",
378
+ " </tr>\n",
379
+ " </tbody>\n",
380
+ "</table>\n",
381
+ "</div>"
382
+ ],
383
+ "text/plain": [
384
+ " Details maritime_label \\\n",
385
+ "0 Media sources indicate that workers at the Gra... FALSE \n",
386
+ "1 News sources are stating that recent typhoons ... FALSE \n",
387
+ "2 The persisting port congestion at Shanghai’s Y... TRUE \n",
388
+ "3 Updated local media sources from Jakarta indic... TRUE \n",
389
+ "4 According to local police in Jakarta, two expl... TRUE \n",
390
+ "\n",
391
+ " Details_cleaned \n",
392
+ "0 medium source indicate worker grasberg mine ex... \n",
393
+ "1 news source stating recent typhoon impact hong... \n",
394
+ "2 persisting port congestion shanghai ’ yangshan... \n",
395
+ "3 updated local medium source jakarta indicate e... \n",
396
+ "4 according local police jakarta two explosion c... "
397
+ ]
398
+ },
399
+ "execution_count": 7,
400
+ "metadata": {},
401
+ "output_type": "execute_result"
402
+ }
403
+ ],
404
+ "source": [
405
+ "processed_data = text_df.dropna()\n",
406
+ "processed_data.head()"
407
+ ]
408
+ },
409
+ {
410
+ "cell_type": "markdown",
411
+ "id": "3c4be609",
412
+ "metadata": {},
413
+ "source": [
414
+ "## Naive Bayes Model"
415
+ ]
416
+ },
417
+ {
418
+ "cell_type": "code",
419
+ "execution_count": 8,
420
+ "id": "5c660011",
421
+ "metadata": {},
422
+ "outputs": [],
423
+ "source": [
424
+ "from sklearn.model_selection import train_test_split\n",
425
+ "from sklearn.feature_extraction.text import TfidfVectorizer\n",
426
+ "# from sklearn.feature_extraction.text import CountVectorizer\n",
427
+ "from sklearn.naive_bayes import MultinomialNB\n",
428
+ "from sklearn.metrics import accuracy_score, classification_report"
429
+ ]
430
+ },
431
+ {
432
+ "cell_type": "code",
433
+ "execution_count": 9,
434
+ "id": "8f009a65",
435
+ "metadata": {},
436
+ "outputs": [],
437
+ "source": [
438
+ "X = processed_data[\"Details_cleaned\"]\n",
439
+ "y = processed_data[\"maritime_label\"]"
440
+ ]
441
+ },
442
+ {
443
+ "cell_type": "code",
444
+ "execution_count": 10,
445
+ "id": "0185a967",
446
+ "metadata": {},
447
+ "outputs": [],
448
+ "source": [
449
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
450
+ ]
451
+ },
452
+ {
453
+ "cell_type": "code",
454
+ "execution_count": 11,
455
+ "id": "d3c2de6b",
456
+ "metadata": {},
457
+ "outputs": [],
458
+ "source": [
459
+ "# vectorizer = CountVectorizer()\n",
460
+ "# X_train_vec = vectorizer.fit_transform(X_train)\n",
461
+ "# X_test_vec = vectorizer.transform(X_test)\n",
462
+ "\n",
463
+ "tfidf_vectorizer = TfidfVectorizer(max_features=1000) \n",
464
+ "X_train_tfidf = tfidf_vectorizer.fit_transform(X_train)\n",
465
+ "X_test_tfidf = tfidf_vectorizer.transform(X_test)"
466
+ ]
467
+ },
468
+ {
469
+ "cell_type": "code",
470
+ "execution_count": 12,
471
+ "id": "ead2fc7a",
472
+ "metadata": {},
473
+ "outputs": [
474
+ {
475
+ "data": {
476
+ "text/plain": [
477
+ "MultinomialNB()"
478
+ ]
479
+ },
480
+ "execution_count": 12,
481
+ "metadata": {},
482
+ "output_type": "execute_result"
483
+ }
484
+ ],
485
+ "source": [
486
+ "naive_bayes = MultinomialNB()\n",
487
+ "naive_bayes.fit(X_train_tfidf, y_train)"
488
+ ]
489
+ },
490
+ {
491
+ "cell_type": "code",
492
+ "execution_count": 13,
493
+ "id": "74c5df68",
494
+ "metadata": {},
495
+ "outputs": [],
496
+ "source": [
497
+ "predictions = naive_bayes.predict(X_test_tfidf)"
498
+ ]
499
+ },
500
+ {
501
+ "cell_type": "code",
502
+ "execution_count": 14,
503
+ "id": "109e9456",
504
+ "metadata": {},
505
+ "outputs": [
506
+ {
507
+ "name": "stdout",
508
+ "output_type": "stream",
509
+ "text": [
510
+ "Accuracy of Naive Bayes model: 0.8582541054451167\n",
511
+ " precision recall f1-score support\n",
512
+ "\n",
513
+ " FALSE 0.88 0.94 0.91 847\n",
514
+ " TRUE 0.79 0.65 0.71 310\n",
515
+ "\n",
516
+ " accuracy 0.86 1157\n",
517
+ " macro avg 0.83 0.79 0.81 1157\n",
518
+ "weighted avg 0.85 0.86 0.85 1157\n",
519
+ "\n"
520
+ ]
521
+ }
522
+ ],
523
+ "source": [
524
+ "accuracy = accuracy_score(y_test, predictions)\n",
525
+ "print(\"Accuracy of Naive Bayes model:\", accuracy)\n",
526
+ "print(classification_report(y_test, predictions))"
527
+ ]
528
+ },
529
+ {
530
+ "cell_type": "markdown",
531
+ "id": "9518614a",
532
+ "metadata": {},
533
+ "source": [
534
+ "## Logistic Regression model"
535
+ ]
536
+ },
537
+ {
538
+ "cell_type": "code",
539
+ "execution_count": 15,
540
+ "id": "912ad7a6",
541
+ "metadata": {},
542
+ "outputs": [],
543
+ "source": [
544
+ "from sklearn.model_selection import train_test_split\n",
545
+ "from sklearn.feature_extraction.text import TfidfVectorizer\n",
546
+ "from sklearn.linear_model import LogisticRegression\n",
547
+ "from sklearn.metrics import accuracy_score"
548
+ ]
549
+ },
550
+ {
551
+ "cell_type": "code",
552
+ "execution_count": 16,
553
+ "id": "03eac734",
554
+ "metadata": {},
555
+ "outputs": [],
556
+ "source": [
557
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
558
+ ]
559
+ },
560
+ {
561
+ "cell_type": "code",
562
+ "execution_count": 17,
563
+ "id": "e84ff87c",
564
+ "metadata": {},
565
+ "outputs": [],
566
+ "source": [
567
+ "tfidf_vectorizer = TfidfVectorizer(max_features=1000) \n",
568
+ "X_train_tfidf = tfidf_vectorizer.fit_transform(X_train)\n",
569
+ "X_test_tfidf = tfidf_vectorizer.transform(X_test)"
570
+ ]
571
+ },
572
+ {
573
+ "cell_type": "code",
574
+ "execution_count": 18,
575
+ "id": "cedb263c",
576
+ "metadata": {},
577
+ "outputs": [
578
+ {
579
+ "data": {
580
+ "text/plain": [
581
+ "LogisticRegression()"
582
+ ]
583
+ },
584
+ "execution_count": 18,
585
+ "metadata": {},
586
+ "output_type": "execute_result"
587
+ }
588
+ ],
589
+ "source": [
590
+ "model = LogisticRegression()\n",
591
+ "model.fit(X_train_tfidf, y_train)"
592
+ ]
593
+ },
594
+ {
595
+ "cell_type": "code",
596
+ "execution_count": 19,
597
+ "id": "6f49fddb",
598
+ "metadata": {},
599
+ "outputs": [
600
+ {
601
+ "name": "stdout",
602
+ "output_type": "stream",
603
+ "text": [
604
+ "Accuracy of Logistic Regression Model: 0.9317199654278306\n",
605
+ " precision recall f1-score support\n",
606
+ "\n",
607
+ " FALSE 0.92 0.99 0.96 847\n",
608
+ " TRUE 0.98 0.76 0.86 310\n",
609
+ "\n",
610
+ " accuracy 0.93 1157\n",
611
+ " macro avg 0.95 0.88 0.91 1157\n",
612
+ "weighted avg 0.93 0.93 0.93 1157\n",
613
+ "\n"
614
+ ]
615
+ }
616
+ ],
617
+ "source": [
618
+ "y_pred = model.predict(X_test_tfidf)\n",
619
+ "\n",
620
+ "accuracy = accuracy_score(y_test, y_pred)\n",
621
+ "print(\"Accuracy of Logistic Regression Model:\", accuracy)\n",
622
+ "print(classification_report(y_test, y_pred))"
623
+ ]
624
+ },
625
+ {
626
+ "cell_type": "markdown",
627
+ "id": "613c0cdf",
628
+ "metadata": {},
629
+ "source": [
630
+ "## Support Vector Machine (SVM) model"
631
+ ]
632
+ },
633
+ {
634
+ "cell_type": "code",
635
+ "execution_count": 20,
636
+ "id": "706302c1",
637
+ "metadata": {},
638
+ "outputs": [],
639
+ "source": [
640
+ "from sklearn.model_selection import train_test_split\n",
641
+ "from sklearn.feature_extraction.text import TfidfVectorizer\n",
642
+ "from sklearn.svm import SVC\n",
643
+ "from sklearn.metrics import accuracy_score"
644
+ ]
645
+ },
646
+ {
647
+ "cell_type": "code",
648
+ "execution_count": 21,
649
+ "id": "b0988ca4",
650
+ "metadata": {},
651
+ "outputs": [],
652
+ "source": [
653
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
654
+ ]
655
+ },
656
+ {
657
+ "cell_type": "code",
658
+ "execution_count": 22,
659
+ "id": "4f682c60",
660
+ "metadata": {},
661
+ "outputs": [],
662
+ "source": [
663
+ "tfidf_vectorizer = TfidfVectorizer(max_features=1000)\n",
664
+ "X_train_tfidf = tfidf_vectorizer.fit_transform(X_train)\n",
665
+ "X_test_tfidf = tfidf_vectorizer.transform(X_test)"
666
+ ]
667
+ },
668
+ {
669
+ "cell_type": "code",
670
+ "execution_count": 23,
671
+ "id": "71ae91d9",
672
+ "metadata": {},
673
+ "outputs": [
674
+ {
675
+ "data": {
676
+ "text/plain": [
677
+ "SVC(kernel='linear')"
678
+ ]
679
+ },
680
+ "execution_count": 23,
681
+ "metadata": {},
682
+ "output_type": "execute_result"
683
+ }
684
+ ],
685
+ "source": [
686
+ "svm_model = SVC(kernel='linear')\n",
687
+ "svm_model.fit(X_train_tfidf, y_train)"
688
+ ]
689
+ },
690
+ {
691
+ "cell_type": "code",
692
+ "execution_count": 24,
693
+ "id": "2dc1b193",
694
+ "metadata": {},
695
+ "outputs": [],
696
+ "source": [
697
+ "y_pred = svm_model.predict(X_test_tfidf)"
698
+ ]
699
+ },
700
+ {
701
+ "cell_type": "code",
702
+ "execution_count": 25,
703
+ "id": "92801e61",
704
+ "metadata": {},
705
+ "outputs": [
706
+ {
707
+ "name": "stdout",
708
+ "output_type": "stream",
709
+ "text": [
710
+ "Accuracy of SVM model: 0.9498703543647364\n",
711
+ " precision recall f1-score support\n",
712
+ "\n",
713
+ " FALSE 0.94 1.00 0.97 847\n",
714
+ " TRUE 0.99 0.82 0.90 310\n",
715
+ "\n",
716
+ " accuracy 0.95 1157\n",
717
+ " macro avg 0.96 0.91 0.93 1157\n",
718
+ "weighted avg 0.95 0.95 0.95 1157\n",
719
+ "\n"
720
+ ]
721
+ }
722
+ ],
723
+ "source": [
724
+ "accuracy = accuracy_score(y_test, y_pred)\n",
725
+ "print(\"Accuracy of SVM model:\", accuracy)\n",
726
+ "print(classification_report(y_test, y_pred))"
727
+ ]
728
+ },
729
+ {
730
+ "cell_type": "markdown",
731
+ "id": "1d1f6ebd",
732
+ "metadata": {},
733
+ "source": [
734
+ "## Random Forest Model"
735
+ ]
736
+ },
737
+ {
738
+ "cell_type": "code",
739
+ "execution_count": 26,
740
+ "id": "9170c174",
741
+ "metadata": {},
742
+ "outputs": [],
743
+ "source": [
744
+ "from sklearn.model_selection import train_test_split\n",
745
+ "from sklearn.feature_extraction.text import TfidfVectorizer\n",
746
+ "from sklearn.ensemble import RandomForestClassifier\n",
747
+ "from sklearn.metrics import accuracy_score"
748
+ ]
749
+ },
750
+ {
751
+ "cell_type": "code",
752
+ "execution_count": 27,
753
+ "id": "2092ca05",
754
+ "metadata": {},
755
+ "outputs": [],
756
+ "source": [
757
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
758
+ ]
759
+ },
760
+ {
761
+ "cell_type": "code",
762
+ "execution_count": 28,
763
+ "id": "206296ce",
764
+ "metadata": {},
765
+ "outputs": [],
766
+ "source": [
767
+ "tfidf_vectorizer = TfidfVectorizer(max_features=1000) \n",
768
+ "X_train_tfidf = tfidf_vectorizer.fit_transform(X_train)\n",
769
+ "X_test_tfidf = tfidf_vectorizer.transform(X_test)"
770
+ ]
771
+ },
772
+ {
773
+ "cell_type": "code",
774
+ "execution_count": 29,
775
+ "id": "258bd78f",
776
+ "metadata": {},
777
+ "outputs": [
778
+ {
779
+ "data": {
780
+ "text/plain": [
781
+ "RandomForestClassifier(random_state=42)"
782
+ ]
783
+ },
784
+ "execution_count": 29,
785
+ "metadata": {},
786
+ "output_type": "execute_result"
787
+ }
788
+ ],
789
+ "source": [
790
+ "rf_model = RandomForestClassifier(n_estimators=100, random_state=42)\n",
791
+ "rf_model.fit(X_train_tfidf, y_train)"
792
+ ]
793
+ },
794
+ {
795
+ "cell_type": "code",
796
+ "execution_count": 30,
797
+ "id": "0e2910f6",
798
+ "metadata": {},
799
+ "outputs": [],
800
+ "source": [
801
+ "y_pred = rf_model.predict(X_test_tfidf)"
802
+ ]
803
+ },
804
+ {
805
+ "cell_type": "code",
806
+ "execution_count": 31,
807
+ "id": "f06900d3",
808
+ "metadata": {},
809
+ "outputs": [
810
+ {
811
+ "name": "stdout",
812
+ "output_type": "stream",
813
+ "text": [
814
+ "Accuracy of Random Forest Model: 0.9636992221261884\n",
815
+ " precision recall f1-score support\n",
816
+ "\n",
817
+ " FALSE 0.96 0.99 0.98 847\n",
818
+ " TRUE 0.98 0.88 0.93 310\n",
819
+ "\n",
820
+ " accuracy 0.96 1157\n",
821
+ " macro avg 0.97 0.94 0.95 1157\n",
822
+ "weighted avg 0.96 0.96 0.96 1157\n",
823
+ "\n"
824
+ ]
825
+ }
826
+ ],
827
+ "source": [
828
+ "accuracy = accuracy_score(y_test, y_pred)\n",
829
+ "print(\"Accuracy of Random Forest Model:\", accuracy)\n",
830
+ "print(classification_report(y_test, y_pred))"
831
+ ]
832
+ },
833
+ {
834
+ "cell_type": "markdown",
835
+ "id": "64673d66",
836
+ "metadata": {},
837
+ "source": [
838
+ "## Simpe Neural Network"
839
+ ]
840
+ },
841
+ {
842
+ "cell_type": "code",
843
+ "execution_count": 1,
844
+ "id": "b8b103b0",
845
+ "metadata": {},
846
+ "outputs": [
847
+ {
848
+ "name": "stdout",
849
+ "output_type": "stream",
850
+ "text": [
851
+ "Collecting tensorflow\n",
852
+ " Obtaining dependency information for tensorflow from https://files.pythonhosted.org/packages/f9/14/67e9b2b2379cb530c0412123a674d045eca387dfcfa7db1c0028857b0a66/tensorflow-2.16.1-cp311-cp311-macosx_12_0_arm64.whl.metadata\n",
853
+ " Downloading tensorflow-2.16.1-cp311-cp311-macosx_12_0_arm64.whl.metadata (4.1 kB)\n",
854
+ "Collecting absl-py>=1.0.0 (from tensorflow)\n",
855
+ " Obtaining dependency information for absl-py>=1.0.0 from https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl.metadata\n",
856
+ " Downloading absl_py-2.1.0-py3-none-any.whl.metadata (2.3 kB)\n",
857
+ "Collecting astunparse>=1.6.0 (from tensorflow)\n",
858
+ " Obtaining dependency information for astunparse>=1.6.0 from https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl.metadata\n",
859
+ " Downloading astunparse-1.6.3-py2.py3-none-any.whl.metadata (4.4 kB)\n",
860
+ "Collecting flatbuffers>=23.5.26 (from tensorflow)\n",
861
+ " Obtaining dependency information for flatbuffers>=23.5.26 from https://files.pythonhosted.org/packages/bf/45/c961e3cb6ddad76b325c163d730562bb6deb1ace5acbed0306f5fbefb90e/flatbuffers-24.3.7-py2.py3-none-any.whl.metadata\n",
862
+ " Downloading flatbuffers-24.3.7-py2.py3-none-any.whl.metadata (849 bytes)\n",
863
+ "Collecting gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 (from tensorflow)\n",
864
+ " Obtaining dependency information for gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 from https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl.metadata\n",
865
+ " Downloading gast-0.5.4-py3-none-any.whl.metadata (1.3 kB)\n",
866
+ "Collecting google-pasta>=0.1.1 (from tensorflow)\n",
867
+ " Obtaining dependency information for google-pasta>=0.1.1 from https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl.metadata\n",
868
+ " Downloading google_pasta-0.2.0-py3-none-any.whl.metadata (814 bytes)\n",
869
+ "Collecting h5py>=3.10.0 (from tensorflow)\n",
870
+ " Obtaining dependency information for h5py>=3.10.0 from https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl.metadata\n",
871
+ " Downloading h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (2.5 kB)\n",
872
+ "Collecting libclang>=13.0.0 (from tensorflow)\n",
873
+ " Obtaining dependency information for libclang>=13.0.0 from https://files.pythonhosted.org/packages/db/ed/1df62b44db2583375f6a8a5e2ca5432bbdc3edb477942b9b7c848c720055/libclang-18.1.1-py2.py3-none-macosx_11_0_arm64.whl.metadata\n",
874
+ " Downloading libclang-18.1.1-py2.py3-none-macosx_11_0_arm64.whl.metadata (5.2 kB)\n",
875
+ "Collecting ml-dtypes~=0.3.1 (from tensorflow)\n",
876
+ " Obtaining dependency information for ml-dtypes~=0.3.1 from https://files.pythonhosted.org/packages/6e/a4/6aabb78f1569550fd77c74d2c1d008b502c8ce72776bd88b14ea6c182c9e/ml_dtypes-0.3.2-cp311-cp311-macosx_10_9_universal2.whl.metadata\n",
877
+ " Downloading ml_dtypes-0.3.2-cp311-cp311-macosx_10_9_universal2.whl.metadata (20 kB)\n",
878
+ "Collecting opt-einsum>=2.3.2 (from tensorflow)\n",
879
+ " Obtaining dependency information for opt-einsum>=2.3.2 from https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl.metadata\n",
880
+ " Downloading opt_einsum-3.3.0-py3-none-any.whl.metadata (6.5 kB)\n",
881
+ "Requirement already satisfied: packaging in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (23.0)\n",
882
+ "Collecting protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 (from tensorflow)\n",
883
+ " Obtaining dependency information for protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 from https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl.metadata\n",
884
+ " Downloading protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl.metadata (541 bytes)\n",
885
+ "Requirement already satisfied: requests<3,>=2.21.0 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (2.31.0)\n",
886
+ "Requirement already satisfied: setuptools in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (68.0.0)\n",
887
+ "Requirement already satisfied: six>=1.12.0 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (1.16.0)\n",
888
+ "Collecting termcolor>=1.1.0 (from tensorflow)\n",
889
+ " Obtaining dependency information for termcolor>=1.1.0 from https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl.metadata\n",
890
+ " Downloading termcolor-2.4.0-py3-none-any.whl.metadata (6.1 kB)\n",
891
+ "Requirement already satisfied: typing-extensions>=3.6.6 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (4.7.1)\n",
892
+ "Requirement already satisfied: wrapt>=1.11.0 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (1.14.1)\n",
893
+ "Collecting grpcio<2.0,>=1.24.3 (from tensorflow)\n",
894
+ " Obtaining dependency information for grpcio<2.0,>=1.24.3 from https://files.pythonhosted.org/packages/c1/0a/a8c0f403b2189f5d3e490778ead51924b56fa30a35f6e444b3702e28c8c8/grpcio-1.62.1-cp311-cp311-macosx_10_10_universal2.whl.metadata\n",
895
+ " Downloading grpcio-1.62.1-cp311-cp311-macosx_10_10_universal2.whl.metadata (4.0 kB)\n",
896
+ "Collecting tensorboard<2.17,>=2.16 (from tensorflow)\n",
897
+ " Obtaining dependency information for tensorboard<2.17,>=2.16 from https://files.pythonhosted.org/packages/3a/d0/b97889ffa769e2d1fdebb632084d5e8b53fc299d43a537acee7ec0c021a3/tensorboard-2.16.2-py3-none-any.whl.metadata\n",
898
+ " Downloading tensorboard-2.16.2-py3-none-any.whl.metadata (1.6 kB)\n",
899
+ "Collecting keras>=3.0.0 (from tensorflow)\n",
900
+ " Obtaining dependency information for keras>=3.0.0 from https://files.pythonhosted.org/packages/59/a8/d94e8acb59d678d908fe1db0c7ad89dfa2c2e2e529eeb3c2b3cc218a758d/keras-3.1.1-py3-none-any.whl.metadata\n",
901
+ " Downloading keras-3.1.1-py3-none-any.whl.metadata (5.6 kB)\n",
902
+ "Collecting tensorflow-io-gcs-filesystem>=0.23.1 (from tensorflow)\n",
903
+ " Obtaining dependency information for tensorflow-io-gcs-filesystem>=0.23.1 from https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl.metadata\n",
904
+ " Downloading tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl.metadata (14 kB)\n",
905
+ "Requirement already satisfied: numpy<2.0.0,>=1.23.5 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorflow) (1.24.3)\n",
906
+ "Requirement already satisfied: wheel<1.0,>=0.23.0 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from astunparse>=1.6.0->tensorflow) (0.38.4)\n",
907
+ "Collecting rich (from keras>=3.0.0->tensorflow)\n",
908
+ " Obtaining dependency information for rich from https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl.metadata\n",
909
+ " Downloading rich-13.7.1-py3-none-any.whl.metadata (18 kB)\n",
910
+ "Collecting namex (from keras>=3.0.0->tensorflow)\n",
911
+ " Obtaining dependency information for namex from https://files.pythonhosted.org/packages/cd/43/b971880e2eb45c0bee2093710ae8044764a89afe9620df34a231c6f0ecd2/namex-0.0.7-py3-none-any.whl.metadata\n",
912
+ " Downloading namex-0.0.7-py3-none-any.whl.metadata (246 bytes)\n",
913
+ "Collecting optree (from keras>=3.0.0->tensorflow)\n",
914
+ " Obtaining dependency information for optree from https://files.pythonhosted.org/packages/14/8a/a7a152dedfc700de64efa68c3ae7ccf079ba5a5bc8ff1706a671b374cfcd/optree-0.10.0-cp311-cp311-macosx_11_0_arm64.whl.metadata\n",
915
+ " Downloading optree-0.10.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (45 kB)\n",
916
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m45.3/45.3 kB\u001b[0m \u001b[31m4.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
917
+ "\u001b[?25hRequirement already satisfied: charset-normalizer<4,>=2 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from requests<3,>=2.21.0->tensorflow) (2.0.4)\n",
918
+ "Requirement already satisfied: idna<4,>=2.5 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from requests<3,>=2.21.0->tensorflow) (3.4)\n",
919
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from requests<3,>=2.21.0->tensorflow) (1.26.16)\n",
920
+ "Requirement already satisfied: certifi>=2017.4.17 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from requests<3,>=2.21.0->tensorflow) (2024.2.2)\n",
921
+ "Requirement already satisfied: markdown>=2.6.8 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorboard<2.17,>=2.16->tensorflow) (3.4.1)\n",
922
+ "Collecting tensorboard-data-server<0.8.0,>=0.7.0 (from tensorboard<2.17,>=2.16->tensorflow)\n",
923
+ " Obtaining dependency information for tensorboard-data-server<0.8.0,>=0.7.0 from https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl.metadata\n"
924
+ ]
925
+ },
926
+ {
927
+ "name": "stdout",
928
+ "output_type": "stream",
929
+ "text": [
930
+ " Downloading tensorboard_data_server-0.7.2-py3-none-any.whl.metadata (1.1 kB)\n",
931
+ "Requirement already satisfied: werkzeug>=1.0.1 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from tensorboard<2.17,>=2.16->tensorflow) (2.2.3)\n",
932
+ "Requirement already satisfied: MarkupSafe>=2.1.1 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from werkzeug>=1.0.1->tensorboard<2.17,>=2.16->tensorflow) (2.1.1)\n",
933
+ "Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from rich->keras>=3.0.0->tensorflow) (2.2.0)\n",
934
+ "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from rich->keras>=3.0.0->tensorflow) (2.15.1)\n",
935
+ "Requirement already satisfied: mdurl~=0.1 in /Users/barebear/anaconda3/lib/python3.11/site-packages (from markdown-it-py>=2.2.0->rich->keras>=3.0.0->tensorflow) (0.1.0)\n",
936
+ "Downloading tensorflow-2.16.1-cp311-cp311-macosx_12_0_arm64.whl (227.0 MB)\n",
937
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m227.0/227.0 MB\u001b[0m \u001b[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:02\u001b[0m\n",
938
+ "\u001b[?25hDownloading absl_py-2.1.0-py3-none-any.whl (133 kB)\n",
939
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m133.7/133.7 kB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m \u001b[36m0:00:01\u001b[0m\n",
940
+ "\u001b[?25hDownloading astunparse-1.6.3-py2.py3-none-any.whl (12 kB)\n",
941
+ "Downloading flatbuffers-24.3.7-py2.py3-none-any.whl (26 kB)\n",
942
+ "Downloading gast-0.5.4-py3-none-any.whl (19 kB)\n",
943
+ "Downloading google_pasta-0.2.0-py3-none-any.whl (57 kB)\n",
944
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.5/57.5 kB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
945
+ "\u001b[?25hDownloading grpcio-1.62.1-cp311-cp311-macosx_10_10_universal2.whl (10.0 MB)\n",
946
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.0/10.0 MB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m0:01\u001b[0m\n",
947
+ "\u001b[?25hDownloading h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB)\n",
948
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.6/2.6 MB\u001b[0m \u001b[31m3.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
949
+ "\u001b[?25hDownloading keras-3.1.1-py3-none-any.whl (1.1 MB)\n",
950
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.1/1.1 MB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
951
+ "\u001b[?25hDownloading libclang-18.1.1-py2.py3-none-macosx_11_0_arm64.whl (26.4 MB)\n",
952
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m26.4/26.4 MB\u001b[0m \u001b[31m4.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
953
+ "\u001b[?25hDownloading ml_dtypes-0.3.2-cp311-cp311-macosx_10_9_universal2.whl (389 kB)\n",
954
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m389.8/389.8 kB\u001b[0m \u001b[31m2.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
955
+ "\u001b[?25hDownloading opt_einsum-3.3.0-py3-none-any.whl (65 kB)\n",
956
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m65.5/65.5 kB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
957
+ "\u001b[?25hDownloading protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl (394 kB)\n",
958
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m394.2/394.2 kB\u001b[0m \u001b[31m3.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
959
+ "\u001b[?25hDownloading tensorboard-2.16.2-py3-none-any.whl (5.5 MB)\n",
960
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.5/5.5 MB\u001b[0m \u001b[31m3.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
961
+ "\u001b[?25hDownloading tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl (3.4 MB)\n",
962
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.4/3.4 MB\u001b[0m \u001b[31m3.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
963
+ "\u001b[?25hDownloading termcolor-2.4.0-py3-none-any.whl (7.7 kB)\n",
964
+ "Downloading tensorboard_data_server-0.7.2-py3-none-any.whl (2.4 kB)\n",
965
+ "Downloading namex-0.0.7-py3-none-any.whl (5.8 kB)\n",
966
+ "Downloading optree-0.10.0-cp311-cp311-macosx_11_0_arm64.whl (250 kB)\n",
967
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m250.2/250.2 kB\u001b[0m \u001b[31m2.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
968
+ "\u001b[?25hDownloading rich-13.7.1-py3-none-any.whl (240 kB)\n",
969
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m240.7/240.7 kB\u001b[0m \u001b[31m3.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
970
+ "\u001b[?25hInstalling collected packages: namex, libclang, flatbuffers, termcolor, tensorflow-io-gcs-filesystem, tensorboard-data-server, protobuf, optree, opt-einsum, ml-dtypes, h5py, grpcio, google-pasta, gast, astunparse, absl-py, tensorboard, rich, keras, tensorflow\n",
971
+ " Attempting uninstall: h5py\n",
972
+ " Found existing installation: h5py 3.7.0\n",
973
+ " Uninstalling h5py-3.7.0:\n",
974
+ " Successfully uninstalled h5py-3.7.0\n",
975
+ "Successfully installed absl-py-2.1.0 astunparse-1.6.3 flatbuffers-24.3.7 gast-0.5.4 google-pasta-0.2.0 grpcio-1.62.1 h5py-3.10.0 keras-3.1.1 libclang-18.1.1 ml-dtypes-0.3.2 namex-0.0.7 opt-einsum-3.3.0 optree-0.10.0 protobuf-4.25.3 rich-13.7.1 tensorboard-2.16.2 tensorboard-data-server-0.7.2 tensorflow-2.16.1 tensorflow-io-gcs-filesystem-0.36.0 termcolor-2.4.0\n",
976
+ "Note: you may need to restart the kernel to use updated packages.\n"
977
+ ]
978
+ }
979
+ ],
980
+ "source": [
981
+ "pip install tensorflow"
982
+ ]
983
+ },
984
+ {
985
+ "cell_type": "code",
986
+ "execution_count": null,
987
+ "id": "e6dd2304",
988
+ "metadata": {},
989
+ "outputs": [],
990
+ "source": []
991
+ }
992
+ ],
993
+ "metadata": {
994
+ "kernelspec": {
995
+ "display_name": "Python 3 (ipykernel)",
996
+ "language": "python",
997
+ "name": "python3"
998
+ },
999
+ "language_info": {
1000
+ "codemirror_mode": {
1001
+ "name": "ipython",
1002
+ "version": 3
1003
+ },
1004
+ "file_extension": ".py",
1005
+ "mimetype": "text/x-python",
1006
+ "name": "python",
1007
+ "nbconvert_exporter": "python",
1008
+ "pygments_lexer": "ipython3",
1009
+ "version": "3.11.4"
1010
+ }
1011
+ },
1012
+ "nbformat": 4,
1013
+ "nbformat_minor": 5
1014
+ }
IS424_Data_Mining/code/Classification/converstion.png ADDED
IS424_Data_Mining/code/Classification/label_list.xlsx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3d35b4751dda3f38601299f1cb5435ac8ec10f4e8c565e17bd56c678cee0ba1e
3
+ size 6448
IS424_Data_Mining/code/Classification/new_labels.xlsx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d2c27675a2408cfaa948f4030b19f67deb9fe72bfa3eb80f721ebb4386ea77a
3
+ size 10338
IS424_Data_Mining/code/Classification/unique labels.xlsx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b732989c42c05664f2fa15e8d3c9bf6a3da63879273715696e4baa47662bdc19
3
+ size 1848881
IS424_Data_Mining/code/GPT/Pipeline.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/GPT/cleaned_data1.csv ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,Headline,Summary,Category,Datetime,URL
2
+ 1,Shanghai port congestion impacts terminals in Qingdao and Ningbo,"The persisting port congestion at Shanghai’s Yangshan deep-sea terminal is reportedly also impacting vessel arrival times at other major public terminals in China, including Qingdao and Ningbo. Industry sources indicated that this is due to some vessels being diverted from Shanghai as well as unstable weather and re-shuffling of alliances networks. Some carriers are reportedly planning contingency actions for the coming months, including consolidation of volumes and temporary reduction of port calls. No further details were initially provided.",Maritime Advisory,27/4/17 9:16,https://theloadstar.com/congestion-surges-at-chinese-ports-amid-shanghai-lockdowns-and-driver-curbs/
3
+ 2,Lack of gangs may impede operations at Port of Barcelona,Shipping sources on August 19 indicate that lack of gangs due to summer holidays may impede port operations at Port of Barcelona.,Maritime Advisory,19/8/19 8:43,https://www.reuters.com/world/europe/barcelona-dockers-refuse-handle-military-material-amid-gaza-war-2023-11-07/
4
+ 3,Port of Ulsan bans variety of hazardous cargo following major chemical tanker explosion,"Media sources indicate on October 7 that the Port of Ulsan has banned a variety of hazardous cargoes from terminals near a bridge where a major chemical tanker Stolt Groenland was caught in an explosion that occurred on September 30. The fire injured eighteen people and led to an overhead bridge, which serves as a thoroughfare for the city, to be closed for two days due to safety checks.",Port Closure,7/10/19 10:12,https://splash247.com/ulsan-port-takes-action-against-hazardous-cargoes-in-wake-of-stolt-explosion/
5
+ 4,Port of Valencia - The port has been reopened to maritime traffic. Incident closed.,The Port of Valencia has been reopened to maritime traffic following a closure due to poor weather conditions. This incident is closed.,Port Closure,20/4/19 7:09,https://safety4sea.com/valenciaport-ready-to-manage-traffic-after-suez-canal-blockage/
6
+ 5,Shipco Transport to fine shippers for misdeclared hazardous cargoes,"Industry sources indicate on August 22 that Chatham, NJ-based Shipco Transport announced its intent to implement a penalty of USD 5,000-35,000 (EUR 4,500-31,750) per container for misdeclared or undeclared hazardous cargoes, with a definitive fine quantity unknown as of reporting, and it is unknown when this penalty will come into effect. Shipco will hold the customer on record liable and responsible for costs and consequences related to violations, fines, damages, incidents, claims and corrective measures resulting from cases of shipment of such cargo. The move is similar to that implemented by other cargo shipping lines in the aftermath of the Yantian Express fire.",Port Closure,22/8/19 17:38,https://theloadstar.com/carriers-to-fine-rogue-shippers-for-misdeclared-goods-in-containers/
7
+ 6,Singapore arrests eleven men for illegal marine gas oil transaction,Media sources indicated on November 4 that the Maritime and Port Authority of Singapore has arrested eleven men for their suspected involvement in an illegal transaction of marine gas oil at sea off Northern Tuas. The eleven men include six crew members of a craft of a marine service provider and another five of a foreign-registered tugboat. Preliminary reports cited that the crewmembers were thought to have misappropriated the marine gas oil and sold it to crew members of the tugboats.,Port Closure,6/11/19 1:37,https://www.seatrade-maritime.com/asia/11-men-arrested-illegal-mgo-trade-singapore
8
+ 7,UPDATE: Delays decrease to 12-24 hours at Port of Colombo,"Industry sources indicate on September 17 that some vessels at the South Asia Gateway Terminals (SAGT Terminal) at the Port of Colombo, Sri Lanka, are currently facing delays that have now reduced to 12-24 hours due to internal labour issues.",Port Congestion,5/9/19 12:18,https://www.tbsnews.net/economy/colombo-port-congestion-comes-fresh-supply-chain-woe-394238
9
+ 8,UPDATE: Dense fog causes closure of Port of Shanghai,"According to sources on March 13, the Port of Shanghai is currently closed due to dense fog. Hence, vessels’ waiting time is around 1 to 1.5 days. Moreover, low visibility is likely to affect the port from 22:00 (local time) from March 13 until 16:00 of the next day. There is a moderate to high chance that the port may closed again.",Port Congestion,11/3/19 7:13,https://psabdp.com/news/heavy-fog-affecting-shanghai-port-operations
10
+ 9,UPDATE: Port of Colombo faces berthing delays,"Sources on March 11 indicate that the Port of Colombo is facing berthing delays due to unspecified reasons. An average waiting time for the vessels is likely to be around 1 to 2 days. In addition, congestion is likely to be exacerbated by repair works on 4 gantry cranes which will start March 18 and last for two weeks. Out-of-window arrivals will likely face extended berthing times.",Port Congestion,11/3/19 7:51,https://www.businesstimes.com.sg/companies-markets/transport-logistics/sri-lankas-colombo-port-sees-jump-traffic-amid-red-sea
11
+ 10,Greenpeace Protest on Hartman Bridge on Thursday Temporarily Closed Portion of Houston Ship Channel,"On Thursday, September 12, 23 protesters associated with Greenpeace demonstrated along the Fred Hartman Bridge in Baytown, TX just outside of Houston. The protest began around 6:30 AM local time and included 11 of the protesters rappelling down the bridge to disrupt shipping traffic in the Houston Ship Channel. While the bridge stayed open during the protest to vehicular traffic, a half-mile portion of the ship channel was closed between Light 102A and Light 104 until reopening early Friday morning after protesters were arrested. The protest remained peaceful; however, the initial blocking of the bridge led to a minor motor vehicle accident which injured one person.
12
+
13
+ Assessment: The Greenpeace activists stated that their goal of the protest was to attempt to disrupt the oil and gas shipments that go through the Houston Ship Channel. The group timed their protest to attempt to get the attention of Democratic presidential candidates who were in Houston Thursday for a Democrat National Committee presidential debate. The Houston Ship Channel and Port of Houston are vital to U.S. oil and gas exports and the ship channel is the busiest in the country annually generating approximately $339 billion and providing over 1.35 million jobs to the state of Texas. The portion of the ship channel that was closed on Thursday normally sees approximately 300 vessels pass through, and according to media sources, at least seven were blocked during the temporary closure. The protest did not cause any significant disruptions to shipping interests, as many companies often build in an extra day to shipping schedules as a precaution.
14
+
15
+ An uptick in climate change-related protests has been seen in recent months, especially across Europe. The majority of protests are organized by groups such as Greenpeace or Extinction Rebellion and have been relatively peaceful, although some have been disruptive with protesters blocking bridges, and trains, similar to the Greenpeace protesters temporarily shutting down the Houston Ship Channel on Thursday. Additionally, a weeklong series of protests are being planned across the world beginning Friday, September 20 as part of a global climate strike action. The relative ease with which the Greenpeace protesters in Baytown were able to shut down a portion of the Houston Ship Channel using a small group of people and the increased focus on climate-related protests highlight the possibility of an increase in similar protests across the United States. As such, Resilience360 customers with cargo interests should anticipate the possibility of disruptions to supply chains due to climate-related protests.",Miscellaneous Events,13/9/19 21:29,https://apnews.com/article/71e047ecff8447a38e3f4ff5db02046a
16
+ 11,14 miles NE of Jakarta - A magnitude 4.5 earthquake was detected in the region. Incident closed.,"A magnitude 4.5 earthquake was detected 14 miles northeast of Jakarta, Indonesia. There were no initial reports of associated injuries or damage. This incident is closed.",Earthquake,24/9/18 18:33,https://www.channelnewsasia.com/asia/indonesia-jakarta-earthquake-feb-25-4148316
17
+ 12,17 miles SW of Batangas - A magnitude 5.5 earthquake was detected in Batangas Bay. Incident closed.,"Multiple sources report that a magnitude 5.5 earthquake was detected in the Batangas Bay, approximately 17 miles southwest of Batangas, Philippines. There have been no reports of associated injuries or structural damage. This incident is closed.",Earthquake,31/8/18 15:04,http://www.xinhuanet.com/english/2018-07/03/c_137298593.htm
18
+ 13,Magnitude 6.2 earthquake reported north of Surabaya,"The US Geological Survey is reporting that a magnitude 6.2 earthquake, at a depth of 592.2 km, has occurred approximately 116 km north of Surbaya. There have been some reports of tremors having been felt although it is estimated that little or no population will be affected.",Earthquake,5/2/20 19:37,https://tass.com/world/966713
19
+ 14,Delta Flight 472 met by PAPD firefighters at JFK due to brake smoke,"Local media sources indicated on September 20 that Delta flight 472 from Sao Paulo Guarulhos International Airport to New York’s JFK International Airport was met by Port Authority Police Department firefighters upon its landing at 5:30AM on September 20 after reports of smoking brakes. The Delta 767 initially reported overheating brakes mid-air shortly after landing, and the passengers were deplaned normally, with no injuries to report.",Aviation Advisory,21/9/18 13:06,https://www.guycarp.com/insights/2020/07/hurricane-isaias-threatens-much-of-eastern-us-seaboard.html
20
+ 15,Gatwick Airport (LGW) - British Airways flight 2068 made an emergency landing. Incident closed.,Media sources indicated that British Airways flight 2068 from Port Louis to London made an emergency landing at Gatwick Airport (LGW) due to an unspecified emergency. No injuries were immediately indicated. This incident is closed.,Aviation Advisory,14/3/19 17:17,https://www.theguardian.com/uk-news/2018/jul/20/british-airways-plane-in-emergency-landing-at-gatwick
21
+ 17,"UPDATE - USA: Hurricane Dorian forecast to impact coasts of Georgia and Carolinas, as well as Florida","According to the latest details on 1 September, Hurricane Dorian remains at Category 4 strength as it moves westwards at 8 mph, with maximum sustained winds of 150 mph; just shy of Category 5. Peak winds are predicted to increase to 155 mph. The weather system, previously heading towards Florida's Atlantic coast, is now forecast to target the coasts of Georgia and the Carolinas, where it may approach as a Category 2 system, bringing life-threatening storm surges. The cities of Brunswick, GA; Charleston, SC; and Wilmington, NC, could all see more than six inches of rainfall. A number of Florida’s mandatory evacuation orders have since been postponed, though voluntary requests for evacuations remain across several counties. A significant storm surge and devastating hurricane-force winds are both possible along portions of Florida’s east coast by the early-to-middle part of next week. Even while the majority of computer models predict Dorian to remain just offshore of Florida, officials have warned of significant and potentially devastating impacts. A stretch of Florida's east coast, from Deerfield Beach to Sebastian Inlet, is under a Tropical Storm Watch. Since the storm is predicted to slow down and turn northward as it approaches, the effects from wind, rain and storm surges could be prolonged. Nevertheless, the storm's path could still change and fluctuations in intensity are likely. However, irrespective of the storm’s ultimate course, significant coastal flooding is to be expected.",Aviation Advisory,1/9/19 10:10,https://www.guycarp.com/insights/2019/09/weather-sentinel-category-5-dorian-labor-day-update.html
22
+ 18,UPDATE: Pakistan partially closes 3 international routes over Karachi until August 31; India threatens to block ships bound for Karachi Port in retaliation,"Updated media reports indicate on August 28 that Pakistan has closed three aviation routes over Karachi from August 28-31, according to the country’s civil aviation authority, after a senior Pakistani minister stated a day earlier that the government was contemplating a complete ban on Indian flights using the country’s airspace. The four-day ban will reportedly expire on September 1. Pilots have been provided with an alternate route to get around restrictions on the Karachi airspace. Reports suggest that the decision was reportedly taken to allow for possible missile test firing in light of recent rising bilateral tensions. In retaliation, senior Indian politician and Bharatiya Janata Party‎ (BJP) leader suggested on Twitter that India should respond by blocking ships bound for the Port of Karachi by placing a naval blockade in the Arabian Sea. Pakistan previously lifted all commercial restrictions over Pakistani airspace on the morning of July 16 after the airspace was closed to civilian flights from February 27 due to tensions between India and Pakistan in the Kashmir region. Bilateral tensions have been simmering this month after Indian Prime Minister Narendra Modi revoked Kashmir’s special status. Customers are advised to monitor developments closely and re-route shipments through alternative air and land transport routes should Pakistan decide to close the airspace indefinitely.",Aviation Advisory,28/8/19 2:37,https://www.google.com/search?client=safari&rls=en&q=UPDATE%3A+Pakistan+partially+closes+3+international+routes+over+Karachi+until+August+31%3B+India+threatens+to+block+ships+bound+for+Karachi+Port+in+retaliation&ie=UTF-8&oe=UTF-8
23
+ 19,Victoria Harbour - Reports of a plane crash were erroneous. Incident closed.,Updated sources are reporting that reports of a small plane crash in Victoria Harbour were erroneous. This incident is closed.,Aviation Advisory,10/5/19 8:26,https://www.scmp.com/magazines/post-magazine/short-reads/article/3192997/when-plane-plunged-victoria-harbour-hong-kong
24
+ 20,"Air Arabia flight G9-661 bound for Khartoum makes U-turn over Port Sudan, heading for Jeddah","Flight monitoring sources are reporting a change in the flight plan of Air Arabia flight G9-661 bound for Khartoum on Tuesday, 14 January. The flight from Sharjah, UAE, has made a U-turn over Port Sudan and appears to be diverting to Jeddah. Although not explicitly stated there is a strong potential that this is due to a reported airspace closure of Khartoum amid reports of clashes involving sections of the security forces.",Aviation Advisory,14/1/20 13:12,https://www.bbc.com/news/world-africa-65444282
25
+ 21,Beirut International Airport suffers damage from port explosion,"On August 5, media sources reported that Beirut International Airport has suffered damage from the port explosion on August 4. Rafic Hariri International Airport is located 10 kilometers from where the epicenter of the explosion was located. So far, Emirates Airlines has confirmed that flights from Dubai to Beirut continue to operate as scheduled. This is an indication that flight operations will not be impacted by the damage.",Aviation Advisory,5/8/20 21:07,https://www.theguardian.com/world/2023/aug/03/port-of-beirut-explosion-aftermath-scars-on-already-broken-lebanon
26
+ 22,Hurricane Isaias to Impact Florida Coast this Weekend Before Moving up the Eastern Seaboard,"Hurricane Isaias is continuing to strengthen as it moves through the Bahamas towards the east Florida coast. The storm is currently a Category 1 hurricane on the Saffir-Simpson wind scale, with winds of at least 75 miles per hour. Strengthening is expected beginning Friday night and the storm may increase to a Category 2 hurricane. The current forecast shows Isaias skirting the east coast of Florida beginning Saturday night before moving up the East Coast. Landfall is currently forecast sometime on Monday near the South Carolina-North Carolina border. Isaias will then weaken into a tropical storm and is expected to continue moving up the coast, potentially impacting the Northeast coast. Some uncertainty in the track of the storm remains and its possible the storm makes landfall along the upper east coast of Florida late Sunday in addition to the expected landfall in the Carolinas. The National Hurricane Center (NHC) has issued a hurricane warning for portions of the central and southern Atlantic Florida coasts. A state of emergency has been issued for the entire eastern Florida coast as well as for the states of North Carolina and Virginia.
27
+
28
+
29
+
30
+ Assessment: As of this writing, the only evacuations issued are on Ocracoke Island in North Carolina. Evacuations remain a possibility for the coast of Florida as the storm continues to move closer to land and the hurricane track evolves. Airport closures and flight delays also remain a possibility both along the eastern coast of Florida, as well as up the rest of the East Coast as the storm moves up the coastline. Portions of Florida and the Carolinas are forecast to see upwards of five inches of rain and flash flooding is possible along the entire east coast of the United States. Similarly, port closures remain a possibility but as of this writing, none have been issued. Several ports in Florida, South Carolina, North Carolina, and Virginia have been set to Port Condition Whiskey. This means that ports remain open to all commercial and cargo operations but commercial vessels greater than 500 gross tons should begin making plans to depart the port. The strong winds from Isaias are likely to cause widespread power outages across the eastern seaboard. Some outages may be prolonged for multiple days depending on other impacts caused by the storm. Those with interests along the U.S. East Coast are advised to continue monitoring the situation closely. The public should use extreme caution in storm conditions and heed all weather warnings and instructions from local authorities.",Aviation Advisory,31/7/20 23:07,https://www.guycarp.com/insights/2020/07/hurricane-isaias-threatens-much-of-eastern-us-seaboard.html
31
+ 27,The Search and Rescue Agencies of Indonesia and Singapore started its 38th,The Search and Rescue Agencies of Indonesia and Singapore started its 38th Joint Exercise 2020 in Pangkalpinang on the prevention of accidents on vessels and aircraft in an effort to strengthen bilateral ties between both the nations.,Aviation Advisory,15/10/20 7:05,https://www.todayonline.com/world/asia/live-updates-day-6-jan-2-search-airasia-flight-qz8501
32
+ 28,UPDATE 1 - Attacks on tanker and oil facility indicate growing Houthi intent and capacity to target Saudi strategic infrastructure,"An explosion caused damage to the Greek-operated Agrari oil tanker on 25 November while it was about to depart from Saudi Arabia’s port of Shuqaiq in the Jizan region bordering Yemen. The incident came after Yemen-based Houthi militants fired a cruise missile at a Saudi oil facility in the port city of Jeddah on 23 November.Men stand by debris following an attack at the Saudi Aramco oil facility in Saudi Arabia’s Red Sea city of Jeddah on 24 November 2020.Photo by Fayez Nureldine/AFP via Getty ImagesThe attacks are part of the ongoing Houthi campaign targeting strategic infrastructure in Saudi Arabia, which has intensified since early September. The Greek operator of the oil tanker, TMS Tankers, stated that the tanker was “struck about one meter above the waterline and has suffered a breach”, and added that no injuries were reported. Although local and international media speculated that the tanker was hit by a naval mine, Saudi officials described the incident as a “foiled terrorist act” that occurred when an explosive-laden boat launched by the Houthis was intercepted and destroyed. Either way, IHS Markit assesses that the Houthi are the likely perpetrator of the attack, as the militia has used both marine vehicle-borne improvised explosive devices (UM-VBIEDs) and floating naval mines to target Saudi commercial and military vessels in the Red Sea. No other group has similar capabilities to target Saudi Arabia.The attack on Jeddah demonstrates that the Houthi are still developing more sophisticated missile capabilities. Saudi officials have acknowledged the attack on Jeddah and satellite imagery accessed by IHS Markit confirmed the damage at a fuel tank at Jeddah distribution station. The Houthis stated that attack was perpetrated using a new cruise missile, called Quds-2, which they have not yet publicly unveiled. Houthi military spokesperson Yahya Saree, however, said in an interview released on Houthi social media channels that the new missile was developed to fly at lower altitudes with the aim of reducing the effectiveness of anti-missile systems deployed in Saudi Arabia. A member of the Houthi political bureau, Abd al-Wahhab al-Mahbashi, also stated that the missile was being developed to target the city of Eilat, Israel's southernmost city on the Red Sea, given its growing diplomatic rapprochement with Saudi Arabia. The immediate requirement for the missile was to target Jeddah given Saudi ongoing military operations in Yemen against the movement. The latest threat, which extends to Israel, reflects the propensity of the Houthi’s leadership to further escalate against the coalition by expanding its target set. There has been no evidence, however, of Yemeni insurgent use of missiles with a longer range than 1,100 km, which is not sufficient to target Eilat (approximately 1,600 km from the Houthi-controlled northernmost point in Yemen’s Sadaa province). Any attack on Israel would almost certainly bring a very heavy response, not just from Israel but likely from the United States as well. Houthi cross-border attacks into Saudi Arabia and maritime attacks are likely to intensify, as long as the movement and the coalition do not resume formal negotiations. These attacks reflect the current impasse in peace talks brokered by the United Nations, which have failed to produce any tangible outcome since the Hodeidah ceasefire was signed in December 2018. The likely resumption of Saudi airstrikes in Yemen in response to recent attacks, especially around Sanaa, is expected to lead the movement to intensify its cross-border attacks into Saudi Arabia with missiles and armed drones, with airports, oil facilities, and desalination plants in the south of Saudi Arabia at highest risk, particularly Jizan, Abha, and Najran. Given the group’s ready access to UM-VBIEDs and sea mines, the Red Sea coast is also very likely to continue to be an area of active targeting by the Houthi.Indicators of changing risk environmentIncreasing riskHouthi militants start probing attacks on the northern section of the Red Sea, indicating intent to strike Israel.Houthi militants successfully stage an attack using a combination of cruise missiles and drones, inflicting significant damage to Riyadh or Jeddah airport.Houthi militants stage a cross-border ground attack and seize territory inside Saudi Arabia.Saudi Arabia launches a new campaign of precision airstrikes with Israeli support killing high-profile Houthi leaders.Israel starts covert operations in Yemen.Decreasing riskThe UN calls for a new round of peace talks and both Saudi Arabia and the Houthis agree to implement a ceasefire.&copy; 2020, IHS Markit Inc. All rights reserved. Reproduction in whole or in part without permission is prohibited.",Aviation Advisory,26/11/20 9:24,https://www.spglobal.com/commodityinsights/en/market-insights/latest-news/oil/032524-houthis-threaten-saudi-arabias-oil-installations-for-supporting-us-aggression
33
+ 29,UPDATE 1 - Australia unlikely to directly retaliate against mainland China’s targeted measures; foreign policy position also unlikely to change,"According to Chinese and international media reports, Chinese traders have received an informal notice from authorities that Australian products in seven categories – barley, sugar, lobster, wine, timber, coal, and copper ore and concentrate – will not be cleared in customs from 6 November. The Chinese government has denied that there are any restrictions on Australian commodities, and the implementation of the notice has yet to be confirmed. Australian exporters have nevertheless already cancelled shipments to China and Chinese traders have cancelled orders.The timing and extent of Chinese action against Australian imports give credibility to recent media reporting that this reflects Chinese government policy and not just buyers’ commercial decisions. China-Australia relations have deteriorated significantly in recent months, particularly after the Australian government called for an independent inquiry into the origins of coronavirus disease 2019 (COVID-19) in April. Beginning in May, Chinese authorities imposed a series of restrictions on Australian imports, ostensibly due to alleged breaches of trade practices (resulting in tariffs on barley) or quality issues found during routine product inspections (affecting some shipments of beef, barley, lobster, and timber). On 9 October, there were reports that some Chinese ports had been told not to accept Australian coal. Although coal import quotas are not uncommon, this came days after a meeting between foreign ministers of the recently revived Quadrilateral Security Dialogue (Quad) nations, comprising Australia, India, Japan, and the United States. China has previously labelled the Quad as an “Asian NATO” (see Australia-India-Japan-US:2 October 2020: Future of Australia-India-Japan-US Quad dialogue and maritime security in the Indo-Pacific). Australian Trade Minister Simon Birmingham has accused China of taking “discriminatory action” against Australia in imposing import restrictions. China has repeatedly denied any targeting of Australia, stating that reduced imports were the result of buyers’ decisions.Given its vulnerability to wider Chinese discrimination against Australian imports, the Australian government is unlikely to retaliate. According to the Australian Department of Foreign Affairs and Trade, China accounted for 32.6% (AUD153.2 billion, or USD111.1 billion) of its total goods and services exports in the financial year ending 2019. According to China’s National Bureau of Statistics, Australia in 2019 only accounted for 1.9% of mainland Chinese exports globally and 3.8% of mainland China’s exports to the Asia-Pacific and Oceania regions. This indicates that, while China has scope to extend restrictions on other Australian imports, Australia is unlikely to respond in reciprocal measures and equivalent degree. Rather, the Australian government will probably increase conciliatory advances towards China, notably through public statements on the importance of the bilateral relationship. The government is also likely to rein in backbenchers, both within the Liberal-National coalition and the Labor Party opposition, who frequently criticise China publicly. In addition, Australia will probably refrain from taking a prominent role in any further international initiatives challenging China, as it did in April when it led an international call for a COVID-19 inquiry. Repeated Chinese import restrictions are unlikely to result in Australian reversal on foreign policy issues challenged by China, however. Although Australia will avoid taking a prominent role in future international initiatives against China, its participation in the ongoing India-Japan-US Malabar naval exercise this month indicates that the Australian government is unlikely to reverse core policies that are at odds with China. This includes Australia’s commitment to the Quad grouping and its stance on issues such as Hong Kong SAR and the South China Sea. Participation in the current Malabar exercise contrasts with the last time Australia took part in 2007: China’s negative response resulted in the government of then-prime minister Kevin Rudd withdrawing from the exercises and accompanying security talks, resulting in the dissolution of the Quad. Nevertheless, given its economic vulnerability vis-à-vis China, Australia will probably seek to adjust its approach to the Quad and other regional defence activities by minimising its profile. Indicators of changing risk environmentIncreasing riskIf November and December 2020 shipments of Australian coal continue to show signs of regulatory targeting indicated by significant congestions in major ports in mainland China, this would further signal worsening bilateral relationships due to Beijing’s evident refusal to lift restrictions on Australian coal during the winter months – traditionally a period of higher power consumption and coal demand.If China imposes import restrictions or heightens regulatory barriers against Australian iron ore, this would indicate a significant worsening of bilateral relations. In 2019, 62% of China’s iron ore imports came from Australia. The economic cost of Chinese targeting of iron ore would likely be disproportionally borne in China’s infrastructure sector, which remains important in its investment-led economic recovery and relies on an inexpensive and stable supply of steel. Targeted measures against iron ore would indicate both a long-term policy shift of trade diversion from Australia to alternative markets for raw materials as well as intent to significantly damage the Australian economy, given that iron ore is Australia’s largest export to China.The passage into law of draft Australian federal legislation affecting foreign, particularly Chinese, commercial interests in Australia – likely in January 2021 (see Australia:8 June 2020: Proposed changes to Australia’s foreign investment rules likely to target Chinese investors, increasing risk of forced divestments and Australia:4 September 2020: Australia’s proposed legislation on agreements between states/territories and foreign governments indicates increased likelihood of state contract cancellation) – would be a further indicator of the trajectory of relations between Australia and China. Any amendments targeting Chinese interests more explicitly would probably result in a further deterioration of relations, increasing the likelihood of further restrictions on Australian goods and services or other targeted measures against Australian assets.Decreasing riskDirect talks between either Australian Prime Minister Scott Morrison and Chinese President Xi Jinping or their respective foreign ministers would increase the likelihood of an improvement in relations.Any delays or a government reversal on passing the draft legislation affecting Chinese interests would slightly decrease the likelihood of further Chinese restrictions on Australian products, as long as Australia avoids further high-profile diplomatic confrontations with China.&copy; 2020, IHS Markit Inc. All rights reserved. Reproduction in whole or in part without permission is prohibited.",Aviation Advisory,6/11/20 9:24,https://www.reuters.com/world/asia-pacific/release-journalist-unlikely-shift-australias-china-policy-2023-10-12/
34
+ 30,"WATCH FOR: Road, rail, air, and maritime cargo and transport disruption in Italy during general strike on 25 November","Risk analysis: Several trade unions including USB, Osp Filt-Cgil, Uilt-Uil, Faisa-Cisal, and Confail have called for a general strike of the public transport sector on 25 November. The strike will last four hours and is likely to disrupt road, rail, marine, and air transport and cargo across Italy on the day of the strike. Delays and cancellations to train, bus, taxi, and ferry services, scheduled flights, and shipping operations will be likely at railway stations including Milano Centrale and Roma Termini, airports including Milan Malpensa (MXP) and Rome Ciampino (CIA), and ports including the Port of Genoa and Port of Gioia Tauro. Minimum services will be guaranteed under Italian law.&copy; 2020, IHS Markit Inc. All rights reserved. Reproduction in whole or in part without permission is prohibited.",Aviation Advisory,19/11/20 11:24,https://www.wantedinrome.com/news/italy-faces-national-general-strike-by-public-sector-workers-on-25-november.html
IS424_Data_Mining/code/LDA/basic_text_preprocessing.ipynb ADDED
@@ -0,0 +1,741 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "e235bb95-5618-4b70-ae07-6bb4f855922a",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "# !pip install contractions"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 2,
16
+ "id": "6b117c76-f3ef-429e-b971-9d820679320d",
17
+ "metadata": {},
18
+ "outputs": [],
19
+ "source": [
20
+ "import nltk\n",
21
+ "from nltk.corpus import PlaintextCorpusReader\n",
22
+ "from nltk.corpus import stopwords\n",
23
+ "from nltk.stem.porter import *\n",
24
+ "from nltk import pos_tag, word_tokenize\n",
25
+ "from nltk.stem import WordNetLemmatizer\n",
26
+ "from nltk.probability import FreqDist\n",
27
+ "from nltk.tokenize import sent_tokenize\n",
28
+ "from nltk.tokenize import word_tokenize\n",
29
+ "import contractions\n",
30
+ "\n",
31
+ "import gensim\n",
32
+ "from gensim import corpora\n",
33
+ "from gensim import similarities\n",
34
+ "from gensim import models\n",
35
+ "from gensim.models import CoherenceModel\n",
36
+ "\n",
37
+ "# from wordcloud import WordCloud, ImageColorGenerator\n",
38
+ "import matplotlib.pyplot as plt\n",
39
+ "import seaborn as sns\n",
40
+ "import pandas as pd\n",
41
+ "import re\n",
42
+ "import os\n",
43
+ "import glob\n",
44
+ "import json\n",
45
+ "\n",
46
+ "import psycopg2\n",
47
+ "import pickle\n",
48
+ "from datetime import datetime\n",
49
+ "import datetime"
50
+ ]
51
+ },
52
+ {
53
+ "cell_type": "markdown",
54
+ "id": "228f935e-fb42-4ffb-bedc-a5a50dbd0bd9",
55
+ "metadata": {},
56
+ "source": [
57
+ "# Import Data"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": 4,
63
+ "id": "cc0cac0a-2a0b-4586-b970-ef3c6f3e85fe",
64
+ "metadata": {},
65
+ "outputs": [],
66
+ "source": [
67
+ "df = pd.read_csv('cleaned_data.csv')"
68
+ ]
69
+ },
70
+ {
71
+ "cell_type": "markdown",
72
+ "id": "fcc0d9ad-116c-4e87-b349-89b0118238cb",
73
+ "metadata": {},
74
+ "source": [
75
+ "# EDA"
76
+ ]
77
+ },
78
+ {
79
+ "cell_type": "code",
80
+ "execution_count": null,
81
+ "id": "c76090be",
82
+ "metadata": {},
83
+ "outputs": [],
84
+ "source": [
85
+ "df.head()"
86
+ ]
87
+ },
88
+ {
89
+ "cell_type": "code",
90
+ "execution_count": null,
91
+ "id": "476ff0c9-e23d-4cb5-8147-e764df46d2c8",
92
+ "metadata": {},
93
+ "outputs": [],
94
+ "source": [
95
+ "df.shape"
96
+ ]
97
+ },
98
+ {
99
+ "cell_type": "code",
100
+ "execution_count": null,
101
+ "id": "dbde7785-b2dc-4bfe-8740-19149f676b9e",
102
+ "metadata": {},
103
+ "outputs": [],
104
+ "source": [
105
+ "df_copy = df.copy()"
106
+ ]
107
+ },
108
+ {
109
+ "cell_type": "code",
110
+ "execution_count": null,
111
+ "id": "543d8eff-5f20-43c2-81c2-0ca5ac75a10e",
112
+ "metadata": {},
113
+ "outputs": [],
114
+ "source": [
115
+ "df_copy.info()"
116
+ ]
117
+ },
118
+ {
119
+ "cell_type": "code",
120
+ "execution_count": null,
121
+ "id": "48d0221f-b42e-4776-ac50-9a201a9f90c3",
122
+ "metadata": {},
123
+ "outputs": [],
124
+ "source": [
125
+ "df_copy.isnull().sum()"
126
+ ]
127
+ },
128
+ {
129
+ "cell_type": "code",
130
+ "execution_count": null,
131
+ "id": "a9e0e53d-bd4a-4227-a36b-d22fb4064b56",
132
+ "metadata": {},
133
+ "outputs": [],
134
+ "source": [
135
+ "df_copy.dropna(subset=['Headline_Details'], inplace=True)"
136
+ ]
137
+ },
138
+ {
139
+ "cell_type": "code",
140
+ "execution_count": null,
141
+ "id": "8b7f4b70-8205-4d42-a9b8-986de57fdb45",
142
+ "metadata": {},
143
+ "outputs": [],
144
+ "source": [
145
+ "print(\"Published Date Statistics:\")\n",
146
+ "print(\"Min Date:\", df_copy['Datetime'].min())\n",
147
+ "print(\"Max Date:\", df_copy['Datetime'].max())"
148
+ ]
149
+ },
150
+ {
151
+ "cell_type": "code",
152
+ "execution_count": null,
153
+ "id": "97988848-03f7-4b1a-b2c5-eb8cf9ff3dfa",
154
+ "metadata": {},
155
+ "outputs": [],
156
+ "source": [
157
+ "# Check if there are any duplicated titles since a news can be published for multiple times by different publisher at different time\n",
158
+ "df_copy[['Year', 'Headline_Details', 'Region']].duplicated().any()"
159
+ ]
160
+ },
161
+ {
162
+ "cell_type": "code",
163
+ "execution_count": null,
164
+ "id": "af3e758a-4114-4273-99e8-00e717b7071c",
165
+ "metadata": {},
166
+ "outputs": [],
167
+ "source": [
168
+ "# drop the duplicated news\n",
169
+ "duplicates = df_copy.duplicated(subset=['Year', 'Headline_Details', 'Region'], keep='first')\n",
170
+ "df_uni = df_copy[~duplicates]"
171
+ ]
172
+ },
173
+ {
174
+ "cell_type": "code",
175
+ "execution_count": null,
176
+ "id": "2a23a150-c8a2-421f-8096-5070f3d8747a",
177
+ "metadata": {},
178
+ "outputs": [],
179
+ "source": [
180
+ "df_uni.shape"
181
+ ]
182
+ },
183
+ {
184
+ "cell_type": "markdown",
185
+ "id": "4c9a6dbf-a74c-4bc7-a78e-619a9212cccc",
186
+ "metadata": {},
187
+ "source": [
188
+ "# Text Preprocessing\n",
189
+ "contractions -> punctuation removal -> lowercase -> -> lemmanisation -> stop words removal + bigram"
190
+ ]
191
+ },
192
+ {
193
+ "cell_type": "code",
194
+ "execution_count": null,
195
+ "id": "8cf125a0-1444-43cc-9b84-4c0ed6c4bc02",
196
+ "metadata": {},
197
+ "outputs": [],
198
+ "source": [
199
+ "df_uni['Headline_Details'][5]"
200
+ ]
201
+ },
202
+ {
203
+ "cell_type": "code",
204
+ "execution_count": null,
205
+ "id": "5481f424-321b-467d-8327-db25c32f1bd3",
206
+ "metadata": {},
207
+ "outputs": [],
208
+ "source": [
209
+ "## remove contractions, lowercase, remove numbers and punctuations, remove stopwords\n",
210
+ "# run time roughly 2 mins\n",
211
+ "df_uni['cleaned_Headline_Details'] = df_uni['Headline_Details'].apply(lambda x: [contractions.fix(word) for word in x.split()])\n",
212
+ "\n",
213
+ "## convert back into string so that tokenization can be done\n",
214
+ "df_uni['cleaned_Headline_Details'] = [' '.join(map(str, l)) for l in df_uni['cleaned_Headline_Details']]"
215
+ ]
216
+ },
217
+ {
218
+ "cell_type": "code",
219
+ "execution_count": null,
220
+ "id": "b761cac7-f544-40d4-bea0-a39b4f994083",
221
+ "metadata": {},
222
+ "outputs": [],
223
+ "source": [
224
+ "df_uni['cleaned_Headline_Details'][5]"
225
+ ]
226
+ },
227
+ {
228
+ "cell_type": "markdown",
229
+ "id": "e92e3b8b-cda4-425a-ab4f-eaeb6e500379",
230
+ "metadata": {},
231
+ "source": [
232
+ "### Stemming / Lemmatization - To normalize text and prepare words.\n",
233
+ "\n",
234
+ "https://towardsdatascience.com/stemming-vs-lemmatization-in-nlp-dea008600a0#:~:text=Stemming%20and%20Lemmatization%20are%20methods,be%20used%20in%20similar%20contexts.\n",
235
+ "\n",
236
+ "Decided to use lemmatization because lemmatization provides better results by performing an analysis that depends on the word’s part-of-speech and producing real, dictionary words. As a result, lemmatization is harder to implement and slower compared to stemming.\n",
237
+ "\n",
238
+ "To sum up, lemmatization is almost always a better choice from a qualitative point of view. With today’s computational resources, running lemmatization algorithms shouldn’t have a significant impact on the overall performance. However, if we are heavily optimizing for speed, a simpler stemming algorithm can be a possibility."
239
+ ]
240
+ },
241
+ {
242
+ "cell_type": "markdown",
243
+ "id": "cccdd491-55cb-42e9-9e08-3ab01253b2d0",
244
+ "metadata": {},
245
+ "source": [
246
+ "POS taggin + lemming for better lemming performance. However, the lemmatizer requires the correct POS tag to be accurate, \n",
247
+ "if you use the default settings of the WordNetLemmatizer.lemmatize(), the default tag is noun.\n",
248
+ "\n",
249
+ "https://github.com/nltk/nltk/blob/develop/nltk/stem/wordnet.py#L39 "
250
+ ]
251
+ },
252
+ {
253
+ "cell_type": "raw",
254
+ "id": "c25de86c-3bfd-4999-9849-bf41f3a0d167",
255
+ "metadata": {},
256
+ "source": [
257
+ "stop_words = set(stopwords.words('english'))\n",
258
+ "stemmer = PorterStemmer()\n",
259
+ "\n",
260
+ "def preprocess(review):\n",
261
+ " review = \" \".join([stemmer.stem(w.lower()) for w in word_tokenize(re.sub('[^a-zA-Z]+', ' ', review.replace(\"<br />\", \"\"))) if not w in stop_words])\n",
262
+ " return review\n",
263
+ "\n",
264
+ "# as a result, it stores a normalised text sentences (string)\n",
265
+ "data['review_clean'] = data.apply(lambda x: preprocess(x['review']), axis=1)"
266
+ ]
267
+ },
268
+ {
269
+ "cell_type": "code",
270
+ "execution_count": null,
271
+ "id": "c02dbc2a-9583-4122-a814-a8b723bbbafd",
272
+ "metadata": {},
273
+ "outputs": [],
274
+ "source": [
275
+ "# ADJ, ADJ_SAT, ADV, NOUN, VERB = 'a', 's', 'r', 'n', 'v'\n",
276
+ "# keep only ADJ, ADV, NOUN and VERB.\n",
277
+ "\n",
278
+ "wnl = WordNetLemmatizer()\n",
279
+ "\n",
280
+ "def lemmatize_words(text):\n",
281
+ " # Tokenize the text into sentences and then words\n",
282
+ " sentences = sent_tokenize(text)\n",
283
+ " words = [word_tokenize(sentence) for sentence in sentences]\n",
284
+ "\n",
285
+ " # Remove punctuation and tokenize into lowercase words\n",
286
+ " punc = [[w.lower() for w in word if re.search('^[a-zA-Z]+$', w)] for word in words]\n",
287
+ "\n",
288
+ " # Perform lemmatization on words with valid POS tags\n",
289
+ " doc_lemmed = [wnl.lemmatize(word, pos[0].lower()) for sentence in punc for word, pos in pos_tag(sentence, tagset='universal') \n",
290
+ " if pos[0].lower() in ['a','s', 'r', 'n', 'v']]\n",
291
+ " \n",
292
+ " return doc_lemmed"
293
+ ]
294
+ },
295
+ {
296
+ "cell_type": "code",
297
+ "execution_count": null,
298
+ "id": "d75603cb-219e-4e4a-83db-023fe1226e04",
299
+ "metadata": {},
300
+ "outputs": [],
301
+ "source": [
302
+ "print(datetime.datetime.now())"
303
+ ]
304
+ },
305
+ {
306
+ "cell_type": "code",
307
+ "execution_count": null,
308
+ "id": "c4e38b71-8b47-4482-8439-f5142d3229dc",
309
+ "metadata": {},
310
+ "outputs": [],
311
+ "source": [
312
+ "df_uni['cleaned_Headline_Details'] = df_uni['cleaned_Headline_Details'].apply(lemmatize_words)"
313
+ ]
314
+ },
315
+ {
316
+ "cell_type": "code",
317
+ "execution_count": null,
318
+ "id": "7f7d3945-2e52-401c-8e67-16e15e8e834e",
319
+ "metadata": {},
320
+ "outputs": [],
321
+ "source": [
322
+ "print(datetime.datetime.now())"
323
+ ]
324
+ },
325
+ {
326
+ "cell_type": "markdown",
327
+ "id": "49702368-06a3-4965-9846-778e350254d4",
328
+ "metadata": {},
329
+ "source": [
330
+ "### N-gram + Stopword removal"
331
+ ]
332
+ },
333
+ {
334
+ "cell_type": "code",
335
+ "execution_count": null,
336
+ "id": "979eb98f-8ff5-4b63-8787-70bea21f843b",
337
+ "metadata": {},
338
+ "outputs": [],
339
+ "source": [
340
+ "stop_list = nltk.corpus.stopwords.words('english')\n",
341
+ "stop_list += ['local','time', 'wednesday', 'source', 'certain', 'report', 'update']\n",
342
+ "\n",
343
+ "def corpus2docs2(corpus):\n",
344
+ " # corpus is a object returned by load_corpus that represents a corpus.\n",
345
+ " docs = []\n",
346
+ " for text in corpus:\n",
347
+ " cleaned = [w for w in text if w not in stop_list]\n",
348
+ " doc_pos = nltk.pos_tag(cleaned)\n",
349
+ " phrases = []\n",
350
+ " i = 0\n",
351
+ " while i < len(doc_pos):\n",
352
+ " if doc_pos[i][1] == 'JJ':\n",
353
+ " if i+2 < len(doc_pos) and doc_pos[i+1][1] == 'NN' and doc_pos[i+2][1] == 'NN':\n",
354
+ " phrases.append((doc_pos[i][0], doc_pos[i+1][0], doc_pos[i+2][0]))\n",
355
+ " i += 3\n",
356
+ " elif i+1 < len(doc_pos) and doc_pos[i+1][1] == 'NN':\n",
357
+ " phrases.append((doc_pos[i][0], doc_pos[i+1][0]))\n",
358
+ " i += 2\n",
359
+ " else:\n",
360
+ " i += 1\n",
361
+ " elif doc_pos[i][1] == 'NN':\n",
362
+ " if i+2 < len(doc_pos) and doc_pos[i+1][1] == 'NN' and doc_pos[i+2][1] == 'NN':\n",
363
+ " phrases.append((doc_pos[i][0], doc_pos[i+1][0], doc_pos[i+2][0]))\n",
364
+ " i += 3\n",
365
+ " elif i+1 < len(doc_pos) and doc_pos[i+1][1] == 'NN':\n",
366
+ " phrases.append((doc_pos[i][0], doc_pos[i+1][0]))\n",
367
+ " i += 2\n",
368
+ " else:\n",
369
+ " i += 1\n",
370
+ " else:\n",
371
+ " i += 1\n",
372
+ " phrase_set = ['_'.join(word_set) for word_set in phrases]\n",
373
+ " docs.append(phrase_set)\n",
374
+ " return docs"
375
+ ]
376
+ },
377
+ {
378
+ "cell_type": "code",
379
+ "execution_count": null,
380
+ "id": "c0a72831-6987-41a2-9be4-297f5d049d91",
381
+ "metadata": {},
382
+ "outputs": [],
383
+ "source": [
384
+ "print(stop_list)"
385
+ ]
386
+ },
387
+ {
388
+ "cell_type": "code",
389
+ "execution_count": null,
390
+ "id": "d5c48c2c-5fd7-4216-a699-e69893e2aee8",
391
+ "metadata": {},
392
+ "outputs": [],
393
+ "source": [
394
+ "df_uni['binary_Headline_Details'] = corpus2docs2(df_uni['cleaned_Headline_Details'])"
395
+ ]
396
+ },
397
+ {
398
+ "cell_type": "code",
399
+ "execution_count": null,
400
+ "id": "812d9fe2-89ef-4bbc-901e-a4d1fd8e2eb0",
401
+ "metadata": {},
402
+ "outputs": [],
403
+ "source": [
404
+ "df_uni['binary_Headline_Details'][5]"
405
+ ]
406
+ },
407
+ {
408
+ "cell_type": "code",
409
+ "execution_count": null,
410
+ "id": "faeb3af3-0a05-46be-98fa-d8a88b075049",
411
+ "metadata": {},
412
+ "outputs": [],
413
+ "source": [
414
+ "fdist_doc = nltk.FreqDist(df_uni['binary_Headline_Details'][5]).most_common(25)\n",
415
+ "\n",
416
+ "x, y = zip(*fdist_doc)\n",
417
+ "plt.figure(figsize=(50,30))\n",
418
+ "plt.margins(0.02)\n",
419
+ "plt.bar(x, y)\n",
420
+ "plt.xlabel('Words', fontsize=50)\n",
421
+ "plt.ylabel('Frequency of Words', fontsize=50)\n",
422
+ "plt.yticks(fontsize=40)\n",
423
+ "plt.xticks(rotation=60, fontsize=40)\n",
424
+ "plt.title('Frequency of 25 Most Common Words for One Random News', fontsize=60)\n",
425
+ "plt.show()"
426
+ ]
427
+ },
428
+ {
429
+ "cell_type": "code",
430
+ "execution_count": null,
431
+ "id": "052a4218-a73e-4df6-8b16-45e58e9da58a",
432
+ "metadata": {},
433
+ "outputs": [],
434
+ "source": [
435
+ "all_words = [word for sublist in df_uni['binary_Headline_Details'] for word in sublist]\n",
436
+ "all_words[:2]\n",
437
+ "# Calculate word frequencies\n",
438
+ "fdist = FreqDist(all_words)"
439
+ ]
440
+ },
441
+ {
442
+ "cell_type": "code",
443
+ "execution_count": null,
444
+ "id": "fd07bf53-a547-43dc-9dce-070d7ac2dd4c",
445
+ "metadata": {},
446
+ "outputs": [],
447
+ "source": [
448
+ "# Plot the word frequency distribution as a bar graph\n",
449
+ "plt.figure(figsize=(12, 6))\n",
450
+ "plt.title('Frequency of 25 Most Common Words of the Dataset', fontsize=12)\n",
451
+ "fdist.plot(30, cumulative=False)"
452
+ ]
453
+ },
454
+ {
455
+ "cell_type": "markdown",
456
+ "id": "c032514e-2516-41fa-9efb-0eb0197c0fc2",
457
+ "metadata": {},
458
+ "source": [
459
+ "# Wordcloud"
460
+ ]
461
+ },
462
+ {
463
+ "cell_type": "code",
464
+ "execution_count": null,
465
+ "id": "81edd7d1-eb00-430a-9b57-a5ff39737982",
466
+ "metadata": {},
467
+ "outputs": [],
468
+ "source": [
469
+ "com = df_uni['Severity'].unique()\n",
470
+ "com[:10]"
471
+ ]
472
+ },
473
+ {
474
+ "cell_type": "code",
475
+ "execution_count": null,
476
+ "id": "0099a39e-dbb4-41d5-afde-a2b135cb5866",
477
+ "metadata": {},
478
+ "outputs": [],
479
+ "source": [
480
+ "import matplotlib.pyplot as plt\n",
481
+ "from wordcloud import WordCloud\n",
482
+ "\n",
483
+ "# Plotting with Seaborn for each company\n",
484
+ "for company in com[:10]:\n",
485
+ " haha = df_uni['binary_Headline_Details'].loc[df_uni.Severity==company]\n",
486
+ " text = \" \".join(\" \".join(item) for item in haha)\n",
487
+ " wordcloud = WordCloud(background_color=\"white\").generate(text)\n",
488
+ " plt.imshow(wordcloud, interpolation='bilinear')\n",
489
+ " plt.title(f'Wordcloud for {company}')\n",
490
+ " plt.axis(\"off\")\n",
491
+ " plt.margins(x=0, y=0)\n",
492
+ " plt.show()"
493
+ ]
494
+ },
495
+ {
496
+ "cell_type": "markdown",
497
+ "id": "1658838b-bb13-4471-998d-1013ec28da3d",
498
+ "metadata": {},
499
+ "source": [
500
+ "## IT-IDF Word Removal\n",
501
+ "\n",
502
+ "remove those frequently appeared but less important words like say, will, year, use, etc."
503
+ ]
504
+ },
505
+ {
506
+ "cell_type": "code",
507
+ "execution_count": null,
508
+ "id": "da95670f-1123-4cf4-80f9-e2ec3ca6041c",
509
+ "metadata": {},
510
+ "outputs": [],
511
+ "source": [
512
+ "df_uni['binary_Headline_Details'] = df_uni['binary_Headline_Details'].apply(lambda x: ' '.join(x))\n",
513
+ "\n",
514
+ "# Tokenize the text and create a dictionary\n",
515
+ "documents = df_uni['binary_Headline_Details'].str.split()\n",
516
+ "dictionary = corpora.Dictionary(documents)\n",
517
+ "\n",
518
+ "tfidf = models.TfidfModel(dictionary=dictionary, normalize=True)\n",
519
+ "tfidf_corpus = [tfidf[dictionary.doc2bow(doc)] for doc in documents]\n",
520
+ "term_frequencies = {dictionary[id]: freq for id, freq in tfidf.dfs.items()}"
521
+ ]
522
+ },
523
+ {
524
+ "cell_type": "code",
525
+ "execution_count": null,
526
+ "id": "85b3f6ba-4a57-4f6c-9954-cfd0ac189e5a",
527
+ "metadata": {
528
+ "scrolled": true
529
+ },
530
+ "outputs": [],
531
+ "source": [
532
+ "sorted_term_frequencies = dict(sorted(term_frequencies.items(), key=lambda item: item[1], reverse=True))\n",
533
+ "sorted_term_frequencies"
534
+ ]
535
+ },
536
+ {
537
+ "cell_type": "markdown",
538
+ "id": "ff92ddb0-4b34-4833-8d88-210ebbc5acfd",
539
+ "metadata": {},
540
+ "source": [
541
+ "threshold = 0.04 seems to be an appropriate cutoff with variation at +- 0.01 for this set of data."
542
+ ]
543
+ },
544
+ {
545
+ "cell_type": "code",
546
+ "execution_count": null,
547
+ "id": "5f2484b7-daa2-4654-aff6-5371619182c5",
548
+ "metadata": {},
549
+ "outputs": [],
550
+ "source": [
551
+ "# customisable, lower threshold, more words retained.\n",
552
+ "threshold = 0.4\n",
553
+ "\n",
554
+ "def filter_and_join(tfidf_doc):\n",
555
+ " filtered_terms = [dictionary[id] for id, score in tfidf_doc if score >= threshold]\n",
556
+ " return filtered_terms\n",
557
+ "\n",
558
+ "df_uni['binary_Headline_Details'] = [filter_and_join(doc) for doc in tfidf_corpus]"
559
+ ]
560
+ },
561
+ {
562
+ "cell_type": "code",
563
+ "execution_count": null,
564
+ "id": "58a8778c-1005-488c-a54a-6c6c6b02f05f",
565
+ "metadata": {},
566
+ "outputs": [],
567
+ "source": [
568
+ "fdist_doc = nltk.FreqDist(df_uni['binary_Headline_Details'][0]).most_common(25)\n",
569
+ "\n",
570
+ "x, y = zip(*fdist_doc)\n",
571
+ "plt.figure(figsize=(50,30))\n",
572
+ "plt.margins(0.02)\n",
573
+ "plt.bar(x, y)\n",
574
+ "plt.xlabel('Words', fontsize=50)\n",
575
+ "plt.ylabel('Frequency of Words', fontsize=50)\n",
576
+ "plt.yticks(fontsize=40)\n",
577
+ "plt.xticks(rotation=60, fontsize=40)\n",
578
+ "plt.title('Frequency of 25 Most Common Words for One Random News', fontsize=60)\n",
579
+ "plt.show()"
580
+ ]
581
+ },
582
+ {
583
+ "cell_type": "code",
584
+ "execution_count": null,
585
+ "id": "0bdfcd90-a066-4864-8778-9f9d0fb715ce",
586
+ "metadata": {},
587
+ "outputs": [],
588
+ "source": [
589
+ "all_words_filtered = [word for sublist in df_uni['binary_Headline_Details'] for word in sublist]\n",
590
+ "all_words_filtered[:2]\n",
591
+ "# Calculate word frequencies\n",
592
+ "fdist_filtered = FreqDist(all_words_filtered)"
593
+ ]
594
+ },
595
+ {
596
+ "cell_type": "code",
597
+ "execution_count": null,
598
+ "id": "5c2e8cc6-db44-4f0d-9c33-841bae1f5094",
599
+ "metadata": {},
600
+ "outputs": [],
601
+ "source": [
602
+ "# Plot the word frequency distribution as a bar graph\n",
603
+ "# apparently, the dataset is much cleaner now.\n",
604
+ "plt.figure(figsize=(12, 6))\n",
605
+ "plt.title('Frequency of 25 Most Common Words of the Dataset', fontsize=12)\n",
606
+ "fdist_filtered.plot(30, cumulative=False)"
607
+ ]
608
+ },
609
+ {
610
+ "cell_type": "code",
611
+ "execution_count": null,
612
+ "id": "b3e99195-1c0a-4c7d-91d7-9a84e8ab1422",
613
+ "metadata": {},
614
+ "outputs": [],
615
+ "source": [
616
+ "import matplotlib.pyplot as plt\n",
617
+ "from wordcloud import WordCloud\n",
618
+ "\n",
619
+ "# Plotting with Seaborn for each company\n",
620
+ "for region in com[:10]:\n",
621
+ " haha = df_uni['binary_Headline_Details'].loc[df_uni.Severity==region]\n",
622
+ " text = \" \".join(\" \".join(item) for item in haha)\n",
623
+ " wordcloud = WordCloud(background_color=\"white\").generate(text)\n",
624
+ " plt.imshow(wordcloud, interpolation='bilinear')\n",
625
+ " plt.title(f'Wordcloud for {company}')\n",
626
+ " plt.axis(\"off\")\n",
627
+ " plt.margins(x=0, y=0)\n",
628
+ " plt.show()"
629
+ ]
630
+ },
631
+ {
632
+ "cell_type": "code",
633
+ "execution_count": null,
634
+ "id": "91c359e9-105a-4bcd-bef7-fbc97538667a",
635
+ "metadata": {},
636
+ "outputs": [],
637
+ "source": [
638
+ "df_uni['word_count'] = df_uni['binary_Headline_Details'].apply(len)"
639
+ ]
640
+ },
641
+ {
642
+ "cell_type": "code",
643
+ "execution_count": null,
644
+ "id": "4fb07549-2792-4158-8f5d-861b2d0ea487",
645
+ "metadata": {},
646
+ "outputs": [],
647
+ "source": [
648
+ "df_uni[['word_count']].describe().round()"
649
+ ]
650
+ },
651
+ {
652
+ "cell_type": "code",
653
+ "execution_count": null,
654
+ "id": "5a46305b-47fb-486e-9a4b-93653c555df9",
655
+ "metadata": {},
656
+ "outputs": [],
657
+ "source": [
658
+ "# count of news by sector\n",
659
+ "df_uni[['binary_Headline_Details', 'Region']].groupby('Region').count().sort_values(by = 'binary_Headline_Details', ascending=False)"
660
+ ]
661
+ },
662
+ {
663
+ "cell_type": "code",
664
+ "execution_count": null,
665
+ "id": "02f79cd8-dd17-4ed8-b077-39dd5cc730d3",
666
+ "metadata": {},
667
+ "outputs": [],
668
+ "source": [
669
+ "df_uni[['binary_Headline_Details', 'Severity']].groupby('Severity').count().sort_values(by = 'binary_Headline_Details', ascending=False)"
670
+ ]
671
+ },
672
+ {
673
+ "cell_type": "markdown",
674
+ "id": "5d4d9a0c-63ab-4ef1-a196-2be7014b1476",
675
+ "metadata": {},
676
+ "source": [
677
+ "# Save data to database for modelling"
678
+ ]
679
+ },
680
+ {
681
+ "cell_type": "code",
682
+ "execution_count": null,
683
+ "id": "87f5e776-4d52-42c6-b6cb-a33f57a7e131",
684
+ "metadata": {},
685
+ "outputs": [],
686
+ "source": [
687
+ "df_uni.head()"
688
+ ]
689
+ },
690
+ {
691
+ "cell_type": "code",
692
+ "execution_count": null,
693
+ "id": "b66157f8-1f2a-48f5-99b6-a4e0db0ab57f",
694
+ "metadata": {},
695
+ "outputs": [],
696
+ "source": [
697
+ "df_uni.columns.to_list()"
698
+ ]
699
+ },
700
+ {
701
+ "cell_type": "code",
702
+ "execution_count": null,
703
+ "id": "38cad3d6-7799-4c69-a876-782ab411395a",
704
+ "metadata": {},
705
+ "outputs": [],
706
+ "source": [
707
+ "# export as parquet data file instead of csv for easier list extraction\n",
708
+ "df_uni.to_parquet('processed_data1.parquet', index=False)"
709
+ ]
710
+ },
711
+ {
712
+ "cell_type": "code",
713
+ "execution_count": null,
714
+ "id": "bad76710-d7fd-4976-a014-c850483df8fc",
715
+ "metadata": {},
716
+ "outputs": [],
717
+ "source": []
718
+ }
719
+ ],
720
+ "metadata": {
721
+ "kernelspec": {
722
+ "display_name": "Python 3",
723
+ "language": "python",
724
+ "name": "python3"
725
+ },
726
+ "language_info": {
727
+ "codemirror_mode": {
728
+ "name": "ipython",
729
+ "version": 3
730
+ },
731
+ "file_extension": ".py",
732
+ "mimetype": "text/x-python",
733
+ "name": "python",
734
+ "nbconvert_exporter": "python",
735
+ "pygments_lexer": "ipython3",
736
+ "version": "3.8.16"
737
+ }
738
+ },
739
+ "nbformat": 4,
740
+ "nbformat_minor": 5
741
+ }
IS424_Data_Mining/code/LDA/basic_text_preprocessing_on_scraped_data.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/LDA/cleaned_data.csv ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/LDA/processed_data.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:18f7da551efd8cc5188afc1187716e3aebca4d86422ca08bdd8cc4fc5cfba149
3
+ size 5081529
IS424_Data_Mining/code/LDA/processed_data1.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c0685844c2c493edd0d1b48c30f285e7c1c4b896941cf54aa6ecb67eded22dd3
3
+ size 26975573
IS424_Data_Mining/code/LDA/topic_modelling_benchmark_using_headline.ipynb ADDED
@@ -0,0 +1,967 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "46322fb5-5918-4b70-9689-9e0781439ac4",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "# !pip3 install wordcloud"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 2,
16
+ "id": "daf1e3d1-75ac-4299-8bed-2f413a49f9a6",
17
+ "metadata": {
18
+ "tags": []
19
+ },
20
+ "outputs": [],
21
+ "source": [
22
+ "import nltk\n",
23
+ "from nltk.tokenize import sent_tokenize\n",
24
+ "from nltk.tokenize import word_tokenize\n",
25
+ "\n",
26
+ "import gensim\n",
27
+ "from gensim import corpora\n",
28
+ "from gensim import similarities\n",
29
+ "from gensim import models\n",
30
+ "from gensim.models import CoherenceModel\n",
31
+ "\n",
32
+ "# from wordcloud import WordCloud, ImageColorGenerator\n",
33
+ "import matplotlib.pyplot as plt\n",
34
+ "import seaborn as sns\n",
35
+ "import pandas as pd\n",
36
+ "import re\n",
37
+ "import os\n",
38
+ "import datetime\n",
39
+ "\n",
40
+ "import warnings\n",
41
+ "warnings.filterwarnings('ignore')\n",
42
+ "\n",
43
+ "from pprint import pprint\n",
44
+ "import pyLDAvis\n",
45
+ "import pyLDAvis.gensim_models as gensimvis"
46
+ ]
47
+ },
48
+ {
49
+ "cell_type": "code",
50
+ "execution_count": 3,
51
+ "id": "c673c907-e1d8-4d64-9a73-c15c15b78e7f",
52
+ "metadata": {},
53
+ "outputs": [
54
+ {
55
+ "name": "stdout",
56
+ "output_type": "stream",
57
+ "text": [
58
+ "2024-02-16 15:53:17.548323\n"
59
+ ]
60
+ },
61
+ {
62
+ "name": "stderr",
63
+ "output_type": "stream",
64
+ "text": [
65
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
66
+ " and should_run_async(code)\n"
67
+ ]
68
+ }
69
+ ],
70
+ "source": [
71
+ "print(datetime.datetime.now())"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "markdown",
76
+ "id": "49e6de6b-71bd-4948-8827-52601406058f",
77
+ "metadata": {},
78
+ "source": [
79
+ "# Import Data with only the news headline and details"
80
+ ]
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "execution_count": 4,
85
+ "id": "49222182-7811-4fa6-8c0a-21d3a546863e",
86
+ "metadata": {},
87
+ "outputs": [
88
+ {
89
+ "name": "stderr",
90
+ "output_type": "stream",
91
+ "text": [
92
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
93
+ " and should_run_async(code)\n"
94
+ ]
95
+ }
96
+ ],
97
+ "source": [
98
+ "df = pd.read_parquet('processed_data.parquet')"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "code",
103
+ "execution_count": 5,
104
+ "id": "3fb59a30",
105
+ "metadata": {},
106
+ "outputs": [
107
+ {
108
+ "name": "stderr",
109
+ "output_type": "stream",
110
+ "text": [
111
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
112
+ " and should_run_async(code)\n"
113
+ ]
114
+ },
115
+ {
116
+ "data": {
117
+ "text/html": [
118
+ "<div>\n",
119
+ "<style scoped>\n",
120
+ " .dataframe tbody tr th:only-of-type {\n",
121
+ " vertical-align: middle;\n",
122
+ " }\n",
123
+ "\n",
124
+ " .dataframe tbody tr th {\n",
125
+ " vertical-align: top;\n",
126
+ " }\n",
127
+ "\n",
128
+ " .dataframe thead th {\n",
129
+ " text-align: right;\n",
130
+ " }\n",
131
+ "</style>\n",
132
+ "<table border=\"1\" class=\"dataframe\">\n",
133
+ " <thead>\n",
134
+ " <tr style=\"text-align: right;\">\n",
135
+ " <th></th>\n",
136
+ " <th>id</th>\n",
137
+ " <th>Headline</th>\n",
138
+ " <th>Details</th>\n",
139
+ " <th>Severity</th>\n",
140
+ " <th>Category</th>\n",
141
+ " <th>Region</th>\n",
142
+ " <th>Datetime</th>\n",
143
+ " <th>Year</th>\n",
144
+ " <th>lat</th>\n",
145
+ " <th>lon</th>\n",
146
+ " <th>maritime_label</th>\n",
147
+ " <th>found_ports</th>\n",
148
+ " <th>contains_port_info</th>\n",
149
+ " <th>if_labeled</th>\n",
150
+ " <th>Month</th>\n",
151
+ " <th>Week</th>\n",
152
+ " <th>Headline_Details</th>\n",
153
+ " <th>cleaned_Headline_Details</th>\n",
154
+ " <th>binary_Headline_Details</th>\n",
155
+ " <th>word_count</th>\n",
156
+ " </tr>\n",
157
+ " </thead>\n",
158
+ " <tbody>\n",
159
+ " <tr>\n",
160
+ " <th>0</th>\n",
161
+ " <td>1.0</td>\n",
162
+ " <td>Grasberg Mine- Grasberg mine workers extend st...</td>\n",
163
+ " <td>Media sources indicate that workers at the Gra...</td>\n",
164
+ " <td>Moderate</td>\n",
165
+ " <td>Mine Workers Strike</td>\n",
166
+ " <td>Indonesia</td>\n",
167
+ " <td>28/5/17 17:08</td>\n",
168
+ " <td>2017.0</td>\n",
169
+ " <td>-4.05608</td>\n",
170
+ " <td>137.11302</td>\n",
171
+ " <td>False</td>\n",
172
+ " <td>['freeport']</td>\n",
173
+ " <td>1.0</td>\n",
174
+ " <td>False</td>\n",
175
+ " <td>5.0</td>\n",
176
+ " <td>21.0</td>\n",
177
+ " <td>Grasberg Mine- Grasberg mine workers extend st...</td>\n",
178
+ " <td>[grasberg, grasberg, mine, worker, extend, str...</td>\n",
179
+ " <td>[annual_output_half, condition_layoff, dispute...</td>\n",
180
+ " <td>19</td>\n",
181
+ " </tr>\n",
182
+ " <tr>\n",
183
+ " <th>1</th>\n",
184
+ " <td>2.0</td>\n",
185
+ " <td>Indonesia: Undersea internet cables damaged by...</td>\n",
186
+ " <td>News sources are stating that recent typhoons ...</td>\n",
187
+ " <td>Minor</td>\n",
188
+ " <td>Travel Warning</td>\n",
189
+ " <td>Indonesia</td>\n",
190
+ " <td>4/9/17 14:30</td>\n",
191
+ " <td>2017.0</td>\n",
192
+ " <td>NaN</td>\n",
193
+ " <td>NaN</td>\n",
194
+ " <td>False</td>\n",
195
+ " <td>['hong kong']</td>\n",
196
+ " <td>1.0</td>\n",
197
+ " <td>False</td>\n",
198
+ " <td>4.0</td>\n",
199
+ " <td>14.0</td>\n",
200
+ " <td>Indonesia: Undersea internet cables damaged by...</td>\n",
201
+ " <td>[indonesia, undersea, internet, cable, damage,...</td>\n",
202
+ " <td>[complete_ase_asia, damage_typhoon, internet_c...</td>\n",
203
+ " <td>17</td>\n",
204
+ " </tr>\n",
205
+ " <tr>\n",
206
+ " <th>2</th>\n",
207
+ " <td>3.0</td>\n",
208
+ " <td>Shanghai port congestion impacts terminals in ...</td>\n",
209
+ " <td>The persisting port congestion at Shanghai’s Y...</td>\n",
210
+ " <td>Minor</td>\n",
211
+ " <td>Port Congestion</td>\n",
212
+ " <td>China</td>\n",
213
+ " <td>27/4/17 9:16</td>\n",
214
+ " <td>2017.0</td>\n",
215
+ " <td>29.52000</td>\n",
216
+ " <td>121.33190</td>\n",
217
+ " <td>True</td>\n",
218
+ " <td>['ningbo', 'qingdao', 'shanghai']</td>\n",
219
+ " <td>1.0</td>\n",
220
+ " <td>False</td>\n",
221
+ " <td>4.0</td>\n",
222
+ " <td>17.0</td>\n",
223
+ " <td>Shanghai port congestion impacts terminals in ...</td>\n",
224
+ " <td>[shanghai, port, congestion, impact, terminal,...</td>\n",
225
+ " <td>[call_detail, consolidation_volume, contingenc...</td>\n",
226
+ " <td>13</td>\n",
227
+ " </tr>\n",
228
+ " <tr>\n",
229
+ " <th>3</th>\n",
230
+ " <td>4.0</td>\n",
231
+ " <td>UPDATE - Indonesia: Explosion at KP Terminal i...</td>\n",
232
+ " <td>Updated local media sources from Jakarta indic...</td>\n",
233
+ " <td>Extreme</td>\n",
234
+ " <td>Bombing, Police Operations</td>\n",
235
+ " <td>Indonesia</td>\n",
236
+ " <td>24/5/17 15:15</td>\n",
237
+ " <td>2017.0</td>\n",
238
+ " <td>-6.22465</td>\n",
239
+ " <td>106.86700</td>\n",
240
+ " <td>True</td>\n",
241
+ " <td>['jakarta']</td>\n",
242
+ " <td>1.0</td>\n",
243
+ " <td>False</td>\n",
244
+ " <td>5.0</td>\n",
245
+ " <td>21.0</td>\n",
246
+ " <td>UPDATE - Indonesia: Explosion at KP Terminal i...</td>\n",
247
+ " <td>[update, indonesia, explosion, at, kp, termina...</td>\n",
248
+ " <td>[area_lock_police, bus_coach_station, coach_st...</td>\n",
249
+ " <td>16</td>\n",
250
+ " </tr>\n",
251
+ " <tr>\n",
252
+ " <th>4</th>\n",
253
+ " <td>5.0</td>\n",
254
+ " <td>UPDATE - Indonesia: Police confirm two explosi...</td>\n",
255
+ " <td>According to local police in Jakarta, two expl...</td>\n",
256
+ " <td>Extreme</td>\n",
257
+ " <td>Bombing, Police Operations</td>\n",
258
+ " <td>Indonesia</td>\n",
259
+ " <td>24/5/17 16:20</td>\n",
260
+ " <td>2017.0</td>\n",
261
+ " <td>NaN</td>\n",
262
+ " <td>NaN</td>\n",
263
+ " <td>True</td>\n",
264
+ " <td>['jakarta']</td>\n",
265
+ " <td>1.0</td>\n",
266
+ " <td>True</td>\n",
267
+ " <td>5.0</td>\n",
268
+ " <td>21.0</td>\n",
269
+ " <td>UPDATE - Indonesia: Police confirm two explosi...</td>\n",
270
+ " <td>[update, indonesia, police, confirm, two, expl...</td>\n",
271
+ " <td>[bus_coach_station, terminal_kampung_melayu, a...</td>\n",
272
+ " <td>11</td>\n",
273
+ " </tr>\n",
274
+ " </tbody>\n",
275
+ "</table>\n",
276
+ "</div>"
277
+ ],
278
+ "text/plain": [
279
+ " id Headline \\\n",
280
+ "0 1.0 Grasberg Mine- Grasberg mine workers extend st... \n",
281
+ "1 2.0 Indonesia: Undersea internet cables damaged by... \n",
282
+ "2 3.0 Shanghai port congestion impacts terminals in ... \n",
283
+ "3 4.0 UPDATE - Indonesia: Explosion at KP Terminal i... \n",
284
+ "4 5.0 UPDATE - Indonesia: Police confirm two explosi... \n",
285
+ "\n",
286
+ " Details Severity \\\n",
287
+ "0 Media sources indicate that workers at the Gra... Moderate \n",
288
+ "1 News sources are stating that recent typhoons ... Minor \n",
289
+ "2 The persisting port congestion at Shanghai’s Y... Minor \n",
290
+ "3 Updated local media sources from Jakarta indic... Extreme \n",
291
+ "4 According to local police in Jakarta, two expl... Extreme \n",
292
+ "\n",
293
+ " Category Region Datetime Year lat \\\n",
294
+ "0 Mine Workers Strike Indonesia 28/5/17 17:08 2017.0 -4.05608 \n",
295
+ "1 Travel Warning Indonesia 4/9/17 14:30 2017.0 NaN \n",
296
+ "2 Port Congestion China 27/4/17 9:16 2017.0 29.52000 \n",
297
+ "3 Bombing, Police Operations Indonesia 24/5/17 15:15 2017.0 -6.22465 \n",
298
+ "4 Bombing, Police Operations Indonesia 24/5/17 16:20 2017.0 NaN \n",
299
+ "\n",
300
+ " lon maritime_label found_ports \\\n",
301
+ "0 137.11302 False ['freeport'] \n",
302
+ "1 NaN False ['hong kong'] \n",
303
+ "2 121.33190 True ['ningbo', 'qingdao', 'shanghai'] \n",
304
+ "3 106.86700 True ['jakarta'] \n",
305
+ "4 NaN True ['jakarta'] \n",
306
+ "\n",
307
+ " contains_port_info if_labeled Month Week \\\n",
308
+ "0 1.0 False 5.0 21.0 \n",
309
+ "1 1.0 False 4.0 14.0 \n",
310
+ "2 1.0 False 4.0 17.0 \n",
311
+ "3 1.0 False 5.0 21.0 \n",
312
+ "4 1.0 True 5.0 21.0 \n",
313
+ "\n",
314
+ " Headline_Details \\\n",
315
+ "0 Grasberg Mine- Grasberg mine workers extend st... \n",
316
+ "1 Indonesia: Undersea internet cables damaged by... \n",
317
+ "2 Shanghai port congestion impacts terminals in ... \n",
318
+ "3 UPDATE - Indonesia: Explosion at KP Terminal i... \n",
319
+ "4 UPDATE - Indonesia: Police confirm two explosi... \n",
320
+ "\n",
321
+ " cleaned_Headline_Details \\\n",
322
+ "0 [grasberg, grasberg, mine, worker, extend, str... \n",
323
+ "1 [indonesia, undersea, internet, cable, damage,... \n",
324
+ "2 [shanghai, port, congestion, impact, terminal,... \n",
325
+ "3 [update, indonesia, explosion, at, kp, termina... \n",
326
+ "4 [update, indonesia, police, confirm, two, expl... \n",
327
+ "\n",
328
+ " binary_Headline_Details word_count \n",
329
+ "0 [annual_output_half, condition_layoff, dispute... 19 \n",
330
+ "1 [complete_ase_asia, damage_typhoon, internet_c... 17 \n",
331
+ "2 [call_detail, consolidation_volume, contingenc... 13 \n",
332
+ "3 [area_lock_police, bus_coach_station, coach_st... 16 \n",
333
+ "4 [bus_coach_station, terminal_kampung_melayu, a... 11 "
334
+ ]
335
+ },
336
+ "execution_count": 5,
337
+ "metadata": {},
338
+ "output_type": "execute_result"
339
+ }
340
+ ],
341
+ "source": [
342
+ "df.head()"
343
+ ]
344
+ },
345
+ {
346
+ "cell_type": "code",
347
+ "execution_count": 6,
348
+ "id": "09113e88-66cc-414c-a953-da04db83c4ae",
349
+ "metadata": {},
350
+ "outputs": [
351
+ {
352
+ "name": "stderr",
353
+ "output_type": "stream",
354
+ "text": [
355
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
356
+ " and should_run_async(code)\n"
357
+ ]
358
+ },
359
+ {
360
+ "data": {
361
+ "text/plain": [
362
+ "(5778, 20)"
363
+ ]
364
+ },
365
+ "execution_count": 6,
366
+ "metadata": {},
367
+ "output_type": "execute_result"
368
+ }
369
+ ],
370
+ "source": [
371
+ "df.shape"
372
+ ]
373
+ },
374
+ {
375
+ "cell_type": "markdown",
376
+ "id": "037e74fc-bbcd-43e3-8346-799920cca8d8",
377
+ "metadata": {},
378
+ "source": [
379
+ "# Vectorisation"
380
+ ]
381
+ },
382
+ {
383
+ "cell_type": "markdown",
384
+ "id": "d67cef3a-59fb-4dd8-adc8-2cf288b90728",
385
+ "metadata": {},
386
+ "source": [
387
+ "NLP vectorization refers to the process of converting text data into numerical vectors that machine learning algorithms can understand and process. \n",
388
+ "\n",
389
+ "Bag-of-Words (BoW) is used here that represents text as a collection of unique words along with their frequencies. Each word is assigned an index, and the vector contains the count of each word present in the document."
390
+ ]
391
+ },
392
+ {
393
+ "cell_type": "code",
394
+ "execution_count": 7,
395
+ "id": "c95b7b8a-9767-469d-812d-c9a9d9fee0e9",
396
+ "metadata": {},
397
+ "outputs": [
398
+ {
399
+ "name": "stderr",
400
+ "output_type": "stream",
401
+ "text": [
402
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
403
+ " and should_run_async(code)\n"
404
+ ]
405
+ }
406
+ ],
407
+ "source": [
408
+ "cleaned = df.copy()"
409
+ ]
410
+ },
411
+ {
412
+ "cell_type": "code",
413
+ "execution_count": 8,
414
+ "id": "de71c523-a59e-44b2-aa96-5f17d872c9c6",
415
+ "metadata": {},
416
+ "outputs": [
417
+ {
418
+ "name": "stderr",
419
+ "output_type": "stream",
420
+ "text": [
421
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
422
+ " and should_run_async(code)\n"
423
+ ]
424
+ }
425
+ ],
426
+ "source": [
427
+ "headline = cleaned.binary_Headline_Details"
428
+ ]
429
+ },
430
+ {
431
+ "cell_type": "code",
432
+ "execution_count": 9,
433
+ "id": "5b1e34e1",
434
+ "metadata": {},
435
+ "outputs": [
436
+ {
437
+ "name": "stderr",
438
+ "output_type": "stream",
439
+ "text": [
440
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
441
+ " and should_run_async(code)\n"
442
+ ]
443
+ },
444
+ {
445
+ "data": {
446
+ "text/plain": [
447
+ "array(['annual_output_half', 'condition_layoff',\n",
448
+ " 'dispute_regard_employment', 'fourth_month_dispute',\n",
449
+ " 'fourth_month_medium', 'freeport_mcmoran',\n",
450
+ " 'grasberg_grasberg_mine', 'illegal_state_worker', 'job_strike',\n",
451
+ " 'labor_action_cut', 'large_copper_mine', 'large_gold_mine',\n",
452
+ " 'mine_locate_tembagapura', 'mine_worker', 'regard_layoff_benefit',\n",
453
+ " 'unresolved_company_official', 'work_stoppage',\n",
454
+ " 'worker_contractor', 'worker_grasberg_mine'], dtype=object)"
455
+ ]
456
+ },
457
+ "execution_count": 9,
458
+ "metadata": {},
459
+ "output_type": "execute_result"
460
+ }
461
+ ],
462
+ "source": [
463
+ "headline[0]"
464
+ ]
465
+ },
466
+ {
467
+ "cell_type": "code",
468
+ "execution_count": 10,
469
+ "id": "677055b4-978e-4253-90f4-3f903662e225",
470
+ "metadata": {
471
+ "tags": []
472
+ },
473
+ "outputs": [
474
+ {
475
+ "name": "stderr",
476
+ "output_type": "stream",
477
+ "text": [
478
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
479
+ " and should_run_async(code)\n"
480
+ ]
481
+ }
482
+ ],
483
+ "source": [
484
+ "# vectorise the words\n",
485
+ "doc_dict = gensim.corpora.Dictionary(headline)\n",
486
+ "docs_vecs = [doc_dict.doc2bow(doc) for doc in headline]"
487
+ ]
488
+ },
489
+ {
490
+ "cell_type": "code",
491
+ "execution_count": 11,
492
+ "id": "a54d1768-b069-4936-a156-deaf0b506d93",
493
+ "metadata": {
494
+ "tags": []
495
+ },
496
+ "outputs": [
497
+ {
498
+ "name": "stdout",
499
+ "output_type": "stream",
500
+ "text": [
501
+ "Number of unique tokens: 58447\n",
502
+ "Number of articles: 5778\n"
503
+ ]
504
+ },
505
+ {
506
+ "name": "stderr",
507
+ "output_type": "stream",
508
+ "text": [
509
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
510
+ " and should_run_async(code)\n"
511
+ ]
512
+ }
513
+ ],
514
+ "source": [
515
+ "print('Number of unique tokens: %d' % len(doc_dict)) \n",
516
+ "print('Number of articles: %d' % len(docs_vecs)) "
517
+ ]
518
+ },
519
+ {
520
+ "cell_type": "code",
521
+ "execution_count": 12,
522
+ "id": "9147fa86-1503-4252-bd9b-92fea1e6a926",
523
+ "metadata": {
524
+ "scrolled": true,
525
+ "tags": []
526
+ },
527
+ "outputs": [
528
+ {
529
+ "name": "stderr",
530
+ "output_type": "stream",
531
+ "text": [
532
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
533
+ " and should_run_async(code)\n"
534
+ ]
535
+ },
536
+ {
537
+ "name": "stdout",
538
+ "output_type": "stream",
539
+ "text": [
540
+ "[('strong_wind', 312),\n",
541
+ " ('terminal_port', 90),\n",
542
+ " ('port_call', 89),\n",
543
+ " ('heavy_rain', 88),\n",
544
+ " ('severe_wind', 77),\n",
545
+ " ('due_dense_fog', 72),\n",
546
+ " ('next_day', 71),\n",
547
+ " ('hong_kong', 68),\n",
548
+ " ('strong_wind_forecast', 68),\n",
549
+ " ('united_state', 67),\n",
550
+ " ('cargo_ship', 61),\n",
551
+ " ('high_wind', 60),\n",
552
+ " ('port_operation', 59),\n",
553
+ " ('new_york_city', 59),\n",
554
+ " ('heavy_rainfall', 58),\n",
555
+ " ('container_ship', 57),\n",
556
+ " ('residual_disruption', 56),\n",
557
+ " ('new_york', 56),\n",
558
+ " ('average_wait', 54),\n",
559
+ " ('terminal_port_durban', 53),\n",
560
+ " ('high_risk_port', 53),\n",
561
+ " ('low_visibility', 53),\n",
562
+ " ('indicate_average', 51),\n",
563
+ " ('social_medium', 49),\n",
564
+ " ('united_kingdom', 49),\n",
565
+ " ('tropical_storm', 46),\n",
566
+ " ('last_week', 46),\n",
567
+ " ('operation_port', 46),\n",
568
+ " ('disrupt_operation_port', 44),\n",
569
+ " ('fire_break', 44),\n",
570
+ " ('give_earthquake', 44),\n",
571
+ " ('scale_yield', 44),\n",
572
+ " ('bad_weather', 42),\n",
573
+ " ('port_durban', 40),\n",
574
+ " ('coastal_area', 39),\n",
575
+ " ('delay_plan', 39),\n",
576
+ " ('seismological_centre_magnitude', 38),\n",
577
+ " ('affect_operation_port', 38),\n",
578
+ " ('day_port', 37),\n",
579
+ " ('ihs_markit_foresight', 37),\n",
580
+ " ('industrial_action', 36),\n",
581
+ " ('general_cargo_ship', 36),\n",
582
+ " ('seismological_centre', 36),\n",
583
+ " ('permission_prohibit', 36),\n",
584
+ " ('reserve_reproduction', 36),\n",
585
+ " ('whole_part', 36),\n",
586
+ " ('geological_survey', 35),\n",
587
+ " ('new_jersey', 35),\n",
588
+ " ('injury_damage_event', 35),\n",
589
+ " ('houston_ship_channel', 34),\n",
590
+ " ('san_antonio', 33),\n",
591
+ " ('international_container', 33),\n",
592
+ " ('earthquake_strike', 32),\n",
593
+ " ('european_mediterranean', 32),\n",
594
+ " ('international_organization', 32),\n",
595
+ " ('mb_moment_magnitude', 32),\n",
596
+ " ('ml_magnitude', 32),\n",
597
+ " ('mw_magnitude', 32),\n",
598
+ " ('present_earthquake', 32),\n",
599
+ " ('provide_information', 32),\n",
600
+ " ('seismological_agency', 32),\n",
601
+ " ('several_magnitude', 32),\n",
602
+ " ('incident_close', 31),\n",
603
+ " ('vessel_port', 31),\n",
604
+ " ('port_authority', 31),\n",
605
+ " ('risk_plan', 30),\n",
606
+ " ('national_hurricane_center', 30),\n",
607
+ " ('earthquake_locate_mile', 30),\n",
608
+ " ('global_climate_strike', 30),\n",
609
+ " ('mindful_cargo_theft', 29),\n",
610
+ " ('strike_action', 28),\n",
611
+ " ('previous_week', 28),\n",
612
+ " ('port_shanghai', 27),\n",
613
+ " ('rail_service', 26),\n",
614
+ " ('warn_issue', 26),\n",
615
+ " ('vessel_berth_port', 26),\n",
616
+ " ('adverse_weather_condition', 25),\n",
617
+ " ('strong_wind_area', 25),\n",
618
+ " ('likely_impact_operation', 24),\n",
619
+ " ('berth_congestion', 24),\n",
620
+ " ('adverse_weather', 24),\n",
621
+ " ('normal_operation', 24),\n",
622
+ " ('wait_vessel_call', 24),\n",
623
+ " ('national_weather_service', 23),\n",
624
+ " ('strong_wind_port', 23),\n",
625
+ " ('port_manila', 23),\n",
626
+ " ('affect_port_operation', 23),\n",
627
+ " ('cargo_operation', 23),\n",
628
+ " ('close_medium', 22),\n",
629
+ " ('port_closure', 22),\n",
630
+ " ('wait_day', 22),\n",
631
+ " ('port_qingdao', 22),\n",
632
+ " ('blank_service', 22),\n",
633
+ " ('customer_advise', 21),\n",
634
+ " ('additional_information', 21),\n",
635
+ " ('rail_disruption', 21),\n",
636
+ " ('likely_impact', 21),\n",
637
+ " ('last_year', 21),\n",
638
+ " ('medium_indicate', 21),\n",
639
+ " ('port_hong_kong', 21)]\n"
640
+ ]
641
+ }
642
+ ],
643
+ "source": [
644
+ "# Calculate word frequencies\n",
645
+ "word_frequencies = {doc_dict[word_id]: freq for word_id, freq in doc_dict.cfs.items()}\n",
646
+ "sorted_words = sorted(word_frequencies.items(), key=lambda x: x[1], reverse=True)\n",
647
+ "\n",
648
+ "pprint(sorted_words[:100])"
649
+ ]
650
+ },
651
+ {
652
+ "cell_type": "markdown",
653
+ "id": "5ed78239-2ce1-4784-a8f4-4c7438c8627b",
654
+ "metadata": {},
655
+ "source": [
656
+ "# LDA Modelling"
657
+ ]
658
+ },
659
+ {
660
+ "cell_type": "markdown",
661
+ "id": "9db83273-461d-4f70-b23f-ec967579d94f",
662
+ "metadata": {},
663
+ "source": [
664
+ "## Benchmark Model"
665
+ ]
666
+ },
667
+ {
668
+ "cell_type": "code",
669
+ "execution_count": 13,
670
+ "id": "e6d577bd-9936-4d45-be90-345af2eb4827",
671
+ "metadata": {
672
+ "tags": []
673
+ },
674
+ "outputs": [
675
+ {
676
+ "name": "stderr",
677
+ "output_type": "stream",
678
+ "text": [
679
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
680
+ " and should_run_async(code)\n"
681
+ ]
682
+ }
683
+ ],
684
+ "source": [
685
+ "# Build LDA benchmark model\n",
686
+ "lda_model = gensim.models.LdaMulticore(corpus=docs_vecs,\n",
687
+ " id2word=doc_dict,\n",
688
+ " num_topics=4, \n",
689
+ " random_state=42,\n",
690
+ " chunksize=100,\n",
691
+ " passes=10,\n",
692
+ " per_word_topics=True)"
693
+ ]
694
+ },
695
+ {
696
+ "cell_type": "code",
697
+ "execution_count": 14,
698
+ "id": "c4f1521f-5f43-40d2-a3a3-a8ac2ca6fec2",
699
+ "metadata": {
700
+ "tags": []
701
+ },
702
+ "outputs": [
703
+ {
704
+ "name": "stdout",
705
+ "output_type": "stream",
706
+ "text": [
707
+ "[(0,\n",
708
+ " '0.002*\"strong_wind\" + 0.002*\"next_day\" + 0.001*\"cargo_ship\" + '\n",
709
+ " '0.001*\"average_wait\" + 0.001*\"due_dense_fog\" + 0.001*\"heavy_rain\" + '\n",
710
+ " '0.001*\"indicate_average\" + 0.001*\"terminal_port\" + 0.001*\"tropical_storm\" + '\n",
711
+ " '0.001*\"container_ship\"'),\n",
712
+ " (1,\n",
713
+ " '0.001*\"new_york_city\" + 0.001*\"hong_kong\" + 0.001*\"port_operation\" + '\n",
714
+ " '0.001*\"mindful_cargo_theft\" + 0.001*\"risk_plan\" + '\n",
715
+ " '0.001*\"seismological_centre_magnitude\" + 0.001*\"heavy_rain\" + '\n",
716
+ " '0.001*\"bad_weather\" + 0.001*\"additional_information\" + '\n",
717
+ " '0.001*\"container_ship\"'),\n",
718
+ " (2,\n",
719
+ " '0.002*\"high_wind\" + 0.002*\"terminal_port\" + 0.002*\"terminal_port_durban\" + '\n",
720
+ " '0.001*\"strong_wind\" + 0.001*\"port_manila\" + 0.001*\"pier_container\" + '\n",
721
+ " '0.001*\"port_durban\" + 0.001*\"new_york\" + 0.001*\"north_vessel\" + '\n",
722
+ " '0.001*\"structural_damage_incident\"'),\n",
723
+ " (3,\n",
724
+ " '0.003*\"strong_wind\" + 0.001*\"strong_wind_forecast\" + 0.001*\"severe_wind\" + '\n",
725
+ " '0.001*\"port_call\" + 0.001*\"vessel_port\" + 0.001*\"residual_disruption\" + '\n",
726
+ " '0.001*\"low_visibility\" + 0.001*\"heavy_rain\" + 0.001*\"global_climate_strike\" '\n",
727
+ " '+ 0.001*\"disrupt_operation_port\"')]\n"
728
+ ]
729
+ },
730
+ {
731
+ "name": "stderr",
732
+ "output_type": "stream",
733
+ "text": [
734
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
735
+ " and should_run_async(code)\n"
736
+ ]
737
+ }
738
+ ],
739
+ "source": [
740
+ "from pprint import pprint\n",
741
+ "\n",
742
+ "# Print the Keyword in the 10 topics\n",
743
+ "pprint(lda_model.print_topics())\n",
744
+ "doc_lda = lda_model[docs_vecs]"
745
+ ]
746
+ },
747
+ {
748
+ "cell_type": "code",
749
+ "execution_count": 15,
750
+ "id": "fd57b1f4-a6cd-41e8-964f-d8a1d30aa3c9",
751
+ "metadata": {
752
+ "tags": []
753
+ },
754
+ "outputs": [
755
+ {
756
+ "name": "stderr",
757
+ "output_type": "stream",
758
+ "text": [
759
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
760
+ " and should_run_async(code)\n"
761
+ ]
762
+ },
763
+ {
764
+ "name": "stdout",
765
+ "output_type": "stream",
766
+ "text": [
767
+ "\n",
768
+ "Coherence Score LDAModel: 0.5632750658034456\n"
769
+ ]
770
+ }
771
+ ],
772
+ "source": [
773
+ "# Compute Benchmark Coherence Score\n",
774
+ "coherence_model_lda = CoherenceModel(model=lda_model, texts=headline, dictionary=doc_dict, coherence='c_v')\n",
775
+ "coherence_lda = coherence_model_lda.get_coherence()\n",
776
+ "print('\\nCoherence Score LDAModel: ', coherence_lda)"
777
+ ]
778
+ },
779
+ {
780
+ "cell_type": "code",
781
+ "execution_count": 16,
782
+ "id": "152e5a3a-7afe-4fb8-a02f-d7492ad80936",
783
+ "metadata": {
784
+ "tags": []
785
+ },
786
+ "outputs": [
787
+ {
788
+ "name": "stderr",
789
+ "output_type": "stream",
790
+ "text": [
791
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
792
+ " and should_run_async(code)\n"
793
+ ]
794
+ },
795
+ {
796
+ "name": "stdout",
797
+ "output_type": "stream",
798
+ "text": [
799
+ "\n",
800
+ "Perplexity for LDAModel: -11.451563600192513\n"
801
+ ]
802
+ }
803
+ ],
804
+ "source": [
805
+ "# Compute Benchmark Perplexity\n",
806
+ "perplex= lda_model.log_perplexity(docs_vecs, total_docs=None) #For LDAModel\n",
807
+ " # a measure of how good the model is. lower the better.\n",
808
+ "\n",
809
+ "print('\\nPerplexity for LDAModel: ', perplex)"
810
+ ]
811
+ },
812
+ {
813
+ "cell_type": "code",
814
+ "execution_count": 17,
815
+ "id": "7dd3a60a-5c6f-4249-9868-30528a5b0ac8",
816
+ "metadata": {},
817
+ "outputs": [
818
+ {
819
+ "name": "stderr",
820
+ "output_type": "stream",
821
+ "text": [
822
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
823
+ " and should_run_async(code)\n"
824
+ ]
825
+ }
826
+ ],
827
+ "source": [
828
+ "from pprint import pprint\n",
829
+ "import pyLDAvis\n",
830
+ "import pyLDAvis.gensim_models as gensimvis\n",
831
+ "\n",
832
+ "# feed the LDA model into the pyLDAvis instance\n",
833
+ "pyLDAvis.enable_notebook()\n",
834
+ "visual= gensimvis.prepare(lda_model, docs_vecs, doc_dict)\n",
835
+ "\n",
836
+ "#Save the output to the html file\n",
837
+ "pyLDAvis.save_html(visual, \"topic_viz_benchmark.html\")"
838
+ ]
839
+ },
840
+ {
841
+ "cell_type": "code",
842
+ "execution_count": 40,
843
+ "id": "48bd84a0-ce9b-4117-bf6e-d9afb9936147",
844
+ "metadata": {},
845
+ "outputs": [
846
+ {
847
+ "name": "stderr",
848
+ "output_type": "stream",
849
+ "text": [
850
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
851
+ " and should_run_async(code)\n"
852
+ ]
853
+ },
854
+ {
855
+ "data": {
856
+ "text/html": [
857
+ "<div>\n",
858
+ "<style scoped>\n",
859
+ " .dataframe tbody tr th:only-of-type {\n",
860
+ " vertical-align: middle;\n",
861
+ " }\n",
862
+ "\n",
863
+ " .dataframe tbody tr th {\n",
864
+ " vertical-align: top;\n",
865
+ " }\n",
866
+ "\n",
867
+ " .dataframe thead th {\n",
868
+ " text-align: right;\n",
869
+ " }\n",
870
+ "</style>\n",
871
+ "<table border=\"1\" class=\"dataframe\">\n",
872
+ " <thead>\n",
873
+ " <tr style=\"text-align: right;\">\n",
874
+ " <th></th>\n",
875
+ " <th>Topic Keywords</th>\n",
876
+ " <th>Topic ID</th>\n",
877
+ " </tr>\n",
878
+ " </thead>\n",
879
+ " <tbody>\n",
880
+ " <tr>\n",
881
+ " <th>0</th>\n",
882
+ " <td>0.002*\"strong_wind\" + 0.002*\"next_day\" + 0.001*\"cargo_ship\" + 0.001*\"average_wait\" + 0.001*\"due_dense_fog\" + 0.001*\"heavy_rain\"</td>\n",
883
+ " <td>0</td>\n",
884
+ " </tr>\n",
885
+ " <tr>\n",
886
+ " <th>1</th>\n",
887
+ " <td>0.001*\"new_york_city\" + 0.001*\"hong_kong\" + 0.001*\"port_operation\" + 0.001*\"mindful_cargo_theft\" + 0.001*\"risk_plan\" + 0.001*\"seismological_centre_magnitude\"</td>\n",
888
+ " <td>1</td>\n",
889
+ " </tr>\n",
890
+ " <tr>\n",
891
+ " <th>2</th>\n",
892
+ " <td>0.002*\"high_wind\" + 0.002*\"terminal_port\" + 0.002*\"terminal_port_durban\" + 0.001*\"strong_wind\" + 0.001*\"port_manila\" + 0.001*\"pier_container\"</td>\n",
893
+ " <td>2</td>\n",
894
+ " </tr>\n",
895
+ " <tr>\n",
896
+ " <th>3</th>\n",
897
+ " <td>0.003*\"strong_wind\" + 0.001*\"strong_wind_forecast\" + 0.001*\"severe_wind\" + 0.001*\"port_call\" + 0.001*\"vessel_port\" + 0.001*\"residual_disruption\"</td>\n",
898
+ " <td>3</td>\n",
899
+ " </tr>\n",
900
+ " </tbody>\n",
901
+ "</table>\n",
902
+ "</div>"
903
+ ],
904
+ "text/plain": [
905
+ " Topic Keywords \\\n",
906
+ "0 0.002*\"strong_wind\" + 0.002*\"next_day\" + 0.001*\"cargo_ship\" + 0.001*\"average_wait\" + 0.001*\"due_dense_fog\" + 0.001*\"heavy_rain\" \n",
907
+ "1 0.001*\"new_york_city\" + 0.001*\"hong_kong\" + 0.001*\"port_operation\" + 0.001*\"mindful_cargo_theft\" + 0.001*\"risk_plan\" + 0.001*\"seismological_centre_magnitude\" \n",
908
+ "2 0.002*\"high_wind\" + 0.002*\"terminal_port\" + 0.002*\"terminal_port_durban\" + 0.001*\"strong_wind\" + 0.001*\"port_manila\" + 0.001*\"pier_container\" \n",
909
+ "3 0.003*\"strong_wind\" + 0.001*\"strong_wind_forecast\" + 0.001*\"severe_wind\" + 0.001*\"port_call\" + 0.001*\"vessel_port\" + 0.001*\"residual_disruption\" \n",
910
+ "\n",
911
+ " Topic ID \n",
912
+ "0 0 \n",
913
+ "1 1 \n",
914
+ "2 2 \n",
915
+ "3 3 "
916
+ ]
917
+ },
918
+ "execution_count": 40,
919
+ "metadata": {},
920
+ "output_type": "execute_result"
921
+ }
922
+ ],
923
+ "source": [
924
+ "pd.set_option('max_colwidth', 200)\n",
925
+ "# Get the topics and their top keywords into a dataframe\n",
926
+ "topics = lda_model.show_topics(num_words=6) \n",
927
+ "\n",
928
+ "topic_keywords = pd.DataFrame()\n",
929
+ "for topic_id, topic in topics:\n",
930
+ " topic_keywords.at[topic_id, 'Topic Keywords'] = topic\n",
931
+ "\n",
932
+ "topic_keywords['Topic ID'] = topic_keywords.index\n",
933
+ "# topic_keywords['Topic Name'] = topic_mapping \n",
934
+ "topic_keywords"
935
+ ]
936
+ },
937
+ {
938
+ "cell_type": "raw",
939
+ "id": "c131e7b2-2f72-4ce6-ac8a-91768fe6cce6",
940
+ "metadata": {},
941
+ "source": [
942
+ "conclusion: no significant insights gained from the model result as we cannot identify any topics, maybe more data is needed, will deploy web scraping for full news content after mid term."
943
+ ]
944
+ }
945
+ ],
946
+ "metadata": {
947
+ "kernelspec": {
948
+ "display_name": "Python 3",
949
+ "language": "python",
950
+ "name": "python3"
951
+ },
952
+ "language_info": {
953
+ "codemirror_mode": {
954
+ "name": "ipython",
955
+ "version": 3
956
+ },
957
+ "file_extension": ".py",
958
+ "mimetype": "text/x-python",
959
+ "name": "python",
960
+ "nbconvert_exporter": "python",
961
+ "pygments_lexer": "ipython3",
962
+ "version": "3.8.16"
963
+ }
964
+ },
965
+ "nbformat": 4,
966
+ "nbformat_minor": 5
967
+ }
IS424_Data_Mining/code/LDA/topic_modelling_minor.ipynb ADDED
@@ -0,0 +1,1380 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "46322fb5-5918-4b70-9689-9e0781439ac4",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "# !pip3 install wordcloud"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 2,
16
+ "id": "daf1e3d1-75ac-4299-8bed-2f413a49f9a6",
17
+ "metadata": {
18
+ "tags": []
19
+ },
20
+ "outputs": [],
21
+ "source": [
22
+ "import nltk\n",
23
+ "from nltk.tokenize import sent_tokenize\n",
24
+ "from nltk.tokenize import word_tokenize\n",
25
+ "\n",
26
+ "import gensim\n",
27
+ "from gensim import corpora\n",
28
+ "from gensim import similarities\n",
29
+ "from gensim import models\n",
30
+ "from gensim.models import CoherenceModel\n",
31
+ "\n",
32
+ "# from wordcloud import WordCloud, ImageColorGenerator\n",
33
+ "import matplotlib.pyplot as plt\n",
34
+ "import seaborn as sns\n",
35
+ "import pandas as pd\n",
36
+ "import re\n",
37
+ "import os\n",
38
+ "import datetime\n",
39
+ "\n",
40
+ "import warnings\n",
41
+ "warnings.filterwarnings('ignore')\n",
42
+ "\n",
43
+ "from pprint import pprint\n",
44
+ "import pyLDAvis\n",
45
+ "import pyLDAvis.gensim_models as gensimvis"
46
+ ]
47
+ },
48
+ {
49
+ "cell_type": "code",
50
+ "execution_count": 3,
51
+ "id": "c673c907-e1d8-4d64-9a73-c15c15b78e7f",
52
+ "metadata": {},
53
+ "outputs": [
54
+ {
55
+ "name": "stdout",
56
+ "output_type": "stream",
57
+ "text": [
58
+ "2024-04-14 13:28:04.105795\n"
59
+ ]
60
+ },
61
+ {
62
+ "name": "stderr",
63
+ "output_type": "stream",
64
+ "text": [
65
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
66
+ " and should_run_async(code)\n"
67
+ ]
68
+ }
69
+ ],
70
+ "source": [
71
+ "print(datetime.datetime.now())"
72
+ ]
73
+ },
74
+ {
75
+ "cell_type": "markdown",
76
+ "id": "49e6de6b-71bd-4948-8827-52601406058f",
77
+ "metadata": {},
78
+ "source": [
79
+ "# Import Data"
80
+ ]
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "execution_count": 4,
85
+ "id": "49222182-7811-4fa6-8c0a-21d3a546863e",
86
+ "metadata": {},
87
+ "outputs": [
88
+ {
89
+ "name": "stderr",
90
+ "output_type": "stream",
91
+ "text": [
92
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
93
+ " and should_run_async(code)\n"
94
+ ]
95
+ }
96
+ ],
97
+ "source": [
98
+ "df = pd.read_parquet('processed_data1.parquet')"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "code",
103
+ "execution_count": 5,
104
+ "id": "3fb59a30",
105
+ "metadata": {},
106
+ "outputs": [
107
+ {
108
+ "name": "stderr",
109
+ "output_type": "stream",
110
+ "text": [
111
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
112
+ " and should_run_async(code)\n"
113
+ ]
114
+ },
115
+ {
116
+ "data": {
117
+ "text/html": [
118
+ "<div>\n",
119
+ "<style scoped>\n",
120
+ " .dataframe tbody tr th:only-of-type {\n",
121
+ " vertical-align: middle;\n",
122
+ " }\n",
123
+ "\n",
124
+ " .dataframe tbody tr th {\n",
125
+ " vertical-align: top;\n",
126
+ " }\n",
127
+ "\n",
128
+ " .dataframe thead th {\n",
129
+ " text-align: right;\n",
130
+ " }\n",
131
+ "</style>\n",
132
+ "<table border=\"1\" class=\"dataframe\">\n",
133
+ " <thead>\n",
134
+ " <tr style=\"text-align: right;\">\n",
135
+ " <th></th>\n",
136
+ " <th>id</th>\n",
137
+ " <th>Headline</th>\n",
138
+ " <th>Details</th>\n",
139
+ " <th>Severity</th>\n",
140
+ " <th>Category</th>\n",
141
+ " <th>Region</th>\n",
142
+ " <th>Datetime</th>\n",
143
+ " <th>Year</th>\n",
144
+ " <th>lat</th>\n",
145
+ " <th>lon</th>\n",
146
+ " <th>...</th>\n",
147
+ " <th>if_labeled</th>\n",
148
+ " <th>Month</th>\n",
149
+ " <th>Week</th>\n",
150
+ " <th>Headline_Details</th>\n",
151
+ " <th>url</th>\n",
152
+ " <th>title</th>\n",
153
+ " <th>content</th>\n",
154
+ " <th>cleaned_content</th>\n",
155
+ " <th>binary_content</th>\n",
156
+ " <th>word_count</th>\n",
157
+ " </tr>\n",
158
+ " </thead>\n",
159
+ " <tbody>\n",
160
+ " <tr>\n",
161
+ " <th>0</th>\n",
162
+ " <td>1.0</td>\n",
163
+ " <td>Grasberg Mine- Grasberg mine workers extend st...</td>\n",
164
+ " <td>Media sources indicate that workers at the Gra...</td>\n",
165
+ " <td>Moderate</td>\n",
166
+ " <td>Mine Workers Strike</td>\n",
167
+ " <td>Indonesia</td>\n",
168
+ " <td>28/5/17 17:08</td>\n",
169
+ " <td>2017.0</td>\n",
170
+ " <td>-4.05608</td>\n",
171
+ " <td>137.11302</td>\n",
172
+ " <td>...</td>\n",
173
+ " <td>False</td>\n",
174
+ " <td>5.0</td>\n",
175
+ " <td>21.0</td>\n",
176
+ " <td>Grasberg Mine- Grasberg mine workers extend st...</td>\n",
177
+ " <td>https://news.google.com/rss/articles/CBMiZ2h0d...</td>\n",
178
+ " <td>Freeport Indonesia mine workers extend strike ...</td>\n",
179
+ " <td>Trucks are seen on a road in the Grasberg copp...</td>\n",
180
+ " <td>[truck, be, see, on, road, in, grasberg, coppe...</td>\n",
181
+ " <td>[adkerson_jakarta_try, agreement_freeport_indo...</td>\n",
182
+ " <td>53</td>\n",
183
+ " </tr>\n",
184
+ " <tr>\n",
185
+ " <th>1</th>\n",
186
+ " <td>3.0</td>\n",
187
+ " <td>Shanghai port congestion impacts terminals in ...</td>\n",
188
+ " <td>The persisting port congestion at Shanghai’s Y...</td>\n",
189
+ " <td>Minor</td>\n",
190
+ " <td>Port Congestion</td>\n",
191
+ " <td>China</td>\n",
192
+ " <td>27/4/17 9:16</td>\n",
193
+ " <td>2017.0</td>\n",
194
+ " <td>29.52000</td>\n",
195
+ " <td>121.33190</td>\n",
196
+ " <td>...</td>\n",
197
+ " <td>False</td>\n",
198
+ " <td>4.0</td>\n",
199
+ " <td>17.0</td>\n",
200
+ " <td>Shanghai port congestion impacts terminals in ...</td>\n",
201
+ " <td>https://news.google.com/rss/articles/CBMiVWh0d...</td>\n",
202
+ " <td>Typhoon Muifa to shut China ports for second t...</td>\n",
203
+ " <td>By Sam Whelan 13/09/2022\\n\\nAnother typhoon ha...</td>\n",
204
+ " <td>[by, sam, whelan, typhoon, have, prompt, port,...</td>\n",
205
+ " <td>[additional_ripple_effect, avoid_path_typhoon,...</td>\n",
206
+ " <td>44</td>\n",
207
+ " </tr>\n",
208
+ " <tr>\n",
209
+ " <th>2</th>\n",
210
+ " <td>5.0</td>\n",
211
+ " <td>UPDATE - Indonesia: Police confirm two explosi...</td>\n",
212
+ " <td>According to local police in Jakarta, two expl...</td>\n",
213
+ " <td>Extreme</td>\n",
214
+ " <td>Bombing, Police Operations</td>\n",
215
+ " <td>Indonesia</td>\n",
216
+ " <td>24/5/17 16:20</td>\n",
217
+ " <td>2017.0</td>\n",
218
+ " <td>NaN</td>\n",
219
+ " <td>NaN</td>\n",
220
+ " <td>...</td>\n",
221
+ " <td>True</td>\n",
222
+ " <td>5.0</td>\n",
223
+ " <td>21.0</td>\n",
224
+ " <td>UPDATE - Indonesia: Police confirm two explosi...</td>\n",
225
+ " <td>https://news.google.com/rss/articles/CBMiZWh0d...</td>\n",
226
+ " <td>Jakarta Police Receive 2 More Reports on Coldp...</td>\n",
227
+ " <td>TEMPO.CO, Jakarta - South Jakarta Metro Police...</td>\n",
228
+ " <td>[jakarta, south, jakarta, metro, police, recei...</td>\n",
229
+ " <td>[actress_accord, available_day_concert, click_...</td>\n",
230
+ " <td>24</td>\n",
231
+ " </tr>\n",
232
+ " <tr>\n",
233
+ " <th>3</th>\n",
234
+ " <td>6.0</td>\n",
235
+ " <td>UPDATE - Indonesia: Severe winds damage infras...</td>\n",
236
+ " <td>Severe winds have downed billboards and trees ...</td>\n",
237
+ " <td>Moderate</td>\n",
238
+ " <td>Roadway Closure / Disruption, Flooding, Severe...</td>\n",
239
+ " <td>Indonesia</td>\n",
240
+ " <td>19/4/17 9:10</td>\n",
241
+ " <td>2017.0</td>\n",
242
+ " <td>-6.91264</td>\n",
243
+ " <td>107.65700</td>\n",
244
+ " <td>...</td>\n",
245
+ " <td>True</td>\n",
246
+ " <td>4.0</td>\n",
247
+ " <td>16.0</td>\n",
248
+ " <td>UPDATE - Indonesia: Severe winds damage infras...</td>\n",
249
+ " <td>https://news.google.com/rss/articles/CBMiSWh0d...</td>\n",
250
+ " <td>Indonesia hit by some of strongest winds recorded</td>\n",
251
+ " <td>A man stands near damaged houses following a t...</td>\n",
252
+ " <td>[man, stand, near, damage, house, follow, torn...</td>\n",
253
+ " <td>[bbc_indonesia, climatologist_government_resea...</td>\n",
254
+ " <td>28</td>\n",
255
+ " </tr>\n",
256
+ " <tr>\n",
257
+ " <th>4</th>\n",
258
+ " <td>14.0</td>\n",
259
+ " <td>2 miles E of Chesterfield - A tornado has touc...</td>\n",
260
+ " <td>Government sources are reporting a tornado has...</td>\n",
261
+ " <td>Minor</td>\n",
262
+ " <td>Tornado</td>\n",
263
+ " <td>United States</td>\n",
264
+ " <td>17/9/18 19:55</td>\n",
265
+ " <td>2018.0</td>\n",
266
+ " <td>37.51000</td>\n",
267
+ " <td>-77.61000</td>\n",
268
+ " <td>...</td>\n",
269
+ " <td>True</td>\n",
270
+ " <td>9.0</td>\n",
271
+ " <td>38.0</td>\n",
272
+ " <td>2 miles E of Chesterfield - A tornado has touc...</td>\n",
273
+ " <td>https://news.google.com/rss/articles/CBMigAFod...</td>\n",
274
+ " <td>UPDATE: Number of homes without power down to ...</td>\n",
275
+ " <td>More than 90,000 homes and businesses across t...</td>\n",
276
+ " <td>[more, than, home, business, across, richmond,...</td>\n",
277
+ " <td>[advise_seek_alternate, affect_richmond, alter...</td>\n",
278
+ " <td>134</td>\n",
279
+ " </tr>\n",
280
+ " </tbody>\n",
281
+ "</table>\n",
282
+ "<p>5 rows × 23 columns</p>\n",
283
+ "</div>"
284
+ ],
285
+ "text/plain": [
286
+ " id Headline \\\n",
287
+ "0 1.0 Grasberg Mine- Grasberg mine workers extend st... \n",
288
+ "1 3.0 Shanghai port congestion impacts terminals in ... \n",
289
+ "2 5.0 UPDATE - Indonesia: Police confirm two explosi... \n",
290
+ "3 6.0 UPDATE - Indonesia: Severe winds damage infras... \n",
291
+ "4 14.0 2 miles E of Chesterfield - A tornado has touc... \n",
292
+ "\n",
293
+ " Details Severity \\\n",
294
+ "0 Media sources indicate that workers at the Gra... Moderate \n",
295
+ "1 The persisting port congestion at Shanghai’s Y... Minor \n",
296
+ "2 According to local police in Jakarta, two expl... Extreme \n",
297
+ "3 Severe winds have downed billboards and trees ... Moderate \n",
298
+ "4 Government sources are reporting a tornado has... Minor \n",
299
+ "\n",
300
+ " Category Region \\\n",
301
+ "0 Mine Workers Strike Indonesia \n",
302
+ "1 Port Congestion China \n",
303
+ "2 Bombing, Police Operations Indonesia \n",
304
+ "3 Roadway Closure / Disruption, Flooding, Severe... Indonesia \n",
305
+ "4 Tornado United States \n",
306
+ "\n",
307
+ " Datetime Year lat lon ... if_labeled Month Week \\\n",
308
+ "0 28/5/17 17:08 2017.0 -4.05608 137.11302 ... False 5.0 21.0 \n",
309
+ "1 27/4/17 9:16 2017.0 29.52000 121.33190 ... False 4.0 17.0 \n",
310
+ "2 24/5/17 16:20 2017.0 NaN NaN ... True 5.0 21.0 \n",
311
+ "3 19/4/17 9:10 2017.0 -6.91264 107.65700 ... True 4.0 16.0 \n",
312
+ "4 17/9/18 19:55 2018.0 37.51000 -77.61000 ... True 9.0 38.0 \n",
313
+ "\n",
314
+ " Headline_Details \\\n",
315
+ "0 Grasberg Mine- Grasberg mine workers extend st... \n",
316
+ "1 Shanghai port congestion impacts terminals in ... \n",
317
+ "2 UPDATE - Indonesia: Police confirm two explosi... \n",
318
+ "3 UPDATE - Indonesia: Severe winds damage infras... \n",
319
+ "4 2 miles E of Chesterfield - A tornado has touc... \n",
320
+ "\n",
321
+ " url \\\n",
322
+ "0 https://news.google.com/rss/articles/CBMiZ2h0d... \n",
323
+ "1 https://news.google.com/rss/articles/CBMiVWh0d... \n",
324
+ "2 https://news.google.com/rss/articles/CBMiZWh0d... \n",
325
+ "3 https://news.google.com/rss/articles/CBMiSWh0d... \n",
326
+ "4 https://news.google.com/rss/articles/CBMigAFod... \n",
327
+ "\n",
328
+ " title \\\n",
329
+ "0 Freeport Indonesia mine workers extend strike ... \n",
330
+ "1 Typhoon Muifa to shut China ports for second t... \n",
331
+ "2 Jakarta Police Receive 2 More Reports on Coldp... \n",
332
+ "3 Indonesia hit by some of strongest winds recorded \n",
333
+ "4 UPDATE: Number of homes without power down to ... \n",
334
+ "\n",
335
+ " content \\\n",
336
+ "0 Trucks are seen on a road in the Grasberg copp... \n",
337
+ "1 By Sam Whelan 13/09/2022\\n\\nAnother typhoon ha... \n",
338
+ "2 TEMPO.CO, Jakarta - South Jakarta Metro Police... \n",
339
+ "3 A man stands near damaged houses following a t... \n",
340
+ "4 More than 90,000 homes and businesses across t... \n",
341
+ "\n",
342
+ " cleaned_content \\\n",
343
+ "0 [truck, be, see, on, road, in, grasberg, coppe... \n",
344
+ "1 [by, sam, whelan, typhoon, have, prompt, port,... \n",
345
+ "2 [jakarta, south, jakarta, metro, police, recei... \n",
346
+ "3 [man, stand, near, damage, house, follow, torn... \n",
347
+ "4 [more, than, home, business, across, richmond,... \n",
348
+ "\n",
349
+ " binary_content word_count \n",
350
+ "0 [adkerson_jakarta_try, agreement_freeport_indo... 53 \n",
351
+ "1 [additional_ripple_effect, avoid_path_typhoon,... 44 \n",
352
+ "2 [actress_accord, available_day_concert, click_... 24 \n",
353
+ "3 [bbc_indonesia, climatologist_government_resea... 28 \n",
354
+ "4 [advise_seek_alternate, affect_richmond, alter... 134 \n",
355
+ "\n",
356
+ "[5 rows x 23 columns]"
357
+ ]
358
+ },
359
+ "execution_count": 5,
360
+ "metadata": {},
361
+ "output_type": "execute_result"
362
+ }
363
+ ],
364
+ "source": [
365
+ "df.head()"
366
+ ]
367
+ },
368
+ {
369
+ "cell_type": "code",
370
+ "execution_count": 6,
371
+ "id": "09113e88-66cc-414c-a953-da04db83c4ae",
372
+ "metadata": {},
373
+ "outputs": [
374
+ {
375
+ "name": "stderr",
376
+ "output_type": "stream",
377
+ "text": [
378
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
379
+ " and should_run_async(code)\n"
380
+ ]
381
+ },
382
+ {
383
+ "data": {
384
+ "text/plain": [
385
+ "(3555, 23)"
386
+ ]
387
+ },
388
+ "execution_count": 6,
389
+ "metadata": {},
390
+ "output_type": "execute_result"
391
+ }
392
+ ],
393
+ "source": [
394
+ "df.shape"
395
+ ]
396
+ },
397
+ {
398
+ "cell_type": "markdown",
399
+ "id": "037e74fc-bbcd-43e3-8346-799920cca8d8",
400
+ "metadata": {},
401
+ "source": [
402
+ "# Vectorisation"
403
+ ]
404
+ },
405
+ {
406
+ "cell_type": "markdown",
407
+ "id": "d67cef3a-59fb-4dd8-adc8-2cf288b90728",
408
+ "metadata": {},
409
+ "source": [
410
+ "NLP vectorization refers to the process of converting text data into numerical vectors that machine learning algorithms can understand and process. \n",
411
+ "\n",
412
+ "Bag-of-Words (BoW) is used here that represents text as a collection of unique words along with their frequencies. Each word is assigned an index, and the vector contains the count of each word present in the document."
413
+ ]
414
+ },
415
+ {
416
+ "cell_type": "code",
417
+ "execution_count": 7,
418
+ "id": "c95b7b8a-9767-469d-812d-c9a9d9fee0e9",
419
+ "metadata": {},
420
+ "outputs": [
421
+ {
422
+ "name": "stderr",
423
+ "output_type": "stream",
424
+ "text": [
425
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
426
+ " and should_run_async(code)\n"
427
+ ]
428
+ }
429
+ ],
430
+ "source": [
431
+ "df_copy = df.copy()"
432
+ ]
433
+ },
434
+ {
435
+ "cell_type": "code",
436
+ "execution_count": 8,
437
+ "id": "dfb2001e-04c1-49dc-b423-a64ea47af5a9",
438
+ "metadata": {},
439
+ "outputs": [
440
+ {
441
+ "name": "stderr",
442
+ "output_type": "stream",
443
+ "text": [
444
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
445
+ " and should_run_async(code)\n"
446
+ ]
447
+ }
448
+ ],
449
+ "source": [
450
+ "# choose only the extreme and severe cases for modelling\n",
451
+ "cleaned = df_copy[df_copy['Severity'].isin(['Minor'])]\n",
452
+ "cleaned.reset_index(drop=True, inplace=True)"
453
+ ]
454
+ },
455
+ {
456
+ "cell_type": "code",
457
+ "execution_count": 9,
458
+ "id": "3da09b6a-65c6-4f40-9a21-e0b798318ca5",
459
+ "metadata": {},
460
+ "outputs": [
461
+ {
462
+ "name": "stderr",
463
+ "output_type": "stream",
464
+ "text": [
465
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
466
+ " and should_run_async(code)\n"
467
+ ]
468
+ },
469
+ {
470
+ "data": {
471
+ "text/plain": [
472
+ "(1565, 23)"
473
+ ]
474
+ },
475
+ "execution_count": 9,
476
+ "metadata": {},
477
+ "output_type": "execute_result"
478
+ }
479
+ ],
480
+ "source": [
481
+ "cleaned.shape"
482
+ ]
483
+ },
484
+ {
485
+ "cell_type": "code",
486
+ "execution_count": 10,
487
+ "id": "de71c523-a59e-44b2-aa96-5f17d872c9c6",
488
+ "metadata": {},
489
+ "outputs": [
490
+ {
491
+ "name": "stderr",
492
+ "output_type": "stream",
493
+ "text": [
494
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
495
+ " and should_run_async(code)\n"
496
+ ]
497
+ }
498
+ ],
499
+ "source": [
500
+ "headline = cleaned.cleaned_content"
501
+ ]
502
+ },
503
+ {
504
+ "cell_type": "code",
505
+ "execution_count": 11,
506
+ "id": "5b1e34e1",
507
+ "metadata": {},
508
+ "outputs": [
509
+ {
510
+ "name": "stderr",
511
+ "output_type": "stream",
512
+ "text": [
513
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
514
+ " and should_run_async(code)\n"
515
+ ]
516
+ },
517
+ {
518
+ "data": {
519
+ "text/plain": [
520
+ "array(['man', 'be', 'seriously', 'injure', 'after', 'boat', 'catch',\n",
521
+ " 'fire', 'in', 'sydney', 'marina', 'today', 'emergency', 'service',\n",
522
+ " 'be', 'call', 'birkenhead', 'point', 'marina', 'in', 'drummoyne',\n",
523
+ " 'shortly', 'after', 'follow', 'report', 'of', 'explosion', 'on',\n",
524
+ " 'boat', 'careflight', 's', 'rapid', 'response', 'helicopter', 'be',\n",
525
+ " 'task', 'at', 'crew', 'include', 'doctor', 'intensive', 'care',\n",
526
+ " 'paramedic', 'fly', 'drummoyne', 'land', 'in', 'nearby', 'brett',\n",
527
+ " 'park', 'just', 'minute', 'late', 'careflight', 'boat', 'catch',\n",
528
+ " 'fire', 'near', 'birkenhead', 'point', 'shopping', 'outlet',\n",
529
+ " 'simon', 'r', 'supply', 'reader', 'image', 'of', 'boat', 'on',\n",
530
+ " 'fire', 'at', 'marina', 'in', 'drummoyne', 'simon', 'r', 'supply',\n",
531
+ " 'three', 'nsw', 'ambulance', 'crew', 'careflight', 'chopper',\n",
532
+ " 'attend', 'scene', 'find', 'man', 'suffer', 'serious', 'burn',\n",
533
+ " 'legs', 'arm', 'shoulder', 'man', 'suffer', 'burn', 'percent',\n",
534
+ " 'of', 'body', 'boat', 'reportedly', 'explode', 'into', 'flame',\n",
535
+ " 'shortly', 'before', 'morning', 'paramedic', 'treat', 'man', 'at',\n",
536
+ " 'scene', 'with', 'burn', 'percent', 'of', 'body', 'firefighting',\n",
537
+ " 'boat', 'be', 'deploy', 'help', 'extinguish', 'blaze', 'man', 'be',\n",
538
+ " 'treat', 'on', 'scene', 'be', 'surround', 'by', 'family', 'be',\n",
539
+ " 'not', 'onboard', 'boat', 'at', 'time'], dtype=object)"
540
+ ]
541
+ },
542
+ "execution_count": 11,
543
+ "metadata": {},
544
+ "output_type": "execute_result"
545
+ }
546
+ ],
547
+ "source": [
548
+ "headline[5]"
549
+ ]
550
+ },
551
+ {
552
+ "cell_type": "code",
553
+ "execution_count": 12,
554
+ "id": "677055b4-978e-4253-90f4-3f903662e225",
555
+ "metadata": {
556
+ "tags": []
557
+ },
558
+ "outputs": [
559
+ {
560
+ "name": "stderr",
561
+ "output_type": "stream",
562
+ "text": [
563
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
564
+ " and should_run_async(code)\n"
565
+ ]
566
+ }
567
+ ],
568
+ "source": [
569
+ "# vectorise the words\n",
570
+ "doc_dict = gensim.corpora.Dictionary(headline)\n",
571
+ "docs_vecs = [doc_dict.doc2bow(doc) for doc in headline]"
572
+ ]
573
+ },
574
+ {
575
+ "cell_type": "code",
576
+ "execution_count": 13,
577
+ "id": "a54d1768-b069-4936-a156-deaf0b506d93",
578
+ "metadata": {
579
+ "tags": []
580
+ },
581
+ "outputs": [
582
+ {
583
+ "name": "stdout",
584
+ "output_type": "stream",
585
+ "text": [
586
+ "Number of unique tokens: 33794\n",
587
+ "Number of articles: 1565\n"
588
+ ]
589
+ },
590
+ {
591
+ "name": "stderr",
592
+ "output_type": "stream",
593
+ "text": [
594
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
595
+ " and should_run_async(code)\n"
596
+ ]
597
+ }
598
+ ],
599
+ "source": [
600
+ "print('Number of unique tokens: %d' % len(doc_dict)) \n",
601
+ "print('Number of articles: %d' % len(docs_vecs)) "
602
+ ]
603
+ },
604
+ {
605
+ "cell_type": "code",
606
+ "execution_count": 14,
607
+ "id": "9147fa86-1503-4252-bd9b-92fea1e6a926",
608
+ "metadata": {
609
+ "scrolled": true,
610
+ "tags": []
611
+ },
612
+ "outputs": [
613
+ {
614
+ "name": "stdout",
615
+ "output_type": "stream",
616
+ "text": [
617
+ "[('be', 53994),\n",
618
+ " ('of', 49297),\n",
619
+ " ('in', 39323),\n",
620
+ " ('for', 18431),\n",
621
+ " ('have', 17670),\n",
622
+ " ('on', 17585),\n",
623
+ " ('with', 12117),\n",
624
+ " ('as', 11218),\n",
625
+ " ('port', 10791),\n",
626
+ " ('from', 10043),\n",
627
+ " ('at', 9988),\n",
628
+ " ('by', 9804),\n",
629
+ " ('will', 7881),\n",
630
+ " ('s', 7723),\n",
631
+ " ('say', 7402),\n",
632
+ " ('that', 7105),\n",
633
+ " ('not', 5352),\n",
634
+ " ('day', 5043),\n",
635
+ " ('more', 4979),\n",
636
+ " ('new', 4965),\n",
637
+ " ('service', 4828),\n",
638
+ " ('time', 4388),\n",
639
+ " ('china', 4374),\n",
640
+ " ('also', 4324),\n",
641
+ " ('ship', 4006),\n",
642
+ " ('than', 3534),\n",
643
+ " ('year', 3495),\n",
644
+ " ('can', 3294),\n",
645
+ " ('trade', 3288),\n",
646
+ " ('include', 3029),\n",
647
+ " ('between', 3016),\n",
648
+ " ('over', 3013),\n",
649
+ " ('state', 3006),\n",
650
+ " ('supply', 2992),\n",
651
+ " ('do', 2900),\n",
652
+ " ('report', 2836),\n",
653
+ " ('one', 2752),\n",
654
+ " ('after', 2752),\n",
655
+ " ('area', 2749),\n",
656
+ " ('vessel', 2722),\n",
657
+ " ('cargo', 2712),\n",
658
+ " ('people', 2692),\n",
659
+ " ('increase', 2690),\n",
660
+ " ('continue', 2652),\n",
661
+ " ('chain', 2622),\n",
662
+ " ('market', 2608),\n",
663
+ " ('country', 2603),\n",
664
+ " ('other', 2596),\n",
665
+ " ('container', 2590),\n",
666
+ " ('strike', 2576),\n",
667
+ " ('expect', 2568),\n",
668
+ " ('work', 2518),\n",
669
+ " ('http', 2470),\n",
670
+ " ('while', 2451),\n",
671
+ " ('high', 2445),\n",
672
+ " ('pm', 2436),\n",
673
+ " ('about', 2364),\n",
674
+ " ('remain', 2327),\n",
675
+ " ('into', 2303),\n",
676
+ " ('government', 2297),\n",
677
+ " ('take', 2258),\n",
678
+ " ('update', 2257),\n",
679
+ " ('info', 2250),\n",
680
+ " ('train', 2249),\n",
681
+ " ('would', 2213),\n",
682
+ " ('terminal', 2206),\n",
683
+ " ('city', 2205),\n",
684
+ " ('due', 2191),\n",
685
+ " ('asia', 2169),\n",
686
+ " ('demand', 2164),\n",
687
+ " ('two', 2120),\n",
688
+ " ('world', 2109),\n",
689
+ " ('may', 2104),\n",
690
+ " ('make', 2099),\n",
691
+ " ('use', 2057),\n",
692
+ " ('customer', 2005),\n",
693
+ " ('large', 2005),\n",
694
+ " ('south', 2004),\n",
695
+ " ('see', 1996),\n",
696
+ " ('plan', 1983),\n",
697
+ " ('march', 1969),\n",
698
+ " ('company', 1967),\n",
699
+ " ('through', 1963),\n",
700
+ " ('most', 1932),\n",
701
+ " ('north', 1924),\n",
702
+ " ('global', 1899),\n",
703
+ " ('first', 1897),\n",
704
+ " ('line', 1884),\n",
705
+ " ('across', 1855),\n",
706
+ " ('coast', 1810),\n",
707
+ " ('operation', 1787),\n",
708
+ " ('good', 1787),\n",
709
+ " ('could', 1786),\n",
710
+ " ('if', 1760),\n",
711
+ " ('week', 1752),\n",
712
+ " ('business', 1733),\n",
713
+ " ('million', 1683),\n",
714
+ " ('when', 1682),\n",
715
+ " ('last', 1674),\n",
716
+ " ('month', 1662)]\n"
717
+ ]
718
+ },
719
+ {
720
+ "name": "stderr",
721
+ "output_type": "stream",
722
+ "text": [
723
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
724
+ " and should_run_async(code)\n"
725
+ ]
726
+ }
727
+ ],
728
+ "source": [
729
+ "# Calculate word frequencies\n",
730
+ "word_frequencies = {doc_dict[word_id]: freq for word_id, freq in doc_dict.cfs.items()}\n",
731
+ "sorted_words = sorted(word_frequencies.items(), key=lambda x: x[1], reverse=True)\n",
732
+ "\n",
733
+ "pprint(sorted_words[:100])"
734
+ ]
735
+ },
736
+ {
737
+ "cell_type": "markdown",
738
+ "id": "5ed78239-2ce1-4784-a8f4-4c7438c8627b",
739
+ "metadata": {},
740
+ "source": [
741
+ "# LDA Modelling"
742
+ ]
743
+ },
744
+ {
745
+ "cell_type": "markdown",
746
+ "id": "9db83273-461d-4f70-b23f-ec967579d94f",
747
+ "metadata": {},
748
+ "source": [
749
+ "## Benchmark Model"
750
+ ]
751
+ },
752
+ {
753
+ "cell_type": "code",
754
+ "execution_count": null,
755
+ "id": "e6d577bd-9936-4d45-be90-345af2eb4827",
756
+ "metadata": {
757
+ "tags": []
758
+ },
759
+ "outputs": [
760
+ {
761
+ "name": "stderr",
762
+ "output_type": "stream",
763
+ "text": [
764
+ "/Users/wyf/miniconda3/lib/python3.8/site-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.\n",
765
+ " and should_run_async(code)\n"
766
+ ]
767
+ }
768
+ ],
769
+ "source": [
770
+ "# Build LDA benchmark model\n",
771
+ "lda_model = gensim.models.LdaMulticore(corpus=docs_vecs,\n",
772
+ " id2word=doc_dict,\n",
773
+ " num_topics=4, \n",
774
+ " random_state=42,\n",
775
+ " chunksize=100,\n",
776
+ " passes=10,\n",
777
+ " per_word_topics=True)"
778
+ ]
779
+ },
780
+ {
781
+ "cell_type": "code",
782
+ "execution_count": null,
783
+ "id": "c4f1521f-5f43-40d2-a3a3-a8ac2ca6fec2",
784
+ "metadata": {
785
+ "tags": []
786
+ },
787
+ "outputs": [],
788
+ "source": [
789
+ "from pprint import pprint\n",
790
+ "\n",
791
+ "# Print the Keyword in the 10 topics\n",
792
+ "pprint(lda_model.print_topics())\n",
793
+ "doc_lda = lda_model[docs_vecs]"
794
+ ]
795
+ },
796
+ {
797
+ "cell_type": "code",
798
+ "execution_count": null,
799
+ "id": "fd57b1f4-a6cd-41e8-964f-d8a1d30aa3c9",
800
+ "metadata": {
801
+ "tags": []
802
+ },
803
+ "outputs": [],
804
+ "source": [
805
+ "# Compute Benchmark Coherence Score\n",
806
+ "coherence_model_lda = CoherenceModel(model=lda_model, texts=headline, dictionary=doc_dict, coherence='c_v')\n",
807
+ "coherence_lda = coherence_model_lda.get_coherence()\n",
808
+ "print('\\nCoherence Score LDAModel: ', coherence_lda)"
809
+ ]
810
+ },
811
+ {
812
+ "cell_type": "code",
813
+ "execution_count": null,
814
+ "id": "152e5a3a-7afe-4fb8-a02f-d7492ad80936",
815
+ "metadata": {
816
+ "tags": []
817
+ },
818
+ "outputs": [],
819
+ "source": [
820
+ "# Compute Benchmark Perplexity\n",
821
+ "perplex= lda_model.log_perplexity(docs_vecs, total_docs=None) #For LDAModel\n",
822
+ " # a measure of how good the model is. lower the better.\n",
823
+ "\n",
824
+ "print('\\nPerplexity for LDAModel: ', perplex)"
825
+ ]
826
+ },
827
+ {
828
+ "cell_type": "code",
829
+ "execution_count": null,
830
+ "id": "7dd3a60a-5c6f-4249-9868-30528a5b0ac8",
831
+ "metadata": {},
832
+ "outputs": [],
833
+ "source": [
834
+ "from pprint import pprint\n",
835
+ "import pyLDAvis\n",
836
+ "import pyLDAvis.gensim_models as gensimvis\n",
837
+ "\n",
838
+ "# feed the LDA model into the pyLDAvis instance\n",
839
+ "pyLDAvis.enable_notebook()\n",
840
+ "visual= gensimvis.prepare(lda_model, docs_vecs, doc_dict)\n",
841
+ "\n",
842
+ "#Save the output to the html file\n",
843
+ "pyLDAvis.save_html(visual, \"topic_viz_benchmark_minor.html\")"
844
+ ]
845
+ },
846
+ {
847
+ "cell_type": "code",
848
+ "execution_count": null,
849
+ "id": "26da4eea-06a0-4ff7-ae14-2f40fa0db04b",
850
+ "metadata": {},
851
+ "outputs": [],
852
+ "source": [
853
+ "# break "
854
+ ]
855
+ },
856
+ {
857
+ "cell_type": "markdown",
858
+ "id": "1895598f-3e5f-4acd-83a6-4491cc90f695",
859
+ "metadata": {},
860
+ "source": [
861
+ "# Hyper-Perameter Tuning and Evaluation"
862
+ ]
863
+ },
864
+ {
865
+ "cell_type": "markdown",
866
+ "id": "47136c89-ff7b-4ac9-840f-04122fe62160",
867
+ "metadata": {},
868
+ "source": [
869
+ "Run the cells below only for re-modelling with new datasets, the whole tuning and evaluation process may take hours to run."
870
+ ]
871
+ },
872
+ {
873
+ "cell_type": "code",
874
+ "execution_count": null,
875
+ "id": "c79ca5c4-e078-43ce-a430-8c1ed93dcd64",
876
+ "metadata": {},
877
+ "outputs": [],
878
+ "source": [
879
+ "# hyper-perameter tuning (alpha and beta)\n",
880
+ "def compute_coherence_values(corpus, dictionary, k, a, b):\n",
881
+ " \n",
882
+ " lda_model = gensim.models.LdaMulticore(corpus=corpus,\n",
883
+ " id2word=dictionary,\n",
884
+ " num_topics=k, \n",
885
+ " random_state=42,\n",
886
+ " chunksize=100,\n",
887
+ " passes=10,\n",
888
+ " alpha=a,\n",
889
+ " eta=b)\n",
890
+ " \n",
891
+ " coherence_model_lda = CoherenceModel(model=lda_model, texts=headline, dictionary=doc_dict, coherence='c_v')\n",
892
+ " coherence = coherence_model_lda.get_coherence()\n",
893
+ " perplex = lda_model.log_perplexity(docs_vecs, total_docs=None) \n",
894
+ " \n",
895
+ " return coherence, perplex"
896
+ ]
897
+ },
898
+ {
899
+ "cell_type": "code",
900
+ "execution_count": null,
901
+ "id": "1c3c8478-9336-40f2-bb30-a37db4243b67",
902
+ "metadata": {},
903
+ "outputs": [],
904
+ "source": [
905
+ "# setup\n",
906
+ "import numpy as np\n",
907
+ "\n",
908
+ "from gensim.models import CoherenceModel\n",
909
+ "\n",
910
+ "model_list = []\n",
911
+ "coherence_values = []\n",
912
+ "perplexity_values = []\n",
913
+ "model_topics = []\n",
914
+ "alpha_result = []\n",
915
+ "beta_result = []\n",
916
+ "\n",
917
+ "# topic ranges\n",
918
+ "num_topics = range(4, 13)\n",
919
+ "\n",
920
+ "# Alpha parameter\n",
921
+ "alpha = list(np.arange(0.31, 1, 0.3))\n",
922
+ "alpha.append('symmetric')\n",
923
+ "alpha.append('asymmetric')\n",
924
+ "\n",
925
+ "# Beta parameter\n",
926
+ "beta = list(np.arange(0.31, 1, 0.3))\n",
927
+ "beta.append('symmetric')"
928
+ ]
929
+ },
930
+ {
931
+ "cell_type": "markdown",
932
+ "id": "c7e6bc53-0b57-4858-879a-644eca54ddbc",
933
+ "metadata": {},
934
+ "source": [
935
+ "Rational behind the alpha and eta: https://stats.stackexchange.com/questions/37405/natural-interpretation-for-lda-hyperparameters"
936
+ ]
937
+ },
938
+ {
939
+ "cell_type": "code",
940
+ "execution_count": null,
941
+ "id": "02877b81-32df-4168-8e62-4cbca2be100b",
942
+ "metadata": {
943
+ "tags": []
944
+ },
945
+ "outputs": [],
946
+ "source": [
947
+ "print(\"Topic range: \",num_topics)\n",
948
+ "print(\"Alpha: \",alpha)\n",
949
+ "print(\"Beta: \", beta)"
950
+ ]
951
+ },
952
+ {
953
+ "cell_type": "code",
954
+ "execution_count": null,
955
+ "id": "3c1f703c-4778-467f-a12e-0c18eeb274c5",
956
+ "metadata": {},
957
+ "outputs": [],
958
+ "source": [
959
+ "import datetime\n",
960
+ "import numpy as np\n",
961
+ "from gensim.models import CoherenceModel\n",
962
+ "\n",
963
+ "print(datetime.datetime.now())\n",
964
+ "\n",
965
+ "for a in alpha:\n",
966
+ " for b in beta:\n",
967
+ " for num in num_topics:\n",
968
+ " cv, pv = compute_coherence_values(corpus=docs_vecs, dictionary=doc_dict,k=num, a=a, b=b) \n",
969
+ "\n",
970
+ " model_topics.append(num) \n",
971
+ " coherence_values.append(cv) \n",
972
+ " perplexity_values.append(pv)\n",
973
+ " alpha_result.append(a)\n",
974
+ " beta_result.append(b)\n",
975
+ " print(\"#Topics: \" + str(num) + \", CV Score: \" + str(coherence_values[-1]) + \", PV Score: \" + str(perplexity_values[-1]) + \", Alpha: \" + str(alpha_result[-1]) + \", Beta: \" + str(beta_result[-1]))\n",
976
+ " \n",
977
+ "print(datetime.datetime.now())"
978
+ ]
979
+ },
980
+ {
981
+ "cell_type": "markdown",
982
+ "id": "364ff6d5-e3da-4dde-a2c8-5375fc5d711f",
983
+ "metadata": {},
984
+ "source": [
985
+ "The table below reveals the top 20 fine tuned models with best combinations of coherence score and perplexity score. It was sorted by the coherence score in descending order as a higher coherence score indicates a better model, and sorted the perplexity score in ascending order as a lower perplexity score indicates a better model. While coherence score evaluates the quality of the topics, the perplexity score evaluates the overall performance of the model in predicting new documents. Usually, the coherence score is a better metric to use if the goal is to obtain topics that are semantically coherent and interpretable. Perplexity score, on the other hand, is a better metric to use if the goal is to build a model that generalises well to new data, in other words, how confident the model is in predicting the new data (Sánchez-Aguayo, et al., 2022). Ultimately, we aim to get a balance between the perplexity value and coherence score when determining our final model."
986
+ ]
987
+ },
988
+ {
989
+ "cell_type": "code",
990
+ "execution_count": null,
991
+ "id": "78a60032-a4d7-44d4-841c-a1bd3740d5dd",
992
+ "metadata": {},
993
+ "outputs": [],
994
+ "source": [
995
+ "# Find the top 20 combinations based on Coherence Score and Perplexity Score\n",
996
+ "result = pd.DataFrame(\n",
997
+ " {'Topics': model_topics,\n",
998
+ " 'Coherence Score': coherence_values,\n",
999
+ " 'Perplexity Score': perplexity_values,\n",
1000
+ " 'Alpha': alpha_result,\n",
1001
+ " 'Beta': beta_result\n",
1002
+ " })\n",
1003
+ "result.sort_values(by=['Coherence Score', 'Perplexity Score'], ascending=[False, True]).head(20)"
1004
+ ]
1005
+ },
1006
+ {
1007
+ "cell_type": "code",
1008
+ "execution_count": null,
1009
+ "id": "3461df57-c069-4ad2-80d7-8890dec9438e",
1010
+ "metadata": {},
1011
+ "outputs": [],
1012
+ "source": [
1013
+ "result.to_csv('lda_fine_tuning_result.csv')"
1014
+ ]
1015
+ },
1016
+ {
1017
+ "cell_type": "code",
1018
+ "execution_count": null,
1019
+ "id": "800e5a4b-7302-42e8-97b0-5b598c1c80ae",
1020
+ "metadata": {
1021
+ "scrolled": true
1022
+ },
1023
+ "outputs": [],
1024
+ "source": [
1025
+ "# Show graph Topics vs Coherence Score\n",
1026
+ "result.groupby('Alpha').plot(x='Topics', y='Coherence Score', legend = True)"
1027
+ ]
1028
+ },
1029
+ {
1030
+ "cell_type": "code",
1031
+ "execution_count": null,
1032
+ "id": "26996b89-0e7a-4f2d-8cf7-c4a716569bc2",
1033
+ "metadata": {},
1034
+ "outputs": [],
1035
+ "source": [
1036
+ "# Show graph Topics vs Perplexity Score\n",
1037
+ "\n",
1038
+ "plt.plot(model_topics, coherence_values)\n",
1039
+ "plt.xlabel(\"Num Topics\")\n",
1040
+ "plt.ylabel(\"Coherence Score\")\n",
1041
+ "plt.legend((\"Coherence Score\"), loc='best')\n",
1042
+ "plt.show()"
1043
+ ]
1044
+ },
1045
+ {
1046
+ "cell_type": "code",
1047
+ "execution_count": null,
1048
+ "id": "91d2f4c1-de77-44b6-b41b-fcc9a07233e8",
1049
+ "metadata": {},
1050
+ "outputs": [],
1051
+ "source": [
1052
+ "# Show graph Topics vs Perplexity Score\n",
1053
+ "\n",
1054
+ "plt.plot(model_topics, perplexity_values)\n",
1055
+ "plt.xlabel(\"Num Topics\")\n",
1056
+ "plt.ylabel(\"Perplexity score\")\n",
1057
+ "plt.legend((\"perplexity_values\"), loc='best')\n",
1058
+ "plt.show()"
1059
+ ]
1060
+ },
1061
+ {
1062
+ "cell_type": "markdown",
1063
+ "id": "cdc3ddd2-f743-4e5b-b6c6-2656e0b77aec",
1064
+ "metadata": {},
1065
+ "source": [
1066
+ "## Final Model"
1067
+ ]
1068
+ },
1069
+ {
1070
+ "cell_type": "markdown",
1071
+ "id": "e86c2bfe-264b-4530-9d81-10b1cdc5071c",
1072
+ "metadata": {},
1073
+ "source": [
1074
+ "refer to the script topic_modelling_severe for detailed explanation"
1075
+ ]
1076
+ },
1077
+ {
1078
+ "cell_type": "code",
1079
+ "execution_count": null,
1080
+ "id": "490734ed-077c-4fb0-930c-0b42f4f63c94",
1081
+ "metadata": {},
1082
+ "outputs": [],
1083
+ "source": [
1084
+ "# realised that there may be some overlaps for 8 topics, thus 4-6 topics are optimal\n",
1085
+ "k = 2\n",
1086
+ "# a = 'asymmetric'\n",
1087
+ "a = 0.31\n",
1088
+ "# b = 0.31\n",
1089
+ "b = 'symmetric'\n",
1090
+ "\n",
1091
+ "\n",
1092
+ "final_model = gensim.models.LdaMulticore(corpus=docs_vecs,\n",
1093
+ " id2word=doc_dict,\n",
1094
+ " num_topics=k, \n",
1095
+ " random_state=42,\n",
1096
+ " chunksize=100,\n",
1097
+ " passes=10,\n",
1098
+ " alpha=a,\n",
1099
+ " eta=b)"
1100
+ ]
1101
+ },
1102
+ {
1103
+ "cell_type": "code",
1104
+ "execution_count": null,
1105
+ "id": "afe8abf0-2d12-414e-92be-a655865addb1",
1106
+ "metadata": {
1107
+ "tags": []
1108
+ },
1109
+ "outputs": [],
1110
+ "source": [
1111
+ "compute_coherence_values(corpus=docs_vecs, dictionary=doc_dict,k=k, a=a, b=b) "
1112
+ ]
1113
+ },
1114
+ {
1115
+ "cell_type": "code",
1116
+ "execution_count": null,
1117
+ "id": "8430a827-6dbb-4737-8ccc-78ed17a01234",
1118
+ "metadata": {
1119
+ "tags": []
1120
+ },
1121
+ "outputs": [],
1122
+ "source": [
1123
+ "#Set up the environment to display the graphical outputs\n",
1124
+ "# feed the LDA model into the pyLDAvis instance\n",
1125
+ "pyLDAvis.enable_notebook()\n",
1126
+ "visual= gensimvis.prepare(final_model, docs_vecs, doc_dict)\n",
1127
+ "\n",
1128
+ "#Save the output to the html file\n",
1129
+ "pyLDAvis.save_html(visual, \"topic_viz2_minor_training.html\")"
1130
+ ]
1131
+ },
1132
+ {
1133
+ "cell_type": "code",
1134
+ "execution_count": null,
1135
+ "id": "5e30d71a-a3c7-40c7-94c0-7eea1bedc887",
1136
+ "metadata": {
1137
+ "tags": []
1138
+ },
1139
+ "outputs": [],
1140
+ "source": [
1141
+ "final_model.print_topics(num_words=30)"
1142
+ ]
1143
+ },
1144
+ {
1145
+ "cell_type": "code",
1146
+ "execution_count": null,
1147
+ "id": "b958c148-5dbe-4896-bcba-85e0f78b2941",
1148
+ "metadata": {},
1149
+ "outputs": [],
1150
+ "source": [
1151
+ "break"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "cell_type": "code",
1156
+ "execution_count": null,
1157
+ "id": "1939c00d-12e4-4670-9f18-f287f8b86bef",
1158
+ "metadata": {},
1159
+ "outputs": [],
1160
+ "source": [
1161
+ "# Map the topic ID with appropriate topic names, this part should be updated accordinly whenever the model is updated\n",
1162
+ "topic_mapping = {0: \"finance\", 1: \"tech\", 2: \"education\", 3: \"sports\", 4: \"leisure\"}"
1163
+ ]
1164
+ },
1165
+ {
1166
+ "cell_type": "code",
1167
+ "execution_count": null,
1168
+ "id": "1a9a921e-3cdd-4fe5-a58f-7b50e5feeecd",
1169
+ "metadata": {},
1170
+ "outputs": [],
1171
+ "source": [
1172
+ "# Get the topics and their top keywords into a dataframe\n",
1173
+ "topics = final_model.show_topics(num_words=30) \n",
1174
+ "\n",
1175
+ "topic_keywords = pd.DataFrame()\n",
1176
+ "for topic_id, topic in topics:\n",
1177
+ " topic_keywords.at[topic_id, 'Topic Keywords'] = topic\n",
1178
+ "\n",
1179
+ "topic_keywords['Topic ID'] = topic_keywords.index\n",
1180
+ "topic_keywords['Topic Name'] = topic_mapping \n",
1181
+ "topic_keywords"
1182
+ ]
1183
+ },
1184
+ {
1185
+ "cell_type": "markdown",
1186
+ "id": "607d2cfd-b3ca-4f99-9e01-d320ca98a2a0",
1187
+ "metadata": {},
1188
+ "source": [
1189
+ "# Save the final model "
1190
+ ]
1191
+ },
1192
+ {
1193
+ "cell_type": "code",
1194
+ "execution_count": null,
1195
+ "id": "84eb2746-173a-4283-bca5-681f77548698",
1196
+ "metadata": {},
1197
+ "outputs": [],
1198
+ "source": [
1199
+ "#Save a model to disk, or reload a pre-trained model\n",
1200
+ "# naming convention: final_model_topic_alpha_eta\n",
1201
+ "final_model.save(\"final_model_5_asym_91\")"
1202
+ ]
1203
+ },
1204
+ {
1205
+ "cell_type": "markdown",
1206
+ "id": "a7b6e4d9-a577-4dfb-ba6e-fc74365880f4",
1207
+ "metadata": {},
1208
+ "source": [
1209
+ "# Find dominant topic(s) for each news article"
1210
+ ]
1211
+ },
1212
+ {
1213
+ "cell_type": "markdown",
1214
+ "id": "0eeecbcb-358c-44f9-8463-75cdfac0ba90",
1215
+ "metadata": {},
1216
+ "source": [
1217
+ "Attach the dominant topics back to the news dataset for classifying purpose."
1218
+ ]
1219
+ },
1220
+ {
1221
+ "cell_type": "markdown",
1222
+ "id": "8bebb269-dbb0-4c46-925c-38de0f2bcfd7",
1223
+ "metadata": {},
1224
+ "source": [
1225
+ "Made use of gensim lda's own function: https://radimrehurek.com/gensim/models/ldamodel.html"
1226
+ ]
1227
+ },
1228
+ {
1229
+ "cell_type": "code",
1230
+ "execution_count": null,
1231
+ "id": "f585ff52-b60d-4d70-ae64-a7c23d2cc6c1",
1232
+ "metadata": {},
1233
+ "outputs": [],
1234
+ "source": [
1235
+ "import warnings\n",
1236
+ "warnings.filterwarnings('ignore')\n",
1237
+ "\n",
1238
+ "def format_topics_sentences(ldamodel, corpus, data):\n",
1239
+ " # Preallocate memory for the DataFrame\n",
1240
+ " num_docs = len(corpus)\n",
1241
+ " sent_topics = {'Dominant_Topic': [0] * num_docs, 'Perc_Contribution': [0.0] * num_docs, 'Topic_Distribution': [()] * num_docs}\n",
1242
+ " \n",
1243
+ " # Get main topic in each document\n",
1244
+ " for i, row in enumerate(ldamodel[corpus]):\n",
1245
+ " row = sorted(row, key=lambda x: (x[1]), reverse=True)\n",
1246
+ " if row:\n",
1247
+ " # Get the Dominant topic, Perc Contribution and Keywords for each document\n",
1248
+ " dominant_topic, perc_contribution = row[0]\n",
1249
+ " topic_distribution = row\n",
1250
+ " sent_topics['Dominant_Topic'][i] = int(dominant_topic)\n",
1251
+ " sent_topics['Perc_Contribution'][i] = round(perc_contribution, 4)\n",
1252
+ " sent_topics['Topic_Distribution'][i] = topic_distribution\n",
1253
+ "\n",
1254
+ " # Create the DataFrame\n",
1255
+ " sent_topics_df = pd.DataFrame(sent_topics)\n",
1256
+ " sent_topics_df['Text'] = data\n",
1257
+ "\n",
1258
+ " return sent_topics_df"
1259
+ ]
1260
+ },
1261
+ {
1262
+ "cell_type": "code",
1263
+ "execution_count": null,
1264
+ "id": "24d3ff60-035e-4133-9ffd-88cce5cdccb1",
1265
+ "metadata": {},
1266
+ "outputs": [],
1267
+ "source": [
1268
+ "df_topic_sents_keywords = format_topics_sentences(ldamodel=final_model, corpus=docs_vecs, data=cleaned.Headline_Details)"
1269
+ ]
1270
+ },
1271
+ {
1272
+ "cell_type": "code",
1273
+ "execution_count": null,
1274
+ "id": "c88b088b",
1275
+ "metadata": {},
1276
+ "outputs": [],
1277
+ "source": [
1278
+ "# Format\n",
1279
+ "df_dominant_topic = df_topic_sents_keywords.reset_index()\n",
1280
+ "df_dominant_topic.columns = ['Document_No', 'Dominant_Topic', 'Topic_Perc_Contrib', 'Topic_Distribution', 'Text']\n",
1281
+ "\n",
1282
+ "# Show\n",
1283
+ "df_dominant_topic.head(10)"
1284
+ ]
1285
+ },
1286
+ {
1287
+ "cell_type": "markdown",
1288
+ "id": "560da382-aa86-4df1-8b85-56b057a27cd4",
1289
+ "metadata": {},
1290
+ "source": [
1291
+ "# Result Analysis"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "cell_type": "code",
1296
+ "execution_count": null,
1297
+ "id": "4fe6b40b-6922-4de3-8d9e-dac7474b6303",
1298
+ "metadata": {},
1299
+ "outputs": [],
1300
+ "source": [
1301
+ "df_dominant_topic[\"Dominant_Topic\"].value_counts()"
1302
+ ]
1303
+ },
1304
+ {
1305
+ "cell_type": "code",
1306
+ "execution_count": null,
1307
+ "id": "b9917340-31cf-48af-871f-b481128fdf22",
1308
+ "metadata": {},
1309
+ "outputs": [],
1310
+ "source": [
1311
+ "import matplotlib.pyplot as plt\n",
1312
+ "\n",
1313
+ "# Get value counts of each topic\n",
1314
+ "topic_counts = df_dominant_topic[\"Dominant_Topic\"].value_counts()\n",
1315
+ "\n",
1316
+ "# Create a bar plot\n",
1317
+ "plt.figure(figsize=(8, 6))\n",
1318
+ "topic_counts.plot(kind=\"bar\", color=\"skyblue\")\n",
1319
+ "\n",
1320
+ "# Add labels to the bars\n",
1321
+ "for i, count in enumerate(topic_counts):\n",
1322
+ " plt.text(i, count, str(count), ha=\"center\", va=\"bottom\")\n",
1323
+ "\n",
1324
+ "# Add labels and title\n",
1325
+ "plt.xlabel(\"Topics\")\n",
1326
+ "plt.ylabel(\"Number of News\")\n",
1327
+ "plt.title(\"Topic Distribution\")\n",
1328
+ "\n",
1329
+ "# Show the plot\n",
1330
+ "plt.xticks(rotation=45) # Rotate x-axis labels for better readability\n",
1331
+ "plt.tight_layout()\n",
1332
+ "plt.show()\n"
1333
+ ]
1334
+ },
1335
+ {
1336
+ "cell_type": "code",
1337
+ "execution_count": null,
1338
+ "id": "fffa1e57-f975-4469-a42b-19d76c60fb66",
1339
+ "metadata": {},
1340
+ "outputs": [],
1341
+ "source": [
1342
+ "df_dominant_topic.sort_values(by='Topic_Perc_Contrib', ascending=True).head(20)"
1343
+ ]
1344
+ },
1345
+ {
1346
+ "cell_type": "code",
1347
+ "execution_count": null,
1348
+ "id": "8510f506-141f-4382-b668-251df1afc95f",
1349
+ "metadata": {},
1350
+ "outputs": [],
1351
+ "source": [
1352
+ "# Sample 100 rows, can change the random_state for different samples\n",
1353
+ "sampled_data = df_dominant_topic.sample(n=100, random_state=42) \n",
1354
+ "sampled_df = pd.DataFrame(sampled_data).reset_index()\n",
1355
+ "sampled_df.to_csv('sample_minor.csv')"
1356
+ ]
1357
+ }
1358
+ ],
1359
+ "metadata": {
1360
+ "kernelspec": {
1361
+ "display_name": "Python 3",
1362
+ "language": "python",
1363
+ "name": "python3"
1364
+ },
1365
+ "language_info": {
1366
+ "codemirror_mode": {
1367
+ "name": "ipython",
1368
+ "version": 3
1369
+ },
1370
+ "file_extension": ".py",
1371
+ "mimetype": "text/x-python",
1372
+ "name": "python",
1373
+ "nbconvert_exporter": "python",
1374
+ "pygments_lexer": "ipython3",
1375
+ "version": "3.8.16"
1376
+ }
1377
+ },
1378
+ "nbformat": 4,
1379
+ "nbformat_minor": 5
1380
+ }
IS424_Data_Mining/code/LDA/topic_modelling_moderate.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/LDA/topic_modelling_severe.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/LLM Evaluation/cleaned_data.csv ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,Headline,Summary,Severity,Category,Region,Datetime,Year,lat,lon,URL
2
+ 3,Shanghai port congestion impacts terminals in Qingdao and Ningbo,"The persisting port congestion at Shanghai’s Yangshan deep-sea terminal is reportedly also impacting vessel arrival times at other major public terminals in China, including Qingdao and Ningbo. Industry sources indicated that this is due to some vessels being diverted from Shanghai as well as unstable weather and re-shuffling of alliances networks. Some carriers are reportedly planning contingency actions for the coming months, including consolidation of volumes and temporary reduction of port calls. No further details were initially provided.",Minor,Maritime Advisory,China,27/4/17 9:16,2017,29.52,121.3319,
3
+ 17,24 hour pier hold in effect at Port of Durban,"Industry sources indicate on August 31 that the Port of Durban’s Pier 1 is experiencing high traffic volumes resulting in road congestion on Bayhead Road, leading Transnet to urge transporters to hold back on dispatching export turns to the container terminal until 6AM on September 1. Extensions will be reviewed for open stacks. Those shipping from Durban should anticipate delays and should plan accordingly.",Minor,Maritime Advisory,South Africa,31/8/18 18:07,2018,-29.86875,31.03305,
4
+ 1599,Heavy congestion reported at Port of Houston,"According to sources on March 20, heavy congestion has been reported at Port of Houston due to fog.",Moderate,Maritime Advisory,United States,20/3/19 12:43,2019,29.60949,-95.00567,
5
+ 1600,Heavy congestion reported at Port of Long Beach,"According to sources on January 7, heavy congestion has been reported at Port of Long Beach with 9 vessels waiting for anchor. Reports suggest that the peak volume will be impacting from the terminals to the warehouses.",Severe,Maritime Advisory,United States,7/1/19 9:50,2019,33.75448,-118.21663,
6
+ 1613,High risk of pilot suspension reported at Port of Yokohama,"On December 31, shipping sources indicate that strong wind is anticipated at Port of Yokohama, Japan, from the afternoon of December 31 until the morning of January 1. The adverse weather conditions pose a high risk of a pilot suspension during the above mentioned period.",Minor,Maritime Advisory,Japan,31/12/19 10:23,2019,,,
7
+ 1614,High risk of port closure at Port of Busan on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Busan to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Maritime Advisory,Republic of Korea,23/4/19 12:13,2019,,,
8
+ 1615,High risk of port closure at Port of Busan on September 6-7 due to strong winds,Shipping sources on September 5 indicate that due to strong winds there is a high risk for the Port of Busan to be closed for 24 hours from the evening of September 6 to 7.,Moderate,Maritime Advisory,Republic of Korea,5/9/19 12:52,2019,35.06488,128.81854,
9
+ 1616,High risk of port closure at Port of Kwangyang on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Kwangyang to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Maritime Advisory,Republic of Korea,23/4/19 12:14,2019,34.90849,127.66822,
10
+ 1617,High risk of port closure at the Port of Houston due to fog,Shipping sources indicate on November 21 that there will be an elevated risk of port closures at the Port of Houston from November 22-24 due to fog. Customers should expect longer transit times through container terminals at the port and potential impacts on barge transportation on the Houston Ship Channel.,Moderate,Maritime Advisory,United States,21/11/19 16:26,2019,,,
11
+ 1618,High swells caused terminal closure at Port of San Antonio,"Sources on March 21 indicate that heavy swells at the Port of San Antonio have caused a terminal to be closed. At the time of writing, it remains unclear when operations will return to normalcy.",Moderate,Maritime Advisory,Chile,21/3/19 7:23,2019,,,
12
+ 1628,High winds disruption port operations in Southampton,"On April 27, high winds are disrupting shipside and landside operations at the DP World Southampton terminal since 09:00 local time. Drop-offs or pick-ups of containers are reportedly suspended for the time being.",Minor,Maritime Advisory,United Kingdom,27/4/19 15:46,2019,50.91,-1.46,
13
+ 1629,High winds impact maritime movements at Port of Dammam,"Shipping sources on April 22 indicated that high winds disrupted vessel movements in the Port of Dammam, Saudi Arabia, on April 22. Minor impacts should be expected on the berthing line up.",Minor,Maritime Advisory,Saudi Arabia,23/4/19 13:48,2019,26.49713,50.19945,
14
+ 1630,High winds impact port operations in Le Havre,"According to local sources, high winds have impeded port operations at container terminals in the Port of Le Havre since the early morning of March 12. In particular shipside operations have been suspended for several hours. Incoming and outgoing shipments are thus likely to be delayed throughout the day.",Minor,Maritime Advisory,France,12/3/19 15:59,2019,49.46477,0.14702,
15
+ 1636,Higher dwell times reported at Port of Long Beach due to labor shortages,"Shipping sources on April 29 reported that the Pier T container terminal has experienced higher than usual dwell times for containers due to labor shortages related to the Easter holidays, combined with high volume. Customers should be mindful of potential delays as backlog gets cleared.",Minor,Maritime Advisory,United States,30/4/19 15:57,2019,33.75292,-118.2096,
16
+ 1663,Houston ship channel fully reopens on April 25,"Industry sources reported that Houston ship channel reopened to full operations on April 25 following a fire at Intercontinental Terminal Co.’s Deer Park, Texas, terminal in late March. The temporary closure which lasted for several weeks disrupted several oil shipments. Houston ship channel is part of Port of Houston.",Minor,Maritime Advisory,United States,25/4/19 7:40,2019,29.60569,-94.95236,
17
+ 1687,Increased berthing times reported at Port of Busan,"Shipping sources indicated on January 31 that the Port of Busan, South Korea, currently experiences longer berthing times for incoming vessels. Waiting times of up to 0.5 day have been reported.",Minor,Maritime Advisory,Republic of Korea,31/1/19 11:35,2019,35.12051,129.05654,
18
+ 1688,Increased congestion elevates drayage costs at Port of New York/New Jersey,"Industry sources indicate on January 23 that increased inbound volumes due in part to Lunar New Year traffic combined with delays and congestions have complicated intermodal shipment at the Port of New York and New Jersey to the point that drayage costs are increasing. Ocean carriers and terminals are charging USD 100-250/day for container-related delays, and drayage carriers are charging USD 75/hr for terminal idling. Those shipping at the Port of New York and New Jersey should anticipate moderate delays and should plan accordingly.",Moderate,Maritime Advisory,United States,23/1/19 20:31,2019,40.69166,-74.14911,
19
+ 1706,Intermittent closures at Manila International Container Terminal for holidays,"Industry sources reported that Manila International Container Terminal has announced its port operation schedule for the upcoming Christmas and New Year holidays. According to its advisory, vessel and yard operations will continue its regular operations until 19.00 local time on December 24 and will resume at 19.00 on the next day. Normal operations will continue until December 31 when vessel and yard operations will stop at 19.00 local time and will resume again at 19.00 on the next day.",Minor,Maritime Advisory,Philippines,20/12/19 0:49,2019,,,
20
+ 1712,IT maintenance on Nov 6 may affect operations at Bharat Mumbai Container Terminals,"Shipping sources report on November 1 that IT maintenance activity will take place at Bharat Mumbai Container Terminals at Port of Nhava Sheva on November 6 from 01.00 to 07.00 (local time). During this time, complete network and E-form 13 and 11 applications will not be available. Other operation procedures and service delays can be expected as well.",Minor,Maritime Advisory,India,4/11/19 9:35,2019,18.93881,72.94084,
21
+ 1736,Lack of gangs may impede operations at Port of Barcelona,Shipping sources on August 19 indicate that lack of gangs due to summer holidays may impede port operations at Port of Barcelona.,Minor,Maritime Advisory,Spain,19/8/19 8:43,2019,41.35591,2.16674,
22
+ 1737,Lack of trucking resources affects productivity at Port of Balboa,Industry sources report on October 15 that productivity has declined at the Port of Balboa due to a lack of trucking resources. The current lineup of rail movement is at least until the year-end.,Moderate,Maritime Advisory,Panama,15/10/19 4:11,2019,8.95763,-79.5614,
23
+ 2099,Port of Ulsan bans variety of hazardous cargo following major chemical tanker explosion,"Media sources indicate on October 7 that the Port of Ulsan has banned a variety of hazardous cargoes from terminals near a bridge where a major chemical tanker Stolt Groenland was caught in an explosion that occurred on September 30. The fire injured eighteen people and led to an overhead bridge, which serves as a thoroughfare for the city, to be closed for two days due to safety checks.",Moderate,Port Closure,Republic of Korea,7/10/19 10:12,2019,35.45647,129.36626,
24
+ 2100,Port of Valencia - The port has been reopened to maritime traffic. Incident closed.,The Port of Valencia has been reopened to maritime traffic following a closure due to poor weather conditions. This incident is closed.,Moderate,Port Closure,Spain,20/4/19 7:09,2019,39.44809,-0.31693,
25
+ 2101,Port of Valencia - The port was temporarily closed due to high winds in the area. Incident closed.,Media sources reported that the Port of Valencia was temporarily closed due to high winds in the area. There were no reports of major disruptions. This incident is closed.,Minor,Port Closure,Spain,20/12/19 11:08,2019,39.44809,-0.31693,
26
+ 2102,Port of Valencia temporarily closes due to high winds,Spanish media sources report on December 20 that the Port of Valencia has been temporarily closed due to high winds in the area. It was not immediately disclosed when the port was expected to reopen.,Moderate,Port Closure,Spain,20/12/19 11:25,2019,,,
27
+ 2103,Port of Yokohama closed due to strong winds,Shipping sources indicate on February 4 that the Port of Yokohama was expected to be closed for 12 hours on February 4 due to strong winds. Customers should expect berthing delays as pilot services may be suspended.,Minor,Port Closure,Japan,4/2/19 17:12,2019,35.44849,139.67131,
28
+ 2104,Port of Yokohama closed due to strong winds,Shipping sources indicated on January 30 that the Port of Yokohama was closed from January 28 to January 29 due to strong winds. Customers should expect berthing delays as well rescheduled departure times for vessels.,Moderate,Port Closure,Japan,30/1/19 15:56,2019,35.44849,139.67131,
29
+ 2105,Port of Yokohama likely to close due to approaching Typhoon Neoguri,"On October 21, shipping sources indicate that Port of Yokohama will likely suspend its operations from October 22 - 23. Approaching Typhoon Neogure will bring strong winds and likely to cause port closure. Increased berthing times and shipping delays are likely to occur in the following days.",Minor,Port Closure,Japan,21/10/19 12:08,2019,,,
30
+ 2106,Port operations resume following temporary suspension at DP World Southampton,Sources indicated that land and shipside operations have resumed following suspension of services from 08:45 to 14:15 (local time) on April 13 due to high winds at DP World Southampton terminal. Customers are advised to expect berthing and unloading delays for shipments scheduled on April 13 and 14.,Minor,Port Closure,United Kingdom,15/4/19 7:44,2019,,,
31
+ 2110,Port Said closed due to bad weather,"Shipping sources indicate that Port Said has been temporarily closed on February 25 due to adverse weather. The port is likely to restart operations on Tuesday, February 26.",Moderate,Port Closure,Egypt,25/2/19 9:13,2019,31.24254,32.30148,
32
+ 2118,Ports of Savannah and Brunswick - Both ports have resumed normal operations. Incident closed.,The Port of Savannah and the Port of Brunswick have reopened with normal operations following the passage of Hurricane Dorian. This incident is closed.,Moderate,Port Closure,United States,4/9/19 16:27,2019,32.1232,-81.13941,
33
+ 2127,Power shutdown scheduled for May 1 at Jawaharlal Nehru Port,"According to industry source, APMT, Mumbai has announced that as part of the annual power shutdown as announced by JNPT towards undertaking allied maintenance activities, the terminal shall have limited operations between 0800 Hours and 1700 Hours on May 1, 2019. Terminal operations on the Quayside and Rail siding shall be impacted due to the above activities, however, the terminal Gate and Yard operations shall continue as per normal.",Minor,Port Closure,India,25/4/19 20:48,2019,18.95112,72.95023,
34
+ 2145,Rail yard congestion still affecting Port of Montreal,Industry sources on April 23 indicate that rail yard congestion issues are still affecting containers flowing through the Port of Montreal. This is reportedly due to exceeded terminal capacities. Shipping companies were said to be working with CN rail and MGT terminal to finalize operational plans to handle reefers in the off-dock CN ramp. The transition is set to take place on May 25. Customers should expect longer shipping times for on-shipments via rail in Montreal.,Moderate,Port Closure,Canada,24/4/19 16:14,2019,,,
35
+ 2153,Repair works at Port of Colombo may cause berthing delays,"Local sources on March 5 indicate that a terminal at the Port of Colombo will carry out repairs on 4 gantry cranes in the next 12 to 14 weeks. As a result, carriers can expert berthing delays with an average waiting time of 24-hours and above.",Moderate,Port Closure,Sri Lanka,5/3/19 8:21,2019,6.94071,79.84632,
36
+ 2186,Second berth opens at Batangas Port,"Media sources reported that a second berth was inaugurated at Batangas Container Terminal in Santa Clara, Batangas City on April 29, 2019 with the hopes of increasing the harbor’s capacity for mooring vessels. Reports suggested that the new berth is a 250-meter extension of the first berth. Together with both berths, the port now has a total of 600 meters of berth capable of handling over 450,000 twenty-footer containers annually as the first berth was only able to accommodate 300,000 20-footer containers in a year.",Minor,Port Closure,Philippines,7/5/19 3:07,2019,13.75435,121.04334,
37
+ 2191,Severe congestion persists at Aomi container terminal in the Port of Tokyo - UPDATE 1,"Intelligence obtained by Everstream Analytics on August 16 confirms that circumstances driving congestion at Aomi terminal in the Port of Tokyo persist as of August 16. Sources continue to indicate that truckers continue to face waiting times to pick-up and deliver containers of more than 8 hours at the Aomi Terminal. Due to the congestion at the terminal, regardless of the availability of berth, vessels often need to wait on the water in the bay until terminals are ready to unload containers or entirely omit the port call. Alternative options include using ocean carries that call at other terminals such as Ohio and Shinagawa terminals in the Port of Tokyo or use entirely different ports such as the Port of Yokohama.",Severe,Port Closure,Japan,16/7/19 15:27,2019,35.61326,139.78239,
38
+ 2192,Severe congestion reported at Port of Savannah,"Industry sources on February 26 that following last weekend’s closure of the Port of Savannah, average waiting times of 2-4 days are currently reported for incoming vessels. Currently, there are 14 vessels at anchorage, with further delays likely throughout the week.",Severe,Port Closure,United States,26/2/19 15:09,2019,32.12258,-81.13851,
39
+ 2204,Severe winds causes temporary closure of Dammam Port,Industry sources reported that vessels’ movements for docking and undocking at Dammam Port have been suspended since 21:45 (local time) on March 24 due to severe winds. The duration of the closure remains unclear at this time.,Severe,Port Closure,Saudi Arabia,26/3/19 1:56,2019,26.49713,50.19945,
40
+ 2205,Severe winds disrupt operations at Port of London,"Shipping sources on March 10 indicated that severe winds have impeded operations at container terminals in the Port of London, including DP World London Gateway since March 10. Disruption was expected to persist until the early morning of March 11.",Moderate,Port Closure,United Kingdom,11/3/19 10:25,2019,51.50715,0.46296,
41
+ 2216,Sharm al-Sheikh port closed due to heavy winds and high waves,"Media sources indicated that the Red Sea Port Authority closed the Sharm al-Sheikh port and the Alexandria Port Authority closed the ports of Alexandria and Dekheila on March 30 due to poor weather conditions. The Alexandria and Dekheila ports were shut down due to high waves and wind speed, although loading and unloading of vessels and movement of goods to and from the ports is still continuing. The Sharm al-Sheik port was closed following wind speeds between 22 and 28 knots and waves between 3 and 4 meters high.",Moderate,Port Closure,Egypt,1/4/19 2:23,2019,27.85673,34.28837,
42
+ 2217,Shinagawa container terminal to be closed during golden week,"Local sources indicate that from April 30 to May 6, the Tokyo Aomi and Shinagawa container terminals will be closed due to golden week public holiday period. Customers with shipments to the two terminals are advised to cooperate with shipping agents for blank sailings ahead of schedule.",Moderate,Port Closure,Japan,15/3/19 2:37,2019,35.60732,139.76355,
43
+ 2219,Shipco Transport to fine shippers for misdeclared hazardous cargoes,"Industry sources indicate on August 22 that Chatham, NJ-based Shipco Transport announced its intent to implement a penalty of USD 5,000-35,000 (EUR 4,500-31,750) per container for misdeclared or undeclared hazardous cargoes, with a definitive fine quantity unknown as of reporting, and it is unknown when this penalty will come into effect. Shipco will hold the customer on record liable and responsible for costs and consequences related to violations, fines, damages, incidents, claims and corrective measures resulting from cases of shipment of such cargo. The move is similar to that implemented by other cargo shipping lines in the aftermath of the Yantian Express fire.",Minor,Port Closure,United States,22/8/19 17:38,2019,40.7392,-74.37718,
44
+ 2225,Singapore arrests eleven men for illegal marine gas oil transaction,Media sources indicated on November 4 that the Maritime and Port Authority of Singapore has arrested eleven men for their suspected involvement in an illegal transaction of marine gas oil at sea off Northern Tuas. The eleven men include six crew members of a craft of a marine service provider and another five of a foreign-registered tugboat. Preliminary reports cited that the crewmembers were thought to have misappropriated the marine gas oil and sold it to crew members of the tugboats.,Moderate,Port Closure,Singapore,6/11/19 1:37,2019,,,
45
+ 2802,UPDATE: Delays decrease to 12-24 hours at Port of Colombo,"Industry sources indicate on September 17 that some vessels at the South Asia Gateway Terminals (SAGT Terminal) at the Port of Colombo, Sri Lanka, are currently facing delays that have now reduced to 12-24 hours due to internal labour issues.",Moderate,Port Congestion,Sri Lanka,5/9/19 12:18,2019,,,
46
+ 2805,UPDATE: Dense fog causes closure of Port of Shanghai,"According to sources on March 13, the Port of Shanghai is currently closed due to dense fog. Hence, vessels’ waiting time is around 1 to 1.5 days. Moreover, low visibility is likely to affect the port from 22:00 (local time) from March 13 until 16:00 of the next day. There is a moderate to high chance that the port may closed again.",Severe,Port Congestion,China,11/3/19 7:13,2019,31.31882,121.66033,
47
+ 2806,UPDATE: Dense fog disrupts Port of Shanghai,"Sources on April 26 indicate the Port of Shanghai was temporarily closed due to dense fog from 17:30 (local time) on April 24 to 17:00 of the next day. As a result, an average waiting time for vessels is currently around 1 to 2 days.",Minor,Port Congestion,China,24/4/19 6:31,2019,,,
48
+ 2812,UPDATE: Dwelling time around 24-hours at Port of Ningbo,"Local sources on January 4 indicate that an average waiting time at the Port of Ningbo is around 24-hours. As of now, the dwelling time is likely to remain the same until January 5. The port is facing congestion clearing of backlogs from the recent port closure. Furthermore, inbound pilot services at Xiaozhimen channel has been suspended on the afternoon of January 3 for about 2-hours due to congestion caused by fishing vessels.",Minor,Port Congestion,China,2/1/19 8:52,2019,29.95168,121.72285,
49
+ 2813,UPDATE: Dwelling time decreases to 0.5 day,"Local sources on March 6 indicate that an average waiting time at the Port of Shanghai has reduced to 0.5 day and the situation is likely to remain the same for the next 2-days. Due to poor visibility, pilot services were suspended for both north and south channel since the evening of March 5.",Moderate,Port Congestion,China,5/3/19 7:24,2019,31.31927,121.66068,
50
+ 2814,UPDATE: Fishing boats congestion impacts pilot services at Port of Ningbo,Updated sources on August 20 indicate that outbound pilot services through Xiazhimen channel will be suspended on August 20 midnight due to fishing boats congestion.,Minor,Port Congestion,China,19/8/19 8:00,2019,,,
51
+ 2815,"UPDATE: Fog causing congestion in Houston, affecting ocean shipments","Updated sources report fog has delayed vessel traffic through the Houston Ship Channel every day in the past week, delaying shipments of cargo and container ships. Waiting times for berths have thus increased as the channel has been shut intermittently for a total of 133 hours in the past two weeks. The channel was reportedly open as of 17:30 local time on March 13. The delays this week caused US phenol and acetone producer AdvanSix to declare a force majeure on phenol at its plant in Frankford, Pennsylvania earlier this week. Fog in Houston is particularly bad in the October-March period as warmer, humid Gulf air collides with cooler onshore air.",Severe,Port Congestion,United States,11/3/19 7:48,2019,29.68234,-94.99355,
52
+ 2819,UPDATE: Heavy congestion continues at Port of Houston,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Houston due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,United States,5/3/19 7:43,2019,29.6823,-94.99355,
53
+ 2820,UPDATE: Heavy congestion continues at Port of Savannah,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Savannah due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,United States,5/3/19 7:40,2019,32.12169,-81.13986,
54
+ 2823,UPDATE: High winds likely to disrupt Port of Algeciras,"According to sources on March 22, severe winds at the Port of Algeciras are likely to disrupt the port’s operation for the day.",Moderate,Port Congestion,Spain,20/3/19 13:11,2019,,,
55
+ 2824,UPDATE: High winds still causing port disruption at container terminals in Jeddah,"Industry sources on April 23 indicate that high winds continue to impact maritime movements in the Port of Jeddah, Saudi Arabia, since April 20. The situation is expected to last until April 23, and likely to cause congestion at container terminals in the port.",Moderate,Port Congestion,Saudi Arabia,18/4/19 13:31,2019,21.4625,39.16,
56
+ 2827,UPDATE: Inbound pilotage suspended due to strong winds; 0.5 days of waiting times reported,Sources indicate that strong winds have led to the suspension of inbound pilot services at the Port of Shanghai on January 25. The risk of the port’s closure is high. Current berthing times for vessels are 0.5 days.,Moderate,Port Congestion,China,22/1/19 10:08,2019,31.3201,121.65733,
57
+ 2831,UPDATE: Intermittent port closures reported at Port of Xiamen,"According to local sources on April 10, Port of Xiamen was closed from the midnight of April 9 to noon. Previously the port was closed on April 7 until the morning due to dense fog. An average waiting for vessels to berth at the port is likely to be around 0.5 to 1 day at the moment.",Minor,Port Congestion,China,10/4/19 2:16,2019,,,
58
+ 2842,UPDATE: No more congestion reported at Port of Hong Kong,"According to local sources on April 17, average waiting times for vessels to berth at the Port of Hong Kong were still around 1 day on April 16 but have decreased on April 17. No further delays are to be expected for the time being.",Minor,Port Congestion,Hong Kong,15/4/19 12:38,2019,,,
59
+ 2849,UPDATE: Operations at Port of Shanghai affected due to Typhoon Mitag,"Shipping sources on October 2 indicate that port operations at the Port of Shanghai were affected due to Typhoon Mitag. A vessel evacuation plan has been in place since 10:00 local time on October 1. According to sources, pilot operations are expected to resume by 17:00 local time on October 2. Customers are advised to expect delays and congestion following the re-opening of the port.",Moderate,Port Congestion,China,30/9/19 11:38,2019,,,
60
+ 2850,UPDATE: Operations resume at DP World Southampton terminal,"Updated industry sources indicate that shipside and landside operations at the DP World Southampton terminal have resumed after being suspended since 05:00 local time on September 10 due to fog. Landside operations resumed at 05:30, while shipside operations resumed at 07:30. VBS bookings will be slowly released into the system once the trucks currently waiting in line have been served.",Severe,Port Congestion,United Kingdom,10/9/19 5:37,2019,50.91186,-1.45732,
61
+ 2854,UPDATE: Operations resume at Port of Southampton following suspension due to fog,"Shipping sources indicate that on February 22 that landside and shipside operations have resumed at 08:00 local time after a 9-hour suspension due to fog at container terminals in the Port of Southampton, United Kingdom.",Minor,Port Congestion,United Kingdom,22/2/19 9:06,2019,,,
62
+ 2869,UPDATE: Port of Busan reopens after temporary closure,Updated sources indicate on October 4 that the Port of Busan has opened after a brief closure on October 2 during the passage of Typhoon Mitag.,Moderate,Port Congestion,Republic of Korea,30/9/19 11:41,2019,,,
63
+ 2870,UPDATE: Port of Charleston is open for business following Hurricane Dorian's passage,Updated media sources indicate on September 6 that the Port of Charleston is open for business as of September 6 with normal hours on September 7-8 gate hours. The Coast Guard Captain of the Port previously placed Port Condition Zulu for Charleston terminal due to the anticipated arrival of sustained gale force winds from Hurricane Dorian within 12 hours.,Severe,Port Congestion,United States,3/9/19 5:28,2019,32.90473,-79.96455,
64
+ 2871,UPDATE: Port of Chittagong reopens following former cyclone passage,"Sources indicate that the Port of Chittagong has reopened on the afternoon of May 4 following a 30-hour suspension following the passage of former Cyclone Fani last week. Normal cargo and containers handling started around 17:00 (local time). Heavy congestion can be expected as the backlogs from the previous days are likely to be given priority. Furthermore, as the holy week of Ramadan commences on May 5 until June 4, working operating hours are likely to be shifted. Customers with shipments to the port can expect vessels’ berthing time to be more than 24-hours at this time.",Moderate,Port Congestion,Bangladesh,2/5/19 8:49,2019,,,
65
+ 2872,UPDATE: Port of Colombo faces berthing delays,"Sources on March 11 indicate that the Port of Colombo is facing berthing delays due to unspecified reasons. An average waiting time for the vessels is likely to be around 1 to 2 days. In addition, congestion is likely to be exacerbated by repair works on 4 gantry cranes which will start March 18 and last for two weeks. Out-of-window arrivals will likely face extended berthing times.",Moderate,Port Congestion,Sri Lanka,11/3/19 7:51,2019,6.94047,79.8464,
66
+ 1591,Greenpeace Protest on Hartman Bridge on Thursday Temporarily Closed Portion of Houston Ship Channel,"On Thursday, September 12, 23 protesters associated with Greenpeace demonstrated along the Fred Hartman Bridge in Baytown, TX just outside of Houston. The protest began around 6:30 AM local time and included 11 of the protesters rappelling down the bridge to disrupt shipping traffic in the Houston Ship Channel. While the bridge stayed open during the protest to vehicular traffic, a half-mile portion of the ship channel was closed between Light 102A and Light 104 until reopening early Friday morning after protesters were arrested. The protest remained peaceful; however, the initial blocking of the bridge led to a minor motor vehicle accident which injured one person.
67
+
68
+ Assessment: The Greenpeace activists stated that their goal of the protest was to attempt to disrupt the oil and gas shipments that go through the Houston Ship Channel. The group timed their protest to attempt to get the attention of Democratic presidential candidates who were in Houston Thursday for a Democrat National Committee presidential debate. The Houston Ship Channel and Port of Houston are vital to U.S. oil and gas exports and the ship channel is the busiest in the country annually generating approximately $339 billion and providing over 1.35 million jobs to the state of Texas. The portion of the ship channel that was closed on Thursday normally sees approximately 300 vessels pass through, and according to media sources, at least seven were blocked during the temporary closure. The protest did not cause any significant disruptions to shipping interests, as many companies often build in an extra day to shipping schedules as a precaution.
69
+
70
+ An uptick in climate change-related protests has been seen in recent months, especially across Europe. The majority of protests are organized by groups such as Greenpeace or Extinction Rebellion and have been relatively peaceful, although some have been disruptive with protesters blocking bridges, and trains, similar to the Greenpeace protesters temporarily shutting down the Houston Ship Channel on Thursday. Additionally, a weeklong series of protests are being planned across the world beginning Friday, September 20 as part of a global climate strike action. The relative ease with which the Greenpeace protesters in Baytown were able to shut down a portion of the Houston Ship Channel using a small group of people and the increased focus on climate-related protests highlight the possibility of an increase in similar protests across the United States. As such, Resilience360 customers with cargo interests should anticipate the possibility of disruptions to supply chains due to climate-related protests.",Moderate,Miscellaneous Events,United States,13/9/19 21:29,2019,29.71163,-95.00479,
71
+ 1661,Houston Ship Channel - Channel has partially reopened to ship traffic. Incident closed.,"Channel traffic has partially reopened from Tucker Bayou to Houston Ship Channel Light 116, as cleanup efforts continue related to pollutant runoff from the ITC facility fire. The runoff has been exacerbated by the partial collapse of a dike wall that took place on Friday, March 22 near the ITC facility. The dike wall has since been repaired. Updated sources indicate that the waterway may be reopened on Monday, March 25. Authorities are conducting cleanup operations and there appears to be no active health hazard. Ships are being able to traverse the channel if they have less than a 34-foot draft. All vessels are required to be inspected for chemical contaminates and are being spaced at approximately one-hour intervals. This incident is closed.",Moderate,Miscellaneous Events,United States,22/3/19 19:30,2019,29.74453,-95.10194,
72
+ 1662,Houston Ship Channel - Ship channel has been reopened after protesters detained. Incident closed.,"The U.S. Coast Guard has reopened part of the Houston Ship Channel near Baytown. The closure was the result of Greenpeace protesters on the Fred Hartman Bridge, who have since been detained. This incident is closed.",Moderate,Miscellaneous Events,United States,12/9/19 14:41,2019,29.70263,-95.01394,
73
+ 1667,Hurricane Dorian Expected to Make Landfall on Florida Coast as Cat 3 Storm Over Labor Day Weekend,"Hurricane Dorian continues to move through the Atlantic Ocean as it passes Puerto Rico and heads toward the eastern Florida coast. The storm is expected to strengthen over the next days and is forecast to make landfall as a major Category 3 storm, on the Saffir-Simpson Hurricane Wind Scale, late Sunday night or early Monday morning. Significant uncertainty remains on the path of Dorian; however, as of Wednesday afternoon the projected path has the storm making landfall near Orlando, FL and the Florida Space Coast. Portions of Florida and other parts of the southeastern coast are expected to receive between four to eight inches of rain with some areas receiving upwards of ten inches. Tropical-storm-force winds will reach the Florida coast by Saturday. Governor Ron DeSantis has issued a state of emergency for the state of Florida in anticipation of the storm.
74
+
75
+ Assessment: The state of emergency declaration allows for preemptive planning coordination of resources across Florida to help with preparation and eventual recovery efforts. Governor DeSantis has also urged Florida residents to have seven days of supplies and an emergency plan in case of disaster as the hurricane continues to near the state. While the path of the storm remains uncertain, Dorian making landfall as a Category 3 storm will likely cause significant disruptions across Florida. These may include evacuations, widespread power outages, road closures, and life-threatening flooding conditions. The U.S. Coast Guard has set a number of Florida ports at port condition Whiskey including Key West, Miami, Port Canaveral, Tampa, St Petersburg, and Manatee. Port condition Whiskey means that ports remain open to all commercial and cargo operations; however, commercial vessels greater than 500 gross tons should begin making plans to depart the port. It is likely as the storm nears that a number of these ports will close due to the anticipated high winds.
76
+
77
+ Travelers should also anticipate air travel delays across the Southeast, especially for Florida airports as well as Hartsfield-Jackson Atlanta International Airport (ATL), a major hub for both domestic and international flights. Additionally, several projections have the storm either moving across Florida into the Gulf of Mexico, potentially creating disruptions for the Gulf Coast or have the storm moving up the southeast coast where disruptions would occur in Georgia, South Carolina, and North Carolina. Resilience360 customers are advised to heed all local weather warnings and evacuation notices. Customers with interests in Florida, the Southeast, and the Gulf Coast should continue monitoring the progress of Hurricane Dorian.",Severe,Miscellaneous Events,United States,28/8/19 22:44,2019,28.53823,-81.37739,
78
+ 1670,Hyundai Heavy Industries Workers Vote to Strike over Daewoo Acquisition; Date Unspecified,"On Thursday, it was reported that workers at Hyundai Heavy Industries (HHI) voted to approve a strike against the acquisition of Daewoo Shipbuilding. Workers from Daewoo Shipbuilding and Marine Engineering (DSME) also voted to approve a strike earlier in the week. Nearly 60 percent of HHI workers voted in favor of the strike, along with 90 percent of DSME workers. A date for the strikes have not been set.
79
+
80
+
81
+ Assessment: HHI signed a conditional agreement last month to acquire DSME from the government, with a formal agreement expected in March. The two shipbuilders cover around 20 percent of the global shipbuilding market share. The unrest among workers in South Korea s shipbuilding sector are tied to mounting financial pressures caused by a decrease in global demand for new vessels and increased competition from Chinese shipbuilders. A coordinated strike between HHI and DSME workers would cause significant disruptions in the shipbuilding industry. Resilience360 customers with interests in the sector are advised to monitor reports regarding a specific date for a strike. Workers may also decide to hold protests or marches, which should be avoided due to the potential for clashes with police. Protests would likely be held in Ulsan or on Geoje Island, where the HHI and DSME are headquartered, respectively.",Moderate,Miscellaneous Events,Republic of Korea,21/2/19 22:22,2019,,,
82
+ 1672,IED Detonated Near Police in Hong Kong; Could Represent Escalation If It Becomes a Regular Tactic,"On Sunday, an explosion was reported near the intersection of Nathan Rd and Fife St in the Mong Kok area of Kowloon. The incident took place near a parked police vehicle after police officers had disembarked and were clearing roadblocks following another evening of violent protests across Hong Kong that resulted in over 200 arrests. The explosive was reportedly detonated remotely by a cell phone and was placed in a flower pot around six feet from the police van. No injuries were reported, although police said that the device was meant to injure or kill officers. Police have said that the intensity of the explosion was relatively low and was likely comprised of homemade materials.
83
+
84
+ Assessment: The use of an IED by protesters was not completely unexpected, as police carried out two raids on warehouses in July and August where explosive materials were found and suspects from pro-independence groups were arrested. The raid on the Lung Shing Factory Building in Tusen Wan in July found two pounds of the chemical triacetone triperoxide (TATP), which is a powerful explosive that can be made from common household ingredients, along with incendiary devices, acids, and sharp weapons. The raid on an industrial building in Fo Tan in August found over 30 smoke bombs and a significant amount of cash. If the use of explosives becomes a regular tactic by the protesters, it will seriously deteriorate the security situation in Hong Kong, particularly if they result in any casualties. The use of a cell phone as a remote detonator could also give police justification to suspend mobile phone services in certain areas when protests are taking place. Resilience360 customers are advised to continue to avoid all areas where protests are occurring and should be aware of the risk of restrictions on telecommunications services.",Severe,Miscellaneous Events,China,14/10/19 18:01,2019,,,
85
+ 1685,"Incheon and Changwon Production losses of 20,000 vehicles due to strike. Incident closed.","Media sources indicate that partial and general strikes had resulted in a production loss of 20,000 vehicles. The GM Korea union announced plans to continue the strike at GM facilities in Incheon and Changwon after the Chuseok holiday, although there were no initial reports that the strike resumed. Over 10,000 General Motors (GM) Korea workers were participating in the action. Workers held a full-scale walkout on September 9, 10, and 11. Media sources indicated workers also held an overtime ban during the Chuseok holiday, which was observed Thursday, September 12 to Saturday, September 14. GM Korea workers held two four-hour partial strikes on Friday, August 30, at their facilities in Incheon and Changwon, as well as a two-day partial strike on Tuesday, August 20 and Wednesday, August 21. The labor action was organized to protest wages. This incident is closed.",Moderate,Miscellaneous Events,Republic of Korea,20/8/19 9:58,2019,37.51119,126.7095,
86
+ 1733,Kocaeli and Tarsus - Izocam workers have called off the strikes. Incident closed.,"Izocam workers have called off the strikes at two factories across Turkey. The strikes were originally called in the factory in Kocaeli, near Kiplasma Cd and Refik Baydur Cd, and in a factory at an unspecified location in Tarsus, in Mersin Province. This incident is closed.",Minor,Miscellaneous Events,Turkey,16/1/19 23:33,2019,40.82164,29.55738,
87
+ 1775,Major Raids Target Opposition After Local Elections Inflict Losses to United Russia s Control,"On Thursday, authorities raided over 200 sites across more than 40 cities in Russia. The operation was targeting opposition activists and entities and has been denounced as a political crackdown in retaliation for President Vladimir Putin s party suffering losses in last Sunday s local elections. While the Kremlin maintains a strong grip across Russia, opponent Alexey Navalny s smart voting plan is believed to have contributed to the erosion of United Russia s control of local office seats. Combined with sustained summer protests and increasing discontent with the status quo, the Kremlin will likely take further measures trying to thwart growth and unification of opposing forces, though activists continue to show resilience to such efforts. As well as possible protests over the crackdown and disputed election results, demonstrations over an array of other grievances may be met by crackdowns and other efforts by authorities to quash expressions of opposition and discontent.
88
+
89
+ Recent Developments
90
+
91
+ From early Thursday morning, police carried out raids in 43 cities across the country in a sweeping crackdown on opposition politicians and their supporters. The raids happened four days after local elections around Russia, which saw President Vladimir Putin s United Russia party take serious hits. During the operation Thursday, offices of opposition leader Alexey Navalny s Anti-Corruption Foundation (FBK) had equipment seized as part of an investigation launched in August for alleged money laundering, with homes searched as well. According to the FBK chief of staff, both employees and volunteers with the foundation had equipment, documents, mobile phones, and funds seized by authorities. As a result of a raid in Chelyabinsk, multiple staff at the targeted office received medical treatment on site but were not hospitalized. During searches of FBK offices in Saransk, an activist was struck and injured by a police vehicle. Election monitoring non-governmental organization Golos also reported raids Thursday targeting the homes of its activists. More than 1,000 officers were involved in the raids, and Navalny claimed more than 200 locations were searched.
92
+
93
+ The highest-profile battle over local elections occurred in Moscow, with election officials preventing or disqualifying an array of candidates for local posts, sparking sustained protests frequently marred by clashes and heavy crackdowns. However, Navalny advocated a system of smart voting intended to encourage people to vote for the candidate in each race considered most likely to beat United Russia or other Kremlin-backed candidates. United Russia lost more than a third of the Moscow city council seats it had previously held, with the result largely attributed to tactical voting. In addition to reported voting irregularities on Sunday, there were reports of violence and other forms of intimidation linked to the elections. A poll monitor at a station in St Petersburg who had filed a formal complaint over a voter registration matter was punched by a man who then left, while police on scene made no effort to respond. Another observer had been punched in the face several times heading into the same polling station that morning.
94
+
95
+ Election results have spurred additional protest activity in some locations around Russia, including sustained protests in Siberia s Buryatia region. At least 17 activists have been detained by authorities in Ulan-Ude while disputing the mayoral election results for the regional capital. Police contended the activists had thrown a tear gas canister at officers, while media outlets have reported police threw the tear gas canister inside a bus of activists. Potentially as an effort to defuse tensions, a rally has been authorized by Ulan-Ude officials for Sunday evening, though unauthorized protests remain possible.
96
+
97
+ Background
98
+
99
+ The refusal to register an array of opposition candidates for Moscow s local elections sparked some of the largest sustained protests in Russia in recent years. The largest demonstration drew about 60,000 participants, while thousands frequently turned out to protests in the run-up to elections, even despite major crackdowns on unauthorized gatherings. More than 2,000 people were detained during election-related protests over the summer, with some facing brief jail terms while others facing charges of mass unrest could receive lengthy jail sentences. Controversy over several issues, including pension reform, poverty and other economic concerns, as well as topics such as wildfires and waste management continue to drive discontent with the ruling powers in the country. Overt and aggressive crackdowns on protests, censorship and internet restrictions, and blatant election rigging continue to be sources of potential protest activity over perceived injustices.Assessment
100
+
101
+ Navalny supporters contend that the raids and money laundering allegations are being used to strike back at opponents of Putin and the ruling elite, particularly targeting those who backed smart voting tactics, protests, and other measures to combat Putin and United Russia s grasp on power around the country. The smart voting tactics have been invoked in other elections around the world, and could be used in future Russian elections. The method of concentrating votes with any single opposing candidate to defeat a Kremlin-supported candidate could remain more challenging to thwart. While United Russia secured victory in many regional elections, the party had substantial losses in local elections around the country.
102
+
103
+ Despite the ousting of an array of Kremlin-backed candidates with the tactic of smart voting, Communists and candidates from other smaller parties who were the primary victors from such methods generally remain at least somewhat influenced by the Kremlin. Nonetheless, in Moscow, no candidate from United Russia was on the ballot, with candidates previously with the party or otherwise pro-Kremlin opting to run as independent due to perceived discontent in the capital with the ruling party. Such a development highlights the growing challenges to the Kremlin s grasp on power amidst increasing disapproval of the status quo in Russia.
104
+
105
+ A heavy-handed approach to opposition forces may deter some supporters and damage the networks and resources of Navalny s FBK. However, crackdowns can also spur resistance to such tactics and opposition activists have shown resilience and innovation to authorities efforts to stifle them. While the wave of protests during the summer has tapered off, additional demonstrations over the latest election, crackdowns, and other efforts to repress opposition supporters are possible. In conjunction, any unauthorized demonstration in Russia may face a swift crackdown by police and the Kremlin may pursue additional actions to combat any suspected erosion of support and power in the country. Resilience360 customers are advised to continue monitoring associated developments in the post-election period and to avoid any demonstration activity in Russia due to the risk of mass detentions and clashes with authorities.",Moderate,Miscellaneous Events,Russia,14/9/19 0:16,2019,,,
106
+ 1777,Malaysia and Singapore De-Escalate Maritime Dispute; Should Prevent Additional Incidents,"On Thursday, Malaysia and Singapore agreed to de-escalate their maritime dispute by reverting their port limits. Malaysia agreed to return Johor Baru port limits to their pre-October 2018 boundaries, while Singapore reverted its port limits to pre-December 2018 lines. The extensions had caused the port limits to overlap. Both countries have said that they will start negotiations over the disputed maritime border within a month. Singapore and Malaysia also agreed to not authorize commercial activities or anchor government vessels in the disputed area, as well as to follow international maritime law to avoid any incidents.
107
+
108
+
109
+ Assessment: The maritime boundary extensions caused the relationship between the two countries to deteriorate and also resulted in confusion for international shippers. There was a minor incident in February after a Malaysian vessel collided with a Greek ship in waters claimed by Singapore that highlighted the dispute but did not result in major shipping disruptions. The return to the status quo and an adherence to international law should prevent any further maritime incidents. The negotiations will also seek to resolve disputes regarding the price Singapore pays for Malaysian water and Singapore s management of a small part of Malaysian airspace over southern Johor. Resilience360 customers with interests in bilateral relations between the two countries are advised to monitor the progress of negotiations.",Moderate,Miscellaneous Events,Malaysia,16/3/19 0:22,2019,,,
110
+ 1778,Malaysia Detained Crew After Greek Ship Collided with Malaysian Vessel near Johor Baru Port,"On Saturday, a Greece-registered ship collided with the Malaysia-registered Polaris, a vessel that lays buoys, near Johor Baru Port in waters claimed by Singapore. The collision occurred while the Greek ship was headed to Tanjung Pelepas in Malaysia. There were no reports of any oil leaks or injuries associated with the collision, or any impacts to maritime shipping. The crew of the Greek ship was detained by the Malaysian Marine Department (Mardep) after the collision. Following the incident, Singapore called on Malaysia to withdraw its ships from Singapore s waters.
111
+
112
+ Assessment: Saturday s incident highlights the disputes over airspace and sea territory between Malaysia and Singapore that began last year. In 2018, the Malaysian government extended its port limits into Johor, and Malaysian vessels started entering waters that are claimed by Singapore. Singapore disputed the port limit extension, and its foreign minister has called on Malaysia to comply with international law. Bilateral talks held last month between the nations proved unsuccessful. The ongoing territorial dispute can cause confusion for vessels entering the Johor area, and increase the risk of safety hazards such as collisions. Although the likelihood of direct conflict between Singapore and Malaysia is low, Resilience360 customers are advised to exercise caution if travelling in the Johor area.",Moderate,Miscellaneous Events,Singapore,11/2/19 23:10,2019,1.44703,103.76346,
113
+ 1784,Malta - Negotiations on Saturday reportedly ended with agreement; vote to be held on Monday.,"Fuel station owners affiliated with the General Retailers and Traders Union (GRTU) have suspended the nationwide strike across Malta during a meeting with Energy Ministry officials on Saturday. Updated sources stated that the negotiations on Saturday were positive and ended with an agreement; a vote on accepting the agreement will be held on Monday.
114
+
115
+ The strike began on Tuesday, January 22, following an unsuccessful meeting with Energy Ministry officials to discuss the possibility of the government funding expensive renovations that most fuel stations are required to complete per a directive issued by the European Union. Fuel stations across Malta have been shutting down their pumps beginning at 6:00 PM local time during the strike, not allowing motorists to purchase fuel past that time.",Moderate,Miscellaneous Events,Malta,22/1/19 13:42,2019,35.89564,14.50828,
116
+ 1815,Metro Manila and Rizal Province to Experience Water Interruptions Due to Insufficient Supply,"On Wednesday, Manila Water announced that it was implementing a revised water interruption program in the Metro Manila area and Rizal Province to deal with insufficient water supplies. Customers may experience between six and 21 hours of service interruptions, while water pressure may be lower than usual. The water interruptions will be first impacting the East Zone of Metro Manila, including the Makati, Mandaluyong, Pasig, Pateros, San Juan, Taguig, and Marikina areas, parts of Quezon City and Manila, as well as the Angono and Antipolo areas of Rizal Province.
117
+
118
+
119
+ Assessment: The water restriction program is expected to last for the next three months or until the rainy season begins. The dry season typically ends in May, but has been extended due to the El Nino weather phenomenon. El Nino is one of the causes of the recent shortage, but another main cause is a significant increase in demand. Manila Water has said that it will prioritize hospitals and school areas, while water tankers would be provided to households and commercial establishments. Updates from Manila Water regarding specific areas, dates, and times of service interruptions can be found at https://www.manilawater.com/customer/advisories/service-advisories , https://www.facebook.com/manilawater/ , and https://twitter.com/ManilaWaterPH . Resilience360 customers are advised to expect water service disruptions, which could intensify in the coming months, until the rainy season begins.",Moderate,Miscellaneous Events,Philippines,13/3/19 21:28,2019,,,
120
+ 1824,"Minor At Tangiers' Tanger-Med port, Tanger-Tetouan-Al Hoceima Region,...","At Tangiers' Tanger-Med port, Tanger-Tetouan-Al Hoceima Region, security forces foiled an attempt to smuggle 2.200 tonnes of drugs, according to an official statement.",Minor,Miscellaneous Events,Morocco,16/10/19 11:24,2019,,,
121
+ 1828,"Minor In Barcelona, striking port stevedores attempted to block access to...","In Barcelona, striking port stevedores attempted to block access to the cruise ship terminal; local Mossos d'Esquadra police physically removed them.",Minor,Miscellaneous Events,Spain,21/10/19 14:44,2019,,,
122
+ 1848,Moll de Llevant - Fire on Marina Barcelona 92 ship brought under control. Incident closed.,Updated reports indicate that firefighters have brought under control a fire that broke out in pallets on a Marina Barcelona 92 ship located near Moll de Llevant. No injuries or damage to ships were reported. There were no reports of disruptions to port operations. This incident is closed.,Moderate,Miscellaneous Events,Spain,6/9/19 13:04,2019,41.36601,2.18598,
123
+ 1855,MQM Worker Killed in Overnight Shooting,"Pakistani media sources report that a worker from the Muttahida Qaumi Movement (MQM) was killed in a gun attack in Karachi late Monday. Another MQM worker was injured in the incident, which involved six gunmen on motorcycles who opened fire on the MQM-P union council (UC) office in the New Karachi area of the city. The assailants fled the scene and reportedly remain at large.
124
+
125
+ Assessment: No group immediately claimed credit for the attack, and the motivation behind it remains unclear. In the past, secular-minded parties such as MQM have been targeted by Islamist militant groups, including in Karachi. The MQM has also come under pressure from the Pakistani security establishment, which has waged a crackdown against the party in recent years. From a security standpoint, demonstrations and labor strikes are common in association with acts of political violence in Pakistan, most of which are accompanied by rioting and other forms of civil unrest. Although no specific details have been announced in this regard, Resilience360 customers in Karachi should monitor local media outlets for associated security developments.",Moderate,Miscellaneous Events,Pakistan,12/2/19 21:40,2019,,,
126
+ 1858,Mundra and Kandla Ports in Gujarat Put on Alert Due to Threat; Similar Alerts Issued Previously,"On Thursday, it was reported that the Mundra Port and Kandla Port in Gujarat State have been put on high alert due to a potential terror threat. The alert originated from intelligence agencies regarding the possibility that Pakistan-trained commandos had infiltrated the Gulf of Kutch after two single-engine Pakistani boats were found in the Harami Nala area. The ports have instructed shipping agents and vessels to report any suspicious activity to the Coast Guard or other authorities at the ports. Security at the ports has also been increased, although there were no initial reports of disruptions to maritime shipping. Around 60 personnel have been deployed at checkpoints at ports, who are also equipped with devices to puncture the tires of vehicles that may attempt to break through barriers. Around 100 Central Industrial Security Force (CISF) commandos have also been deployed to the Nayara Energy oil refinery in the Vadinagar area of Gujarat.
127
+
128
+ Assessment: The alert on Thursday followed reports earlier in the week from Navy Chief Admiral Karambir Singh, who said that the Pakistan-based Jaish-e-Mohammad (JeM) militant group was training individuals to carry out underwater attacks. Admiral Singh said that the navy was fully prepared to foil such attacks. Reports about Pakistan s military training JeM divers to carry out attacks are not new and have been mentioned last year and the year before, although the targets were reportedly Indian Navy vessels. It remains questionable that JeM has the capabilities to carry out that kind of underwater attack, as they have not displayed similar capabilities in the past. In addition, there are a multitude of easier methods to carry out an attack on port facilities that do not involve underwater diving training and the transportation and use of more advanced explosives. It is also important to note that Indian intelligence agencies issue hundreds of alerts every year, with the vast majority not resulting in an attack. Resilience360 customers are advised to follow instructions issued by port authorities to maintain an elevated level of vigilance and expect an increased security presence at ports, which could result in maritime shipping delays.",Moderate,Miscellaneous Events,India,29/8/19 22:43,2019,22.83827,69.72853,
129
+ 1922,Operation Brock Initiated on M20 in Kent as Preparation for Possible No-Deal Brexit Congestion,"On Monday, authorities initiated Operation Brock on the M20 in Kent as part of the government s plan to manage gridlock in the event of a no-deal Brexit. The system to manage truck and passenger vehicle traffic to and from the Kentish coast, including the port of Dover, is being coordinated with Kent police and local authorities along the motorway. The operation includes the coast-bound side of the M20 between Junctions 8 (Maidstone) and 9 (Ashford) being solely for truck traffic heading to Dover, serving as a holding space for trucks during congestion periods, though truck traffic remained free-flowing Monday. The dedicated 14-mile stretch will enable trucks to move along based on truck congestion levels, while all other traffic moving in both coast- and London-bound directions travels on the London-bound side of the motorway. The London-bound side in the affected stretch is thus divided with barriers for two lanes of traffic to the coast and two lanes of traffic to London. The anticipated duration of Operation Brock was not immediately announced by authorities.
130
+
131
+ Assessment: With a potential Brexit date recently pushed back to at least April 12, questions have been raised about the purpose of continuing with the no-deal contingency scenario at this time. Operation Brock is a replacement of the previous M20 traffic management system called Operation Stack. In the new system, up to 11,000 trucks are expected to be able to fit into the M20 queuing procedure. Should further space be required, the government has backup provisions for directing trucks to the disused Manston airport as well as the coast bound M26. Although government officials have said checks would not be carried out at Dover in the short term following a no-deal Brexit to avoid heavy disruption, the Dover Harbour Board warned last week that an increase of two minutes per vehicle bound for France undergoing checks could result in 17-mile queues. Resilience360 customers are advised to anticipate possible disruptions while Operation Brock remains in effect and to continue monitoring associated developments that may impact cross-Channel traffic and the United Kingdom s planned separation from the European Union.",Moderate,Miscellaneous Events,United Kingdom,25/3/19 20:56,2019,51.14663,0.87603,
132
+ 1950,Over 100 Protesters Detained at Anti-Government Demonstration in Managua on Saturday,"On Saturday, hundreds of supporters of the Civic Alliance opposition coalition gathered for a demonstration in downtown Managua. The action was intended to protest against the administration of incumbent President Daniel Ortega, and to demand the release of political prisoners. As Ortega s government had previously outlawed anti-government demonstrations, security forces rapidly descended on the scene and forcibly dispersed the crowd with truncheons, tear gas, and rubber bullets. Nicaraguan authorities claimed that 107 protesters were detained for violating public order. The opposition claimed that 164 demonstrators were detained, and that six had been wounded by rubber bullets. Multiple news outlets and non-governmental organizations have claimed that several journalists that were covering the demonstration were assaulted by police and/or robbed of their cellphones. There were no reports of injuries among law enforcement personnel.
133
+
134
+ Assessment: Political leaders from the United States, Uruguay, and multiple European countries condemned the actions taken by Nicaraguan authorities on Saturday. Representatives of the European Union called on the Ortega administration to respect the principles of freedom of peaceful assembly and freedom of the press. Nicaragua s opposition movement claims that 770 people have been imprisoned on spurious, politically motivated charges since civil unrest broke out across Nicaragua last April. The government freed 112 detainees in late February, and 50 more were transferred to house arrest on March 15th. Nevertheless, members of the Civic Alliance have deemed the concessions to be inadequate, and the issue remains one of the major sticking points preventing the two sides from resuming negotiations.
135
+
136
+ As no solution to Nicaragua s ongoing political crisis appears to be within sight, similar bouts of anti-government protest activity and ensuing clashes with security forces will likely continue to sporadically crop up in the coming weeks and months. Resilience360 continues to advise customers to avoid non-essential travel to the country, due to the risks posed by civil unrest and the government s arbitrary enforcement of laws.",Moderate,Miscellaneous Events,Nicaragua,18/3/19 23:49,2019,,,
137
+ 1975,Philippines Warns China over Thitu (Pag-asa) Island in the South China Sea; Protest Held in Manila,"On Saturday, President Rodrigo Duterte warned China that occupying Thitu (Pag-asa) Island in the South China Sea would risk starting a war. His statements were in response the presence of around 200 Chinese fishing vessels around the Sandy Cay area, which the Philippine government has called illegal. The Philippine Navy has monitored around 600 Chinese vessels coming and going in the first quarter of the year. A protest was also held on Tuesday outside the Chinese Embassy in Manila, where around 1,000 demonstrators demanded that President Duterte take a stronger stance towards China.
138
+
139
+
140
+ Assessment: Thitu Island is occupied by the Philippines but is also claimed by China, Taiwan, and Vietnam. Despite the strong rhetoric from President Duterte, it is unlikely that China or the Philippines would risk a major military conflict over the presence of fishing boats near Thitu Island. President Duterte has sought a closer alliance with China, especially in economic matters, and China is prepared to offer the Philippines large loans towards infrastructure projects. However, accidents or minor skirmishes involving vessels from the two countries could lead to a deterioration in relations and increase the risk of additional protests against Chinese interests. Resilience360 customers are advised to monitor the situation and avoid all areas where protests are taking place.",Moderate,Miscellaneous Events,Philippines,9/4/19 20:19,2019,,,
141
+ 1997,Pipeline Leak in Yvelines Raises Prospect of Grandpuits Refinery Shutdown,"At about 10:35 PM local time Sunday, an alarm was set off indicating a pressure drop along the Ile-de-France pipeline (PLIF) due to a crude oil leak in an area of fields in Autouillet, Yvelines department. Several rivers in Vicq, Boissy-sans-Avoir, and Autouillet (R le Lieutel, R de Breuil, and R de la Coquerie) were also impacted by the underground hydrocarbon spill. The prefecture said up to about 17 acres of fields were affected by the leak, with gendarmerie reporting up to 30 acres impacted overall. The leak has been halted and the pipeline depressurized. The company said that the exact cause of the leak was under investigation, and that the affected stretch of pipeline was being excavated as part of that process. Pumping trucks have been deployed to recover oil and the impacted land is being excavated and removed with the use of construction equipment, with the cleanup process expected to take multiple months.
142
+
143
+ Assessment: The approximately 166-mile pipeline connected the port of Le Havre to the Grandpuits refinery, and it is operated by Total to transport primarily crude oil. The Grandpuits refinery is planned to reduce operations gradually this week as reserves decrease, though the exact timing and duration for a prospective shutdown of the refinery was not yet announced. The PLIF had suffered a leak in May 2014 near Le Havre, and there have been calls for increased monitoring and upgrading of underground pipeline, particularly with regard to aging infrastructure. The 2014 spill caused the refinery to shut down for three weeks. However, Total insisted that there is not a shortage risk for fuel supplies in Ile-de-France. Resilience360 customers are advised to continue monitoring associated developments that may impact refinery operations, fuel supply, and fuel prices while the pipeline remains out of operation and the Grandpuits refinery has reduced or halted operations.",Moderate,Miscellaneous Events,France,27/2/19 0:13,2019,48.84937,1.80379,
144
+ 10,14 miles NE of Jakarta - A magnitude 4.5 earthquake was detected in the region. Incident closed.,"A magnitude 4.5 earthquake was detected 14 miles northeast of Jakarta, Indonesia. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Indonesia,24/9/18 18:33,2018,-6.1,107.02,
145
+ 11,17 miles SW of Batangas - A magnitude 5.5 earthquake was detected in Batangas Bay. Incident closed.,"Multiple sources report that a magnitude 5.5 earthquake was detected in the Batangas Bay, approximately 17 miles southwest of Batangas, Philippines. There have been no reports of associated injuries or structural damage. This incident is closed.",,Earthquake,Philippines,31/8/18 15:04,2018,13.556,120.903,
146
+ 16,23 miles ESE of Taichung City- A magnitude 4.5 earthquake struck in central Taiwan. Incident closed.,"A magnitude 4.5 earthquake was detected in central Taiwan, approximately 23 miles east-southeast of Taichung City. There were no initial reports of associated injuries or structural damage. This incident is closed.",Moderate,Earthquake,Taiwan,17/8/18 10:40,2018,24.02,121.03,
147
+ 20,33 miles SE of Valencia A magnitude 4.0 earthquake struck in the Mediterranean Sea. Incident closed.,The European-Mediterranean Seismological Centre reported that a magnitude 4.0 earthquake struck approximately 33 miles southeast of Valencia in the Mediterranean Sea. There were no reports of injuries or major structural damage. This incident is closed.,Moderate,Earthquake,Spain,17/10/18 6:06,2018,39.23,0.16,
148
+ 1981,Philippines: Magnitude 6.2 earthquake recorded south of Davao Oriental Province,"The United States Geological Survey (USGS) has recorded a magnitude 6.2 earthquake today, 29 September, south of Davao Oriental Province. The quake occurred at a depth of 76.1 kilometers at 10:02 local time. Preliminary reports do not indicate if any damage or injuries have resulted.",Severe,Earthquake,Philippines,29/9/19 3:35,2019,6.35667,126.18441,
149
+ 1982,"Philippines: Magnitude 6.5 earthquake strikes near Makilala, Cotabato Province; damages reported","The United States Geological Survey (USGS) has recorded a magnitude 6.5 earthquake today (31 October) near Makilala. The quake was recorded at a depth of 10 kilometers or less at approximately 09:11 local time. Initial reports show Eva's Hotel in Kidapawan City partially collapsed, with injuries unconfirmed. Additionally, a multi-story structure in Davao City has sustained damage as well. Further reports of damages are likely to emerge, as this is the second earthquake over 6.0 magnitude to strike the area in recent days and infrastructure may be weakened.",Severe,Earthquake,Philippines,31/10/19 1:50,2019,6.92343,125.08286,
150
+ 2587,"UPDATE - Philippines: Casualties confirmed following earthquake near Tulunan, Cotabato Province","Recent reports confirm that casualties have occurred today (29 October) following a magnitude 6.6 earthquake near Tulunan. At least one person has died and more than 40 others are injured, with the majority in Kidapawan City and others in M'lang. Power outages have been recorded in areas of General Santos City, Polomok, Tacurong City, and Carmen. A number of structures have also sustained damage or have collapsed in several locations.",Severe,Earthquake,Philippines,29/10/19 6:20,2019,,,
151
+ 2589,"UPDATE - Philippines: Damages and injuries reported following magnitude 6.6 earthquake near Tulunan, Cotabato Province","Updated sources are reporting damages and injuries following a magnitude 6.6 earthquake that struck near Tulunan on Tuesday morning. The severity of injuries sustained has not been confirmed but media images depict a number of collapsed structures in Tulunan. Several local government units have reportedly cancelled classes across the island of Mindanao, including in North Cotabato, Davao City, Koronadal City, Digos City, and General Santos City, where government and private offices will also be closed. Evacuations have also been reported but specific details remain unconfirmed. The United States Geological Survey (USGS) has recorded at least two aftershock tremors at magnitudes of 5.0 and 5.8 in the region.",Severe,Earthquake,Philippines,29/10/19 3:25,2019,,,
152
+ 2593,UPDATE - Philippines: Several casualties and moderate damage reported following 6.3 magnitude earthquake in North Cotabato,"Updated reports state that a small number of casualties have occurred as a result of the earlier recorded 6.3 magnitude earthquake in North Cotabato. In addition, officials from Mindanao Island are reporting structural cracks to certain buildings and moderate infrastructure damage including power outages. The tremors were felt in Davao City, although the impact there is not believed to be extensive. Earthquakes are common in the region.",Severe,Earthquake,Philippines,16/10/19 15:55,2019,,,
153
+ 3124,178 Miles E of Taichung City - A magnitude 3.9 earthquake struck in the area. Incident closed.,"Government sources reported that a magnitude 3.9 earthquake struck approximately 178 miles east of Taichung City, Taiwan, in the Pacific Ocean. There were no immediate reports of injuries or major structural damage. This incident is closed.",Minor,Earthquake,Taiwan,22/1/20 3:43,2020,24.1,123.5,
154
+ 3135,42 miles N of San Antonio - A magnitude 4.3 earthquake struck in the region. Event closed.,"The European-Mediterranean Seismological Centre indicated that a magnitude 4.3 earthquake struck approximately 42 miles north of San Antonio, Puerto Rico. There were no reports of associated injuries or damage. This event is closed.",Moderate,Earthquake,Puerto Rico,19/2/20 0:48,2020,19.1,-67.22,
155
+ 3136,42 miles NW of San Antonio - The USGS reported a magnitude 4.5 earthquake. Incident closed.,"The U.S. Geological Survey reported a magnitude 4.5 earthquake located 42 miles northwest of San Antonio, Puerto Rico. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Puerto Rico,12/2/20 8:21,2020,18.94,-67.56,
156
+ 3142,72 miles W of San Antonio de los Cobres - A magnitude 4.3 earthquake has struck in the area. Event closed.,"The European-Mediterranean Seismological Centre is reporting a magnitude 4.3 earthquake located 72 miles west of San Antonio de los Cobres, Argentina. There have been no initial reports of associated injuries or damage. Event closed.
157
+ EMSC (European Mediterranean Seismological Centre) is a scientific international organization, which aggregates and provides information generated by national seismological agencies worldwide. EMSC presents earthquake data across several magnitude scales including local magnitude (ML), surface-wave magnitude (Ms), body-wave magnitude (Mb), and moment magnitude (Mw). All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Argentina,18/8/20 6:06,2020,,,
158
+ 3755,"Magnitude 5.1 earthquake reported 11 kilometres southeast of Digos City, Davao del Sur Province","The United States Geological Survey (USGS) is reporting a magnitude 5.1 earthquake 11 kilometres southeast of Digos City. The quake occurred at a depth of 35.2 kilometres at 01:44 local time. There is no tsunami advisory being issued for the incident.
159
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Philippines,30/8/20 21:40,2020,6.75751,125.3524,
160
+ 3756,"Magnitude 5.1 earthquake reported 12 kilometers north of Hachijo, Tokyo Prefecture","The United States Geological Survey has confirmed that a magnitude 5.1 earthquake has been recorded 12 kilometers north of Hachijo, Tokyo Prefecture. The quake occurred at a depth of 118 kilometers and no tsunami warning has been issued.
161
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Japan,25/9/20 17:35,2020,33.12568,139.80898,
162
+ 3757,"Magnitude 5.2 earthquake recorded 30 kilometers south of Sarangani, Davao Occidental Province","The United States Geological Survey (USGS) has recorded a magnitude 5.2 earthquake 30 kilometers south of Sarangani on Monday, 6 January. The quake occurred at a depth of 55.9 kilometers at approximately 15:25 local time. No tsunami warning has been issued at this time.",Moderate,Earthquake,Philippines,6/1/20 8:03,2020,5.41372,125.40147,
163
+ 3758,"Magnitude 5.3 earthquake reported 17 km west of Nasugbu, Batangas Province","The United States Geological Survey (USGS) has confirmed that a 5.3 magnitude earthquake has occurred 17 km west of Nasugbu. The quake was reported at a depth of 86 km and no information on structural damage or injuries has been announced.
164
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Philippines,9/5/20 20:09,2020,14.06667,120.63333,
165
+ 3759,Magnitude 6.2 earthquake reported north of Surabaya,"The US Geological Survey is reporting that a magnitude 6.2 earthquake, at a depth of 592.2 km, has occurred approximately 116 km north of Surbaya. There have been some reports of tremors having been felt although it is estimated that little or no population will be affected.",Severe,Earthquake,Indonesia,5/2/20 19:37,2020,-6.23324,112.93235,
166
+ 5715,"USGS reports magnitude 6.3 earthquake 4km southeast of Calatagan, Batangas Province","The United States Geological Survey (USGS) has recorded a magnitude 6.3 earthquake 4km southeast of Calatagan on Friday, 25 December. The quake has occurred at a depth of 114km at 07:43 local time. There has not been a tsunami warning issued and there are no immediate reports of damages, though they are possible due to the intensity of the tremor.
167
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Severe,Earthquake,Philippines,25/12/20 0:25,2020,13.83333,120.6333,
IS424_Data_Mining/code/LLM Evaluation/cleaned_data_with_categories.csv ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,Headline,Summary,Severity,Category,Region,Datetime,Year,lat,lon,URL
2
+ 3,Shanghai port congestion impacts terminals in Qingdao and Ningbo,"The persisting port congestion at Shanghai’s Yangshan deep-sea terminal is reportedly also impacting vessel arrival times at other major public terminals in China, including Qingdao and Ningbo. Industry sources indicated that this is due to some vessels being diverted from Shanghai as well as unstable weather and re-shuffling of alliances networks. Some carriers are reportedly planning contingency actions for the coming months, including consolidation of volumes and temporary reduction of port calls. No further details were initially provided.",Minor,Maritime Advisory,China,27/4/17 9:16,2017,29.52,121.3319,
3
+ 17,24 hour pier hold in effect at Port of Durban,"Industry sources indicate on August 31 that the Port of Durban’s Pier 1 is experiencing high traffic volumes resulting in road congestion on Bayhead Road, leading Transnet to urge transporters to hold back on dispatching export turns to the container terminal until 6AM on September 1. Extensions will be reviewed for open stacks. Those shipping from Durban should anticipate delays and should plan accordingly.",Minor,Port Congestion,South Africa,31/8/18 18:07,2018,-29.86875,31.03305,
4
+ 1599,Heavy congestion reported at Port of Houston,"According to sources on March 20, heavy congestion has been reported at Port of Houston due to fog.",Moderate,Port Congestion,United States,20/3/19 12:43,2019,29.60949,-95.00567,
5
+ 1600,Heavy congestion reported at Port of Long Beach,"According to sources on January 7, heavy congestion has been reported at Port of Long Beach with 9 vessels waiting for anchor. Reports suggest that the peak volume will be impacting from the terminals to the warehouses.",Severe,Port Congestion,United States,7/1/19 9:50,2019,33.75448,-118.21663,
6
+ 1613,High risk of pilot suspension reported at Port of Yokohama,"On December 31, shipping sources indicate that strong wind is anticipated at Port of Yokohama, Japan, from the afternoon of December 31 until the morning of January 1. The adverse weather conditions pose a high risk of a pilot suspension during the above mentioned period.",Minor,Severe Winds,Japan,31/12/19 10:23,2019,,,
7
+ 1614,High risk of port closure at Port of Busan on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Busan to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Port Closure,Republic of Korea,23/4/19 12:13,2019,,,
8
+ 1615,High risk of port closure at Port of Busan on September 6-7 due to strong winds,Shipping sources on September 5 indicate that due to strong winds there is a high risk for the Port of Busan to be closed for 24 hours from the evening of September 6 to 7.,Moderate,Severe Winds,Republic of Korea,5/9/19 12:52,2019,35.06488,128.81854,
9
+ 1616,High risk of port closure at Port of Kwangyang on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Kwangyang to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Port Closure,Republic of Korea,23/4/19 12:14,2019,34.90849,127.66822,
10
+ 1617,High risk of port closure at the Port of Houston due to fog,Shipping sources indicate on November 21 that there will be an elevated risk of port closures at the Port of Houston from November 22-24 due to fog. Customers should expect longer transit times through container terminals at the port and potential impacts on barge transportation on the Houston Ship Channel.,Moderate,Maritime Advisory,United States,21/11/19 16:26,2019,,,
11
+ 1618,High swells caused terminal closure at Port of San Antonio,"Sources on March 21 indicate that heavy swells at the Port of San Antonio have caused a terminal to be closed. At the time of writing, it remains unclear when operations will return to normalcy.",Moderate,Maritime Accident/Port Disruption,Chile,21/3/19 7:23,2019,,,
12
+ 1628,High winds disruption port operations in Southampton,"On April 27, high winds are disrupting shipside and landside operations at the DP World Southampton terminal since 09:00 local time. Drop-offs or pick-ups of containers are reportedly suspended for the time being.",Minor,Port Disruption,United Kingdom,27/4/19 15:46,2019,50.91,-1.46,
13
+ 1629,High winds impact maritime movements at Port of Dammam,"Shipping sources on April 22 indicated that high winds disrupted vessel movements in the Port of Dammam, Saudi Arabia, on April 22. Minor impacts should be expected on the berthing line up.",Minor,Severe Winds,Saudi Arabia,23/4/19 13:48,2019,26.49713,50.19945,
14
+ 1630,High winds impact port operations in Le Havre,"According to local sources, high winds have impeded port operations at container terminals in the Port of Le Havre since the early morning of March 12. In particular shipside operations have been suspended for several hours. Incoming and outgoing shipments are thus likely to be delayed throughout the day.",Minor,,France,12/3/19 15:59,2019,49.46477,0.14702,
15
+ 1636,Higher dwell times reported at Port of Long Beach due to labor shortages,"Shipping sources on April 29 reported that the Pier T container terminal has experienced higher than usual dwell times for containers due to labor shortages related to the Easter holidays, combined with high volume. Customers should be mindful of potential delays as backlog gets cleared.",Minor,Port Congestion,United States,30/4/19 15:57,2019,33.75292,-118.2096,
16
+ 1663,Houston ship channel fully reopens on April 25,"Industry sources reported that Houston ship channel reopened to full operations on April 25 following a fire at Intercontinental Terminal Co.’s Deer Park, Texas, terminal in late March. The temporary closure which lasted for several weeks disrupted several oil shipments. Houston ship channel is part of Port of Houston.",Minor,Maritime Accident,United States,25/4/19 7:40,2019,29.60569,-94.95236,
17
+ 1687,Increased berthing times reported at Port of Busan,"Shipping sources indicated on January 31 that the Port of Busan, South Korea, currently experiences longer berthing times for incoming vessels. Waiting times of up to 0.5 day have been reported.",Minor,Port Congestion,Republic of Korea,31/1/19 11:35,2019,35.12051,129.05654,
18
+ 1688,Increased congestion elevates drayage costs at Port of New York/New Jersey,"Industry sources indicate on January 23 that increased inbound volumes due in part to Lunar New Year traffic combined with delays and congestions have complicated intermodal shipment at the Port of New York and New Jersey to the point that drayage costs are increasing. Ocean carriers and terminals are charging USD 100-250/day for container-related delays, and drayage carriers are charging USD 75/hr for terminal idling. Those shipping at the Port of New York and New Jersey should anticipate moderate delays and should plan accordingly.",Moderate,Port Congestion,United States,23/1/19 20:31,2019,40.69166,-74.14911,
19
+ 1706,Intermittent closures at Manila International Container Terminal for holidays,"Industry sources reported that Manila International Container Terminal has announced its port operation schedule for the upcoming Christmas and New Year holidays. According to its advisory, vessel and yard operations will continue its regular operations until 19.00 local time on December 24 and will resume at 19.00 on the next day. Normal operations will continue until December 31 when vessel and yard operations will stop at 19.00 local time and will resume again at 19.00 on the next day.",Minor,Port Disruption,Philippines,20/12/19 0:49,2019,,,
20
+ 1712,IT maintenance on Nov 6 may affect operations at Bharat Mumbai Container Terminals,"Shipping sources report on November 1 that IT maintenance activity will take place at Bharat Mumbai Container Terminals at Port of Nhava Sheva on November 6 from 01.00 to 07.00 (local time). During this time, complete network and E-form 13 and 11 applications will not be available. Other operation procedures and service delays can be expected as well.",Minor,Port Disruption,India,4/11/19 9:35,2019,18.93881,72.94084,
21
+ 1736,Lack of gangs may impede operations at Port of Barcelona,Shipping sources on August 19 indicate that lack of gangs due to summer holidays may impede port operations at Port of Barcelona.,Minor,Maritime Advisory,Spain,19/8/19 8:43,2019,41.35591,2.16674,
22
+ 1737,Lack of trucking resources affects productivity at Port of Balboa,Industry sources report on October 15 that productivity has declined at the Port of Balboa due to a lack of trucking resources. The current lineup of rail movement is at least until the year-end.,Moderate,Ground Transportation Advisory,Panama,15/10/19 4:11,2019,8.95763,-79.5614,
23
+ 2099,Port of Ulsan bans variety of hazardous cargo following major chemical tanker explosion,"Media sources indicate on October 7 that the Port of Ulsan has banned a variety of hazardous cargoes from terminals near a bridge where a major chemical tanker Stolt Groenland was caught in an explosion that occurred on September 30. The fire injured eighteen people and led to an overhead bridge, which serves as a thoroughfare for the city, to be closed for two days due to safety checks.",Moderate,Maritime Accident / Hazmat Response,Republic of Korea,7/10/19 10:12,2019,35.45647,129.36626,
24
+ 2100,Port of Valencia - The port has been reopened to maritime traffic. Incident closed.,The Port of Valencia has been reopened to maritime traffic following a closure due to poor weather conditions. This incident is closed.,Moderate,Maritime Advisory,Spain,20/4/19 7:09,2019,39.44809,-0.31693,
25
+ 2101,Port of Valencia - The port was temporarily closed due to high winds in the area. Incident closed.,Media sources reported that the Port of Valencia was temporarily closed due to high winds in the area. There were no reports of major disruptions. This incident is closed.,Minor,Severe Winds,Spain,20/12/19 11:08,2019,39.44809,-0.31693,
26
+ 2102,Port of Valencia temporarily closes due to high winds,Spanish media sources report on December 20 that the Port of Valencia has been temporarily closed due to high winds in the area. It was not immediately disclosed when the port was expected to reopen.,Moderate,Severe Winds,Spain,20/12/19 11:25,2019,,,
27
+ 2103,Port of Yokohama closed due to strong winds,Shipping sources indicate on February 4 that the Port of Yokohama was expected to be closed for 12 hours on February 4 due to strong winds. Customers should expect berthing delays as pilot services may be suspended.,Minor,Maritime Advisory,Japan,4/2/19 17:12,2019,35.44849,139.67131,
28
+ 2104,Port of Yokohama closed due to strong winds,Shipping sources indicated on January 30 that the Port of Yokohama was closed from January 28 to January 29 due to strong winds. Customers should expect berthing delays as well rescheduled departure times for vessels.,Moderate,,Japan,30/1/19 15:56,2019,35.44849,139.67131,
29
+ 2105,Port of Yokohama likely to close due to approaching Typhoon Neoguri,"On October 21, shipping sources indicate that Port of Yokohama will likely suspend its operations from October 22 - 23. Approaching Typhoon Neogure will bring strong winds and likely to cause port closure. Increased berthing times and shipping delays are likely to occur in the following days.",Minor,Tropical Cyclone / Storm,Japan,21/10/19 12:08,2019,,,
30
+ 2106,Port operations resume following temporary suspension at DP World Southampton,Sources indicated that land and shipside operations have resumed following suspension of services from 08:45 to 14:15 (local time) on April 13 due to high winds at DP World Southampton terminal. Customers are advised to expect berthing and unloading delays for shipments scheduled on April 13 and 14.,Minor,Severe Winds,United Kingdom,15/4/19 7:44,2019,,,
31
+ 2110,Port Said closed due to bad weather,"Shipping sources indicate that Port Said has been temporarily closed on February 25 due to adverse weather. The port is likely to restart operations on Tuesday, February 26.",Moderate,Maritime Advisory,Egypt,25/2/19 9:13,2019,31.24254,32.30148,
32
+ 2118,Ports of Savannah and Brunswick - Both ports have resumed normal operations. Incident closed.,The Port of Savannah and the Port of Brunswick have reopened with normal operations following the passage of Hurricane Dorian. This incident is closed.,Moderate,,United States,4/9/19 16:27,2019,32.1232,-81.13941,
33
+ 2127,Power shutdown scheduled for May 1 at Jawaharlal Nehru Port,"According to industry source, APMT, Mumbai has announced that as part of the annual power shutdown as announced by JNPT towards undertaking allied maintenance activities, the terminal shall have limited operations between 0800 Hours and 1700 Hours on May 1, 2019. Terminal operations on the Quayside and Rail siding shall be impacted due to the above activities, however, the terminal Gate and Yard operations shall continue as per normal.",Minor,Port Disruption,India,25/4/19 20:48,2019,18.95112,72.95023,
34
+ 2145,Rail yard congestion still affecting Port of Montreal,Industry sources on April 23 indicate that rail yard congestion issues are still affecting containers flowing through the Port of Montreal. This is reportedly due to exceeded terminal capacities. Shipping companies were said to be working with CN rail and MGT terminal to finalize operational plans to handle reefers in the off-dock CN ramp. The transition is set to take place on May 25. Customers should expect longer shipping times for on-shipments via rail in Montreal.,Moderate,Port Congestion,Canada,24/4/19 16:14,2019,,,
35
+ 2153,Repair works at Port of Colombo may cause berthing delays,"Local sources on March 5 indicate that a terminal at the Port of Colombo will carry out repairs on 4 gantry cranes in the next 12 to 14 weeks. As a result, carriers can expert berthing delays with an average waiting time of 24-hours and above.",Moderate,,Sri Lanka,5/3/19 8:21,2019,6.94071,79.84632,
36
+ 2186,Second berth opens at Batangas Port,"Media sources reported that a second berth was inaugurated at Batangas Container Terminal in Santa Clara, Batangas City on April 29, 2019 with the hopes of increasing the harbor’s capacity for mooring vessels. Reports suggested that the new berth is a 250-meter extension of the first berth. Together with both berths, the port now has a total of 600 meters of berth capable of handling over 450,000 twenty-footer containers annually as the first berth was only able to accommodate 300,000 20-footer containers in a year.",Minor,Maritime Advisory,Philippines,7/5/19 3:07,2019,13.75435,121.04334,
37
+ 2191,Severe congestion persists at Aomi container terminal in the Port of Tokyo - UPDATE 1,"Intelligence obtained by Everstream Analytics on August 16 confirms that circumstances driving congestion at Aomi terminal in the Port of Tokyo persist as of August 16. Sources continue to indicate that truckers continue to face waiting times to pick-up and deliver containers of more than 8 hours at the Aomi Terminal. Due to the congestion at the terminal, regardless of the availability of berth, vessels often need to wait on the water in the bay until terminals are ready to unload containers or entirely omit the port call. Alternative options include using ocean carries that call at other terminals such as Ohio and Shinagawa terminals in the Port of Tokyo or use entirely different ports such as the Port of Yokohama.",Severe,Port Congestion,Japan,16/7/19 15:27,2019,35.61326,139.78239,
38
+ 2192,Severe congestion reported at Port of Savannah,"Industry sources on February 26 that following last weekend’s closure of the Port of Savannah, average waiting times of 2-4 days are currently reported for incoming vessels. Currently, there are 14 vessels at anchorage, with further delays likely throughout the week.",Severe,Port Congestion,United States,26/2/19 15:09,2019,32.12258,-81.13851,
39
+ 2204,Severe winds causes temporary closure of Dammam Port,Industry sources reported that vessels’ movements for docking and undocking at Dammam Port have been suspended since 21:45 (local time) on March 24 due to severe winds. The duration of the closure remains unclear at this time.,Severe,Maritime Advisory,Saudi Arabia,26/3/19 1:56,2019,26.49713,50.19945,
40
+ 2205,Severe winds disrupt operations at Port of London,"Shipping sources on March 10 indicated that severe winds have impeded operations at container terminals in the Port of London, including DP World London Gateway since March 10. Disruption was expected to persist until the early morning of March 11.",Moderate,,United Kingdom,11/3/19 10:25,2019,51.50715,0.46296,
41
+ 2216,Sharm al-Sheikh port closed due to heavy winds and high waves,"Media sources indicated that the Red Sea Port Authority closed the Sharm al-Sheikh port and the Alexandria Port Authority closed the ports of Alexandria and Dekheila on March 30 due to poor weather conditions. The Alexandria and Dekheila ports were shut down due to high waves and wind speed, although loading and unloading of vessels and movement of goods to and from the ports is still continuing. The Sharm al-Sheik port was closed following wind speeds between 22 and 28 knots and waves between 3 and 4 meters high.",Moderate,Maritime Advisory,Egypt,1/4/19 2:23,2019,27.85673,34.28837,
42
+ 2217,Shinagawa container terminal to be closed during golden week,"Local sources indicate that from April 30 to May 6, the Tokyo Aomi and Shinagawa container terminals will be closed due to golden week public holiday period. Customers with shipments to the two terminals are advised to cooperate with shipping agents for blank sailings ahead of schedule.",Moderate,Port Closure,Japan,15/3/19 2:37,2019,35.60732,139.76355,
43
+ 2219,Shipco Transport to fine shippers for misdeclared hazardous cargoes,"Industry sources indicate on August 22 that Chatham, NJ-based Shipco Transport announced its intent to implement a penalty of USD 5,000-35,000 (EUR 4,500-31,750) per container for misdeclared or undeclared hazardous cargoes, with a definitive fine quantity unknown as of reporting, and it is unknown when this penalty will come into effect. Shipco will hold the customer on record liable and responsible for costs and consequences related to violations, fines, damages, incidents, claims and corrective measures resulting from cases of shipment of such cargo. The move is similar to that implemented by other cargo shipping lines in the aftermath of the Yantian Express fire.",Minor,Cargo Disruption,United States,22/8/19 17:38,2019,40.7392,-74.37718,
44
+ 2225,Singapore arrests eleven men for illegal marine gas oil transaction,Media sources indicated on November 4 that the Maritime and Port Authority of Singapore has arrested eleven men for their suspected involvement in an illegal transaction of marine gas oil at sea off Northern Tuas. The eleven men include six crew members of a craft of a marine service provider and another five of a foreign-registered tugboat. Preliminary reports cited that the crewmembers were thought to have misappropriated the marine gas oil and sold it to crew members of the tugboats.,Moderate,"Maritime Accident, Maritime Advisory, Police Operations, Maritime Accident/Ground Transportation Advisory",Singapore,6/11/19 1:37,2019,,,
45
+ 2802,UPDATE: Delays decrease to 12-24 hours at Port of Colombo,"Industry sources indicate on September 17 that some vessels at the South Asia Gateway Terminals (SAGT Terminal) at the Port of Colombo, Sri Lanka, are currently facing delays that have now reduced to 12-24 hours due to internal labour issues.",Moderate,Maritime Advisory,Sri Lanka,5/9/19 12:18,2019,,,
46
+ 2805,UPDATE: Dense fog causes closure of Port of Shanghai,"According to sources on March 13, the Port of Shanghai is currently closed due to dense fog. Hence, vessels’ waiting time is around 1 to 1.5 days. Moreover, low visibility is likely to affect the port from 22:00 (local time) from March 13 until 16:00 of the next day. There is a moderate to high chance that the port may closed again.",Severe,Maritime Advisory,China,11/3/19 7:13,2019,31.31882,121.66033,
47
+ 2806,UPDATE: Dense fog disrupts Port of Shanghai,"Sources on April 26 indicate the Port of Shanghai was temporarily closed due to dense fog from 17:30 (local time) on April 24 to 17:00 of the next day. As a result, an average waiting time for vessels is currently around 1 to 2 days.",Minor,Port Closure,China,24/4/19 6:31,2019,,,
48
+ 2812,UPDATE: Dwelling time around 24-hours at Port of Ningbo,"Local sources on January 4 indicate that an average waiting time at the Port of Ningbo is around 24-hours. As of now, the dwelling time is likely to remain the same until January 5. The port is facing congestion clearing of backlogs from the recent port closure. Furthermore, inbound pilot services at Xiaozhimen channel has been suspended on the afternoon of January 3 for about 2-hours due to congestion caused by fishing vessels.",Minor,Maritime Advisory,China,2/1/19 8:52,2019,29.95168,121.72285,
49
+ 2813,UPDATE: Dwelling time decreases to 0.5 day,"Local sources on March 6 indicate that an average waiting time at the Port of Shanghai has reduced to 0.5 day and the situation is likely to remain the same for the next 2-days. Due to poor visibility, pilot services were suspended for both north and south channel since the evening of March 5.",Moderate,Maritime Advisory,China,5/3/19 7:24,2019,31.31927,121.66068,
50
+ 2814,UPDATE: Fishing boats congestion impacts pilot services at Port of Ningbo,Updated sources on August 20 indicate that outbound pilot services through Xiazhimen channel will be suspended on August 20 midnight due to fishing boats congestion.,Minor,Maritime Advisory,China,19/8/19 8:00,2019,,,
51
+ 2815,"UPDATE: Fog causing congestion in Houston, affecting ocean shipments","Updated sources report fog has delayed vessel traffic through the Houston Ship Channel every day in the past week, delaying shipments of cargo and container ships. Waiting times for berths have thus increased as the channel has been shut intermittently for a total of 133 hours in the past two weeks. The channel was reportedly open as of 17:30 local time on March 13. The delays this week caused US phenol and acetone producer AdvanSix to declare a force majeure on phenol at its plant in Frankford, Pennsylvania earlier this week. Fog in Houston is particularly bad in the October-March period as warmer, humid Gulf air collides with cooler onshore air.",Severe,,United States,11/3/19 7:48,2019,29.68234,-94.99355,
52
+ 2819,UPDATE: Heavy congestion continues at Port of Houston,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Houston due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,United States,5/3/19 7:43,2019,29.6823,-94.99355,
53
+ 2820,UPDATE: Heavy congestion continues at Port of Savannah,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Savannah due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,United States,5/3/19 7:40,2019,32.12169,-81.13986,
54
+ 2823,UPDATE: High winds likely to disrupt Port of Algeciras,"According to sources on March 22, severe winds at the Port of Algeciras are likely to disrupt the port’s operation for the day.",Moderate,Severe Winds,Spain,20/3/19 13:11,2019,,,
55
+ 2824,UPDATE: High winds still causing port disruption at container terminals in Jeddah,"Industry sources on April 23 indicate that high winds continue to impact maritime movements in the Port of Jeddah, Saudi Arabia, since April 20. The situation is expected to last until April 23, and likely to cause congestion at container terminals in the port.",Moderate,Weather Advisory,Saudi Arabia,18/4/19 13:31,2019,21.4625,39.16,
56
+ 2827,UPDATE: Inbound pilotage suspended due to strong winds; 0.5 days of waiting times reported,Sources indicate that strong winds have led to the suspension of inbound pilot services at the Port of Shanghai on January 25. The risk of the port’s closure is high. Current berthing times for vessels are 0.5 days.,Moderate,,China,22/1/19 10:08,2019,31.3201,121.65733,
57
+ 2831,UPDATE: Intermittent port closures reported at Port of Xiamen,"According to local sources on April 10, Port of Xiamen was closed from the midnight of April 9 to noon. Previously the port was closed on April 7 until the morning due to dense fog. An average waiting for vessels to berth at the port is likely to be around 0.5 to 1 day at the moment.",Minor,Port Closure,China,10/4/19 2:16,2019,,,
58
+ 2842,UPDATE: No more congestion reported at Port of Hong Kong,"According to local sources on April 17, average waiting times for vessels to berth at the Port of Hong Kong were still around 1 day on April 16 but have decreased on April 17. No further delays are to be expected for the time being.",Minor,Port Congestion,Hong Kong,15/4/19 12:38,2019,,,
59
+ 2849,UPDATE: Operations at Port of Shanghai affected due to Typhoon Mitag,"Shipping sources on October 2 indicate that port operations at the Port of Shanghai were affected due to Typhoon Mitag. A vessel evacuation plan has been in place since 10:00 local time on October 1. According to sources, pilot operations are expected to resume by 17:00 local time on October 2. Customers are advised to expect delays and congestion following the re-opening of the port.",Moderate,Maritime Advisory,China,30/9/19 11:38,2019,,,
60
+ 2850,UPDATE: Operations resume at DP World Southampton terminal,"Updated industry sources indicate that shipside and landside operations at the DP World Southampton terminal have resumed after being suspended since 05:00 local time on September 10 due to fog. Landside operations resumed at 05:30, while shipside operations resumed at 07:30. VBS bookings will be slowly released into the system once the trucks currently waiting in line have been served.",Severe,Port Disruption,United Kingdom,10/9/19 5:37,2019,50.91186,-1.45732,
61
+ 2854,UPDATE: Operations resume at Port of Southampton following suspension due to fog,"Shipping sources indicate that on February 22 that landside and shipside operations have resumed at 08:00 local time after a 9-hour suspension due to fog at container terminals in the Port of Southampton, United Kingdom.",Minor,Port Disruption,United Kingdom,22/2/19 9:06,2019,,,
62
+ 2869,UPDATE: Port of Busan reopens after temporary closure,Updated sources indicate on October 4 that the Port of Busan has opened after a brief closure on October 2 during the passage of Typhoon Mitag.,Moderate,,Republic of Korea,30/9/19 11:41,2019,,,
63
+ 2870,UPDATE: Port of Charleston is open for business following Hurricane Dorian's passage,Updated media sources indicate on September 6 that the Port of Charleston is open for business as of September 6 with normal hours on September 7-8 gate hours. The Coast Guard Captain of the Port previously placed Port Condition Zulu for Charleston terminal due to the anticipated arrival of sustained gale force winds from Hurricane Dorian within 12 hours.,Severe,,United States,3/9/19 5:28,2019,32.90473,-79.96455,
64
+ 2871,UPDATE: Port of Chittagong reopens following former cyclone passage,"Sources indicate that the Port of Chittagong has reopened on the afternoon of May 4 following a 30-hour suspension following the passage of former Cyclone Fani last week. Normal cargo and containers handling started around 17:00 (local time). Heavy congestion can be expected as the backlogs from the previous days are likely to be given priority. Furthermore, as the holy week of Ramadan commences on May 5 until June 4, working operating hours are likely to be shifted. Customers with shipments to the port can expect vessels’ berthing time to be more than 24-hours at this time.",Moderate,,Bangladesh,2/5/19 8:49,2019,,,
65
+ 2872,UPDATE: Port of Colombo faces berthing delays,"Sources on March 11 indicate that the Port of Colombo is facing berthing delays due to unspecified reasons. An average waiting time for the vessels is likely to be around 1 to 2 days. In addition, congestion is likely to be exacerbated by repair works on 4 gantry cranes which will start March 18 and last for two weeks. Out-of-window arrivals will likely face extended berthing times.",Moderate,Port Congestion,Sri Lanka,11/3/19 7:51,2019,6.94047,79.8464,
66
+ 1591,Greenpeace Protest on Hartman Bridge on Thursday Temporarily Closed Portion of Houston Ship Channel,"On Thursday, September 12, 23 protesters associated with Greenpeace demonstrated along the Fred Hartman Bridge in Baytown, TX just outside of Houston. The protest began around 6:30 AM local time and included 11 of the protesters rappelling down the bridge to disrupt shipping traffic in the Houston Ship Channel. While the bridge stayed open during the protest to vehicular traffic, a half-mile portion of the ship channel was closed between Light 102A and Light 104 until reopening early Friday morning after protesters were arrested. The protest remained peaceful; however, the initial blocking of the bridge led to a minor motor vehicle accident which injured one person.
67
+
68
+ Assessment: The Greenpeace activists stated that their goal of the protest was to attempt to disrupt the oil and gas shipments that go through the Houston Ship Channel. The group timed their protest to attempt to get the attention of Democratic presidential candidates who were in Houston Thursday for a Democrat National Committee presidential debate. The Houston Ship Channel and Port of Houston are vital to U.S. oil and gas exports and the ship channel is the busiest in the country annually generating approximately $339 billion and providing over 1.35 million jobs to the state of Texas. The portion of the ship channel that was closed on Thursday normally sees approximately 300 vessels pass through, and according to media sources, at least seven were blocked during the temporary closure. The protest did not cause any significant disruptions to shipping interests, as many companies often build in an extra day to shipping schedules as a precaution.
69
+
70
+ An uptick in climate change-related protests has been seen in recent months, especially across Europe. The majority of protests are organized by groups such as Greenpeace or Extinction Rebellion and have been relatively peaceful, although some have been disruptive with protesters blocking bridges, and trains, similar to the Greenpeace protesters temporarily shutting down the Houston Ship Channel on Thursday. Additionally, a weeklong series of protests are being planned across the world beginning Friday, September 20 as part of a global climate strike action. The relative ease with which the Greenpeace protesters in Baytown were able to shut down a portion of the Houston Ship Channel using a small group of people and the increased focus on climate-related protests highlight the possibility of an increase in similar protests across the United States. As such, Resilience360 customers with cargo interests should anticipate the possibility of disruptions to supply chains due to climate-related protests.",Moderate,"Protest/Riot, Port Disruption, Cargo Disruption, Climate Change",United States,13/9/19 21:29,2019,29.71163,-95.00479,
71
+ 1661,Houston Ship Channel - Channel has partially reopened to ship traffic. Incident closed.,"Channel traffic has partially reopened from Tucker Bayou to Houston Ship Channel Light 116, as cleanup efforts continue related to pollutant runoff from the ITC facility fire. The runoff has been exacerbated by the partial collapse of a dike wall that took place on Friday, March 22 near the ITC facility. The dike wall has since been repaired. Updated sources indicate that the waterway may be reopened on Monday, March 25. Authorities are conducting cleanup operations and there appears to be no active health hazard. Ships are being able to traverse the channel if they have less than a 34-foot draft. All vessels are required to be inspected for chemical contaminates and are being spaced at approximately one-hour intervals. This incident is closed.",Moderate,"Chemical Spill, Maritime Accident, Port Disruption, Hazmat Response, Public Safety / Security",United States,22/3/19 19:30,2019,29.74453,-95.10194,
72
+ 1662,Houston Ship Channel - Ship channel has been reopened after protesters detained. Incident closed.,"The U.S. Coast Guard has reopened part of the Houston Ship Channel near Baytown. The closure was the result of Greenpeace protesters on the Fred Hartman Bridge, who have since been detained. This incident is closed.",Moderate,Maritime Advisory,United States,12/9/19 14:41,2019,29.70263,-95.01394,
73
+ 1667,Hurricane Dorian Expected to Make Landfall on Florida Coast as Cat 3 Storm Over Labor Day Weekend,"Hurricane Dorian continues to move through the Atlantic Ocean as it passes Puerto Rico and heads toward the eastern Florida coast. The storm is expected to strengthen over the next days and is forecast to make landfall as a major Category 3 storm, on the Saffir-Simpson Hurricane Wind Scale, late Sunday night or early Monday morning. Significant uncertainty remains on the path of Dorian; however, as of Wednesday afternoon the projected path has the storm making landfall near Orlando, FL and the Florida Space Coast. Portions of Florida and other parts of the southeastern coast are expected to receive between four to eight inches of rain with some areas receiving upwards of ten inches. Tropical-storm-force winds will reach the Florida coast by Saturday. Governor Ron DeSantis has issued a state of emergency for the state of Florida in anticipation of the storm.
74
+
75
+ Assessment: The state of emergency declaration allows for preemptive planning coordination of resources across Florida to help with preparation and eventual recovery efforts. Governor DeSantis has also urged Florida residents to have seven days of supplies and an emergency plan in case of disaster as the hurricane continues to near the state. While the path of the storm remains uncertain, Dorian making landfall as a Category 3 storm will likely cause significant disruptions across Florida. These may include evacuations, widespread power outages, road closures, and life-threatening flooding conditions. The U.S. Coast Guard has set a number of Florida ports at port condition Whiskey including Key West, Miami, Port Canaveral, Tampa, St Petersburg, and Manatee. Port condition Whiskey means that ports remain open to all commercial and cargo operations; however, commercial vessels greater than 500 gross tons should begin making plans to depart the port. It is likely as the storm nears that a number of these ports will close due to the anticipated high winds.
76
+
77
+ Travelers should also anticipate air travel delays across the Southeast, especially for Florida airports as well as Hartsfield-Jackson Atlanta International Airport (ATL), a major hub for both domestic and international flights. Additionally, several projections have the storm either moving across Florida into the Gulf of Mexico, potentially creating disruptions for the Gulf Coast or have the storm moving up the southeast coast where disruptions would occur in Georgia, South Carolina, and North Carolina. Resilience360 customers are advised to heed all local weather warnings and evacuation notices. Customers with interests in Florida, the Southeast, and the Gulf Coast should continue monitoring the progress of Hurricane Dorian.",Severe,"Tropical Cyclone / Storm, Severe Winds, Flooding, Evacuation, Air Travel Disruption, Port Closure, Power Outage, Public Safety / Security, Weather Advisory, Travel Warning",United States,28/8/19 22:44,2019,28.53823,-81.37739,
78
+ 1670,Hyundai Heavy Industries Workers Vote to Strike over Daewoo Acquisition; Date Unspecified,"On Thursday, it was reported that workers at Hyundai Heavy Industries (HHI) voted to approve a strike against the acquisition of Daewoo Shipbuilding. Workers from Daewoo Shipbuilding and Marine Engineering (DSME) also voted to approve a strike earlier in the week. Nearly 60 percent of HHI workers voted in favor of the strike, along with 90 percent of DSME workers. A date for the strikes have not been set.
79
+
80
+
81
+ Assessment: HHI signed a conditional agreement last month to acquire DSME from the government, with a formal agreement expected in March. The two shipbuilders cover around 20 percent of the global shipbuilding market share. The unrest among workers in South Korea s shipbuilding sector are tied to mounting financial pressures caused by a decrease in global demand for new vessels and increased competition from Chinese shipbuilders. A coordinated strike between HHI and DSME workers would cause significant disruptions in the shipbuilding industry. Resilience360 customers with interests in the sector are advised to monitor reports regarding a specific date for a strike. Workers may also decide to hold protests or marches, which should be avoided due to the potential for clashes with police. Protests would likely be held in Ulsan or on Geoje Island, where the HHI and DSME are headquartered, respectively.",Moderate,"Industrial Action, Maritime Advisory, Miscellaneous Strikes, Public Safety / Security",Republic of Korea,21/2/19 22:22,2019,,,
82
+ 1672,IED Detonated Near Police in Hong Kong; Could Represent Escalation If It Becomes a Regular Tactic,"On Sunday, an explosion was reported near the intersection of Nathan Rd and Fife St in the Mong Kok area of Kowloon. The incident took place near a parked police vehicle after police officers had disembarked and were clearing roadblocks following another evening of violent protests across Hong Kong that resulted in over 200 arrests. The explosive was reportedly detonated remotely by a cell phone and was placed in a flower pot around six feet from the police van. No injuries were reported, although police said that the device was meant to injure or kill officers. Police have said that the intensity of the explosion was relatively low and was likely comprised of homemade materials.
83
+
84
+ Assessment: The use of an IED by protesters was not completely unexpected, as police carried out two raids on warehouses in July and August where explosive materials were found and suspects from pro-independence groups were arrested. The raid on the Lung Shing Factory Building in Tusen Wan in July found two pounds of the chemical triacetone triperoxide (TATP), which is a powerful explosive that can be made from common household ingredients, along with incendiary devices, acids, and sharp weapons. The raid on an industrial building in Fo Tan in August found over 30 smoke bombs and a significant amount of cash. If the use of explosives becomes a regular tactic by the protesters, it will seriously deteriorate the security situation in Hong Kong, particularly if they result in any casualties. The use of a cell phone as a remote detonator could also give police justification to suspend mobile phone services in certain areas when protests are taking place. Resilience360 customers are advised to continue to avoid all areas where protests are occurring and should be aware of the risk of restrictions on telecommunications services.",Severe,"Protest / Riot, Public Safety / Security, Public Transportation Disruption, Police Operations, Roadway Closure / Disruption, Hazmat Response, Bombing",China,14/10/19 18:01,2019,,,
85
+ 1685,"Incheon and Changwon Production losses of 20,000 vehicles due to strike. Incident closed.","Media sources indicate that partial and general strikes had resulted in a production loss of 20,000 vehicles. The GM Korea union announced plans to continue the strike at GM facilities in Incheon and Changwon after the Chuseok holiday, although there were no initial reports that the strike resumed. Over 10,000 General Motors (GM) Korea workers were participating in the action. Workers held a full-scale walkout on September 9, 10, and 11. Media sources indicated workers also held an overtime ban during the Chuseok holiday, which was observed Thursday, September 12 to Saturday, September 14. GM Korea workers held two four-hour partial strikes on Friday, August 30, at their facilities in Incheon and Changwon, as well as a two-day partial strike on Tuesday, August 20 and Wednesday, August 21. The labor action was organized to protest wages. This incident is closed.",Moderate,Miscellaneous Strikes,Republic of Korea,20/8/19 9:58,2019,37.51119,126.7095,
86
+ 1733,Kocaeli and Tarsus - Izocam workers have called off the strikes. Incident closed.,"Izocam workers have called off the strikes at two factories across Turkey. The strikes were originally called in the factory in Kocaeli, near Kiplasma Cd and Refik Baydur Cd, and in a factory at an unspecified location in Tarsus, in Mersin Province. This incident is closed.",Minor,Miscellaneous Strikes,Turkey,16/1/19 23:33,2019,40.82164,29.55738,
87
+ 1775,Major Raids Target Opposition After Local Elections Inflict Losses to United Russia s Control,"On Thursday, authorities raided over 200 sites across more than 40 cities in Russia. The operation was targeting opposition activists and entities and has been denounced as a political crackdown in retaliation for President Vladimir Putin s party suffering losses in last Sunday s local elections. While the Kremlin maintains a strong grip across Russia, opponent Alexey Navalny s smart voting plan is believed to have contributed to the erosion of United Russia s control of local office seats. Combined with sustained summer protests and increasing discontent with the status quo, the Kremlin will likely take further measures trying to thwart growth and unification of opposing forces, though activists continue to show resilience to such efforts. As well as possible protests over the crackdown and disputed election results, demonstrations over an array of other grievances may be met by crackdowns and other efforts by authorities to quash expressions of opposition and discontent.
88
+
89
+ Recent Developments
90
+
91
+ From early Thursday morning, police carried out raids in 43 cities across the country in a sweeping crackdown on opposition politicians and their supporters. The raids happened four days after local elections around Russia, which saw President Vladimir Putin s United Russia party take serious hits. During the operation Thursday, offices of opposition leader Alexey Navalny s Anti-Corruption Foundation (FBK) had equipment seized as part of an investigation launched in August for alleged money laundering, with homes searched as well. According to the FBK chief of staff, both employees and volunteers with the foundation had equipment, documents, mobile phones, and funds seized by authorities. As a result of a raid in Chelyabinsk, multiple staff at the targeted office received medical treatment on site but were not hospitalized. During searches of FBK offices in Saransk, an activist was struck and injured by a police vehicle. Election monitoring non-governmental organization Golos also reported raids Thursday targeting the homes of its activists. More than 1,000 officers were involved in the raids, and Navalny claimed more than 200 locations were searched.
92
+
93
+ The highest-profile battle over local elections occurred in Moscow, with election officials preventing or disqualifying an array of candidates for local posts, sparking sustained protests frequently marred by clashes and heavy crackdowns. However, Navalny advocated a system of smart voting intended to encourage people to vote for the candidate in each race considered most likely to beat United Russia or other Kremlin-backed candidates. United Russia lost more than a third of the Moscow city council seats it had previously held, with the result largely attributed to tactical voting. In addition to reported voting irregularities on Sunday, there were reports of violence and other forms of intimidation linked to the elections. A poll monitor at a station in St Petersburg who had filed a formal complaint over a voter registration matter was punched by a man who then left, while police on scene made no effort to respond. Another observer had been punched in the face several times heading into the same polling station that morning.
94
+
95
+ Election results have spurred additional protest activity in some locations around Russia, including sustained protests in Siberia s Buryatia region. At least 17 activists have been detained by authorities in Ulan-Ude while disputing the mayoral election results for the regional capital. Police contended the activists had thrown a tear gas canister at officers, while media outlets have reported police threw the tear gas canister inside a bus of activists. Potentially as an effort to defuse tensions, a rally has been authorized by Ulan-Ude officials for Sunday evening, though unauthorized protests remain possible.
96
+
97
+ Background
98
+
99
+ The refusal to register an array of opposition candidates for Moscow s local elections sparked some of the largest sustained protests in Russia in recent years. The largest demonstration drew about 60,000 participants, while thousands frequently turned out to protests in the run-up to elections, even despite major crackdowns on unauthorized gatherings. More than 2,000 people were detained during election-related protests over the summer, with some facing brief jail terms while others facing charges of mass unrest could receive lengthy jail sentences. Controversy over several issues, including pension reform, poverty and other economic concerns, as well as topics such as wildfires and waste management continue to drive discontent with the ruling powers in the country. Overt and aggressive crackdowns on protests, censorship and internet restrictions, and blatant election rigging continue to be sources of potential protest activity over perceived injustices.Assessment
100
+
101
+ Navalny supporters contend that the raids and money laundering allegations are being used to strike back at opponents of Putin and the ruling elite, particularly targeting those who backed smart voting tactics, protests, and other measures to combat Putin and United Russia s grasp on power around the country. The smart voting tactics have been invoked in other elections around the world, and could be used in future Russian elections. The method of concentrating votes with any single opposing candidate to defeat a Kremlin-supported candidate could remain more challenging to thwart. While United Russia secured victory in many regional elections, the party had substantial losses in local elections around the country.
102
+
103
+ Despite the ousting of an array of Kremlin-backed candidates with the tactic of smart voting, Communists and candidates from other smaller parties who were the primary victors from such methods generally remain at least somewhat influenced by the Kremlin. Nonetheless, in Moscow, no candidate from United Russia was on the ballot, with candidates previously with the party or otherwise pro-Kremlin opting to run as independent due to perceived discontent in the capital with the ruling party. Such a development highlights the growing challenges to the Kremlin s grasp on power amidst increasing disapproval of the status quo in Russia.
104
+
105
+ A heavy-handed approach to opposition forces may deter some supporters and damage the networks and resources of Navalny s FBK. However, crackdowns can also spur resistance to such tactics and opposition activists have shown resilience and innovation to authorities efforts to stifle them. While the wave of protests during the summer has tapered off, additional demonstrations over the latest election, crackdowns, and other efforts to repress opposition supporters are possible. In conjunction, any unauthorized demonstration in Russia may face a swift crackdown by police and the Kremlin may pursue additional actions to combat any suspected erosion of support and power in the country. Resilience360 customers are advised to continue monitoring associated developments in the post-election period and to avoid any demonstration activity in Russia due to the risk of mass detentions and clashes with authorities.",Moderate,Political Crackdown / Opposition Movement,Russia,14/9/19 0:16,2019,,,
106
+ 1777,Malaysia and Singapore De-Escalate Maritime Dispute; Should Prevent Additional Incidents,"On Thursday, Malaysia and Singapore agreed to de-escalate their maritime dispute by reverting their port limits. Malaysia agreed to return Johor Baru port limits to their pre-October 2018 boundaries, while Singapore reverted its port limits to pre-December 2018 lines. The extensions had caused the port limits to overlap. Both countries have said that they will start negotiations over the disputed maritime border within a month. Singapore and Malaysia also agreed to not authorize commercial activities or anchor government vessels in the disputed area, as well as to follow international maritime law to avoid any incidents.
107
+
108
+
109
+ Assessment: The maritime boundary extensions caused the relationship between the two countries to deteriorate and also resulted in confusion for international shippers. There was a minor incident in February after a Malaysian vessel collided with a Greek ship in waters claimed by Singapore that highlighted the dispute but did not result in major shipping disruptions. The return to the status quo and an adherence to international law should prevent any further maritime incidents. The negotiations will also seek to resolve disputes regarding the price Singapore pays for Malaysian water and Singapore s management of a small part of Malaysian airspace over southern Johor. Resilience360 customers with interests in bilateral relations between the two countries are advised to monitor the progress of negotiations.",Moderate,Maritime Advisory,Malaysia,16/3/19 0:22,2019,,,
110
+ 1778,Malaysia Detained Crew After Greek Ship Collided with Malaysian Vessel near Johor Baru Port,"On Saturday, a Greece-registered ship collided with the Malaysia-registered Polaris, a vessel that lays buoys, near Johor Baru Port in waters claimed by Singapore. The collision occurred while the Greek ship was headed to Tanjung Pelepas in Malaysia. There were no reports of any oil leaks or injuries associated with the collision, or any impacts to maritime shipping. The crew of the Greek ship was detained by the Malaysian Marine Department (Mardep) after the collision. Following the incident, Singapore called on Malaysia to withdraw its ships from Singapore s waters.
111
+
112
+ Assessment: Saturday s incident highlights the disputes over airspace and sea territory between Malaysia and Singapore that began last year. In 2018, the Malaysian government extended its port limits into Johor, and Malaysian vessels started entering waters that are claimed by Singapore. Singapore disputed the port limit extension, and its foreign minister has called on Malaysia to comply with international law. Bilateral talks held last month between the nations proved unsuccessful. The ongoing territorial dispute can cause confusion for vessels entering the Johor area, and increase the risk of safety hazards such as collisions. Although the likelihood of direct conflict between Singapore and Malaysia is low, Resilience360 customers are advised to exercise caution if travelling in the Johor area.",Moderate,Maritime Accident/Ground Transportation Advisory,Singapore,11/2/19 23:10,2019,1.44703,103.76346,
113
+ 1784,Malta - Negotiations on Saturday reportedly ended with agreement; vote to be held on Monday.,"Fuel station owners affiliated with the General Retailers and Traders Union (GRTU) have suspended the nationwide strike across Malta during a meeting with Energy Ministry officials on Saturday. Updated sources stated that the negotiations on Saturday were positive and ended with an agreement; a vote on accepting the agreement will be held on Monday.
114
+
115
+ The strike began on Tuesday, January 22, following an unsuccessful meeting with Energy Ministry officials to discuss the possibility of the government funding expensive renovations that most fuel stations are required to complete per a directive issued by the European Union. Fuel stations across Malta have been shutting down their pumps beginning at 6:00 PM local time during the strike, not allowing motorists to purchase fuel past that time.",Moderate,Miscellaneous Strikes,Malta,22/1/19 13:42,2019,35.89564,14.50828,
116
+ 1815,Metro Manila and Rizal Province to Experience Water Interruptions Due to Insufficient Supply,"On Wednesday, Manila Water announced that it was implementing a revised water interruption program in the Metro Manila area and Rizal Province to deal with insufficient water supplies. Customers may experience between six and 21 hours of service interruptions, while water pressure may be lower than usual. The water interruptions will be first impacting the East Zone of Metro Manila, including the Makati, Mandaluyong, Pasig, Pateros, San Juan, Taguig, and Marikina areas, parts of Quezon City and Manila, as well as the Angono and Antipolo areas of Rizal Province.
117
+
118
+
119
+ Assessment: The water restriction program is expected to last for the next three months or until the rainy season begins. The dry season typically ends in May, but has been extended due to the El Nino weather phenomenon. El Nino is one of the causes of the recent shortage, but another main cause is a significant increase in demand. Manila Water has said that it will prioritize hospitals and school areas, while water tankers would be provided to households and commercial establishments. Updates from Manila Water regarding specific areas, dates, and times of service interruptions can be found at https://www.manilawater.com/customer/advisories/service-advisories , https://www.facebook.com/manilawater/ , and https://twitter.com/ManilaWaterPH . Resilience360 customers are advised to expect water service disruptions, which could intensify in the coming months, until the rainy season begins.",Moderate,"Public Utilities Disruption, Water Restriction Program",Philippines,13/3/19 21:28,2019,,,
120
+ 1824,"Minor At Tangiers' Tanger-Med port, Tanger-Tetouan-Al Hoceima Region,...","At Tangiers' Tanger-Med port, Tanger-Tetouan-Al Hoceima Region, security forces foiled an attempt to smuggle 2.200 tonnes of drugs, according to an official statement.",Minor,Maritime Advisory,Morocco,16/10/19 11:24,2019,,,
121
+ 1828,"Minor In Barcelona, striking port stevedores attempted to block access to...","In Barcelona, striking port stevedores attempted to block access to the cruise ship terminal; local Mossos d'Esquadra police physically removed them.",Minor,Maritime Accident/Ground Transportation Advisory,Spain,21/10/19 14:44,2019,,,
122
+ 1848,Moll de Llevant - Fire on Marina Barcelona 92 ship brought under control. Incident closed.,Updated reports indicate that firefighters have brought under control a fire that broke out in pallets on a Marina Barcelona 92 ship located near Moll de Llevant. No injuries or damage to ships were reported. There were no reports of disruptions to port operations. This incident is closed.,Moderate,Maritime Accident,Spain,6/9/19 13:04,2019,41.36601,2.18598,
123
+ 1855,MQM Worker Killed in Overnight Shooting,"Pakistani media sources report that a worker from the Muttahida Qaumi Movement (MQM) was killed in a gun attack in Karachi late Monday. Another MQM worker was injured in the incident, which involved six gunmen on motorcycles who opened fire on the MQM-P union council (UC) office in the New Karachi area of the city. The assailants fled the scene and reportedly remain at large.
124
+
125
+ Assessment: No group immediately claimed credit for the attack, and the motivation behind it remains unclear. In the past, secular-minded parties such as MQM have been targeted by Islamist militant groups, including in Karachi. The MQM has also come under pressure from the Pakistani security establishment, which has waged a crackdown against the party in recent years. From a security standpoint, demonstrations and labor strikes are common in association with acts of political violence in Pakistan, most of which are accompanied by rioting and other forms of civil unrest. Although no specific details have been announced in this regard, Resilience360 customers in Karachi should monitor local media outlets for associated security developments.",Moderate,"Death / Injury, Individuals in Focus, Public Safety / Security, Public Transportation Disruption, Roadway Closure / Disruption",Pakistan,12/2/19 21:40,2019,,,
126
+ 1858,Mundra and Kandla Ports in Gujarat Put on Alert Due to Threat; Similar Alerts Issued Previously,"On Thursday, it was reported that the Mundra Port and Kandla Port in Gujarat State have been put on high alert due to a potential terror threat. The alert originated from intelligence agencies regarding the possibility that Pakistan-trained commandos had infiltrated the Gulf of Kutch after two single-engine Pakistani boats were found in the Harami Nala area. The ports have instructed shipping agents and vessels to report any suspicious activity to the Coast Guard or other authorities at the ports. Security at the ports has also been increased, although there were no initial reports of disruptions to maritime shipping. Around 60 personnel have been deployed at checkpoints at ports, who are also equipped with devices to puncture the tires of vehicles that may attempt to break through barriers. Around 100 Central Industrial Security Force (CISF) commandos have also been deployed to the Nayara Energy oil refinery in the Vadinagar area of Gujarat.
127
+
128
+ Assessment: The alert on Thursday followed reports earlier in the week from Navy Chief Admiral Karambir Singh, who said that the Pakistan-based Jaish-e-Mohammad (JeM) militant group was training individuals to carry out underwater attacks. Admiral Singh said that the navy was fully prepared to foil such attacks. Reports about Pakistan s military training JeM divers to carry out attacks are not new and have been mentioned last year and the year before, although the targets were reportedly Indian Navy vessels. It remains questionable that JeM has the capabilities to carry out that kind of underwater attack, as they have not displayed similar capabilities in the past. In addition, there are a multitude of easier methods to carry out an attack on port facilities that do not involve underwater diving training and the transportation and use of more advanced explosives. It is also important to note that Indian intelligence agencies issue hundreds of alerts every year, with the vast majority not resulting in an attack. Resilience360 customers are advised to follow instructions issued by port authorities to maintain an elevated level of vigilance and expect an increased security presence at ports, which could result in maritime shipping delays.",Moderate,Maritime Advisory,India,29/8/19 22:43,2019,22.83827,69.72853,
129
+ 1922,Operation Brock Initiated on M20 in Kent as Preparation for Possible No-Deal Brexit Congestion,"On Monday, authorities initiated Operation Brock on the M20 in Kent as part of the government s plan to manage gridlock in the event of a no-deal Brexit. The system to manage truck and passenger vehicle traffic to and from the Kentish coast, including the port of Dover, is being coordinated with Kent police and local authorities along the motorway. The operation includes the coast-bound side of the M20 between Junctions 8 (Maidstone) and 9 (Ashford) being solely for truck traffic heading to Dover, serving as a holding space for trucks during congestion periods, though truck traffic remained free-flowing Monday. The dedicated 14-mile stretch will enable trucks to move along based on truck congestion levels, while all other traffic moving in both coast- and London-bound directions travels on the London-bound side of the motorway. The London-bound side in the affected stretch is thus divided with barriers for two lanes of traffic to the coast and two lanes of traffic to London. The anticipated duration of Operation Brock was not immediately announced by authorities.
130
+
131
+ Assessment: With a potential Brexit date recently pushed back to at least April 12, questions have been raised about the purpose of continuing with the no-deal contingency scenario at this time. Operation Brock is a replacement of the previous M20 traffic management system called Operation Stack. In the new system, up to 11,000 trucks are expected to be able to fit into the M20 queuing procedure. Should further space be required, the government has backup provisions for directing trucks to the disused Manston airport as well as the coast bound M26. Although government officials have said checks would not be carried out at Dover in the short term following a no-deal Brexit to avoid heavy disruption, the Dover Harbour Board warned last week that an increase of two minutes per vehicle bound for France undergoing checks could result in 17-mile queues. Resilience360 customers are advised to anticipate possible disruptions while Operation Brock remains in effect and to continue monitoring associated developments that may impact cross-Channel traffic and the United Kingdom s planned separation from the European Union.",Moderate,Ground Transportation Advisory / Brexit Contingency / Government Plan / Traffic Management / Border Control / Cross-Channel Traffic,United Kingdom,25/3/19 20:56,2019,51.14663,0.87603,
132
+ 1950,Over 100 Protesters Detained at Anti-Government Demonstration in Managua on Saturday,"On Saturday, hundreds of supporters of the Civic Alliance opposition coalition gathered for a demonstration in downtown Managua. The action was intended to protest against the administration of incumbent President Daniel Ortega, and to demand the release of political prisoners. As Ortega s government had previously outlawed anti-government demonstrations, security forces rapidly descended on the scene and forcibly dispersed the crowd with truncheons, tear gas, and rubber bullets. Nicaraguan authorities claimed that 107 protesters were detained for violating public order. The opposition claimed that 164 demonstrators were detained, and that six had been wounded by rubber bullets. Multiple news outlets and non-governmental organizations have claimed that several journalists that were covering the demonstration were assaulted by police and/or robbed of their cellphones. There were no reports of injuries among law enforcement personnel.
133
+
134
+ Assessment: Political leaders from the United States, Uruguay, and multiple European countries condemned the actions taken by Nicaraguan authorities on Saturday. Representatives of the European Union called on the Ortega administration to respect the principles of freedom of peaceful assembly and freedom of the press. Nicaragua s opposition movement claims that 770 people have been imprisoned on spurious, politically motivated charges since civil unrest broke out across Nicaragua last April. The government freed 112 detainees in late February, and 50 more were transferred to house arrest on March 15th. Nevertheless, members of the Civic Alliance have deemed the concessions to be inadequate, and the issue remains one of the major sticking points preventing the two sides from resuming negotiations.
135
+
136
+ As no solution to Nicaragua s ongoing political crisis appears to be within sight, similar bouts of anti-government protest activity and ensuing clashes with security forces will likely continue to sporadically crop up in the coming weeks and months. Resilience360 continues to advise customers to avoid non-essential travel to the country, due to the risks posed by civil unrest and the government s arbitrary enforcement of laws.",Moderate,Protest / Riot,Nicaragua,18/3/19 23:49,2019,,,
137
+ 1975,Philippines Warns China over Thitu (Pag-asa) Island in the South China Sea; Protest Held in Manila,"On Saturday, President Rodrigo Duterte warned China that occupying Thitu (Pag-asa) Island in the South China Sea would risk starting a war. His statements were in response the presence of around 200 Chinese fishing vessels around the Sandy Cay area, which the Philippine government has called illegal. The Philippine Navy has monitored around 600 Chinese vessels coming and going in the first quarter of the year. A protest was also held on Tuesday outside the Chinese Embassy in Manila, where around 1,000 demonstrators demanded that President Duterte take a stronger stance towards China.
138
+
139
+
140
+ Assessment: Thitu Island is occupied by the Philippines but is also claimed by China, Taiwan, and Vietnam. Despite the strong rhetoric from President Duterte, it is unlikely that China or the Philippines would risk a major military conflict over the presence of fishing boats near Thitu Island. President Duterte has sought a closer alliance with China, especially in economic matters, and China is prepared to offer the Philippines large loans towards infrastructure projects. However, accidents or minor skirmishes involving vessels from the two countries could lead to a deterioration in relations and increase the risk of additional protests against Chinese interests. Resilience360 customers are advised to monitor the situation and avoid all areas where protests are taking place.",Moderate,Maritime Advisory,Philippines,9/4/19 20:19,2019,,,
141
+ 1997,Pipeline Leak in Yvelines Raises Prospect of Grandpuits Refinery Shutdown,"At about 10:35 PM local time Sunday, an alarm was set off indicating a pressure drop along the Ile-de-France pipeline (PLIF) due to a crude oil leak in an area of fields in Autouillet, Yvelines department. Several rivers in Vicq, Boissy-sans-Avoir, and Autouillet (R le Lieutel, R de Breuil, and R de la Coquerie) were also impacted by the underground hydrocarbon spill. The prefecture said up to about 17 acres of fields were affected by the leak, with gendarmerie reporting up to 30 acres impacted overall. The leak has been halted and the pipeline depressurized. The company said that the exact cause of the leak was under investigation, and that the affected stretch of pipeline was being excavated as part of that process. Pumping trucks have been deployed to recover oil and the impacted land is being excavated and removed with the use of construction equipment, with the cleanup process expected to take multiple months.
142
+
143
+ Assessment: The approximately 166-mile pipeline connected the port of Le Havre to the Grandpuits refinery, and it is operated by Total to transport primarily crude oil. The Grandpuits refinery is planned to reduce operations gradually this week as reserves decrease, though the exact timing and duration for a prospective shutdown of the refinery was not yet announced. The PLIF had suffered a leak in May 2014 near Le Havre, and there have been calls for increased monitoring and upgrading of underground pipeline, particularly with regard to aging infrastructure. The 2014 spill caused the refinery to shut down for three weeks. However, Total insisted that there is not a shortage risk for fuel supplies in Ile-de-France. Resilience360 customers are advised to continue monitoring associated developments that may impact refinery operations, fuel supply, and fuel prices while the pipeline remains out of operation and the Grandpuits refinery has reduced or halted operations.",Moderate,Hazmat Response,France,27/2/19 0:13,2019,48.84937,1.80379,
144
+ 10,14 miles NE of Jakarta - A magnitude 4.5 earthquake was detected in the region. Incident closed.,"A magnitude 4.5 earthquake was detected 14 miles northeast of Jakarta, Indonesia. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Indonesia,24/9/18 18:33,2018,-6.1,107.02,
145
+ 11,17 miles SW of Batangas - A magnitude 5.5 earthquake was detected in Batangas Bay. Incident closed.,"Multiple sources report that a magnitude 5.5 earthquake was detected in the Batangas Bay, approximately 17 miles southwest of Batangas, Philippines. There have been no reports of associated injuries or structural damage. This incident is closed.",,Earthquake,Philippines,31/8/18 15:04,2018,13.556,120.903,
146
+ 16,23 miles ESE of Taichung City- A magnitude 4.5 earthquake struck in central Taiwan. Incident closed.,"A magnitude 4.5 earthquake was detected in central Taiwan, approximately 23 miles east-southeast of Taichung City. There were no initial reports of associated injuries or structural damage. This incident is closed.",Moderate,Earthquake,Taiwan,17/8/18 10:40,2018,24.02,121.03,
147
+ 20,33 miles SE of Valencia A magnitude 4.0 earthquake struck in the Mediterranean Sea. Incident closed.,The European-Mediterranean Seismological Centre reported that a magnitude 4.0 earthquake struck approximately 33 miles southeast of Valencia in the Mediterranean Sea. There were no reports of injuries or major structural damage. This incident is closed.,Moderate,Earthquake,Spain,17/10/18 6:06,2018,39.23,0.16,
148
+ 1981,Philippines: Magnitude 6.2 earthquake recorded south of Davao Oriental Province,"The United States Geological Survey (USGS) has recorded a magnitude 6.2 earthquake today, 29 September, south of Davao Oriental Province. The quake occurred at a depth of 76.1 kilometers at 10:02 local time. Preliminary reports do not indicate if any damage or injuries have resulted.",Severe,Earthquake,Philippines,29/9/19 3:35,2019,6.35667,126.18441,
149
+ 1982,"Philippines: Magnitude 6.5 earthquake strikes near Makilala, Cotabato Province; damages reported","The United States Geological Survey (USGS) has recorded a magnitude 6.5 earthquake today (31 October) near Makilala. The quake was recorded at a depth of 10 kilometers or less at approximately 09:11 local time. Initial reports show Eva's Hotel in Kidapawan City partially collapsed, with injuries unconfirmed. Additionally, a multi-story structure in Davao City has sustained damage as well. Further reports of damages are likely to emerge, as this is the second earthquake over 6.0 magnitude to strike the area in recent days and infrastructure may be weakened.",Severe,,Philippines,31/10/19 1:50,2019,6.92343,125.08286,
150
+ 2587,"UPDATE - Philippines: Casualties confirmed following earthquake near Tulunan, Cotabato Province","Recent reports confirm that casualties have occurred today (29 October) following a magnitude 6.6 earthquake near Tulunan. At least one person has died and more than 40 others are injured, with the majority in Kidapawan City and others in M'lang. Power outages have been recorded in areas of General Santos City, Polomok, Tacurong City, and Carmen. A number of structures have also sustained damage or have collapsed in several locations.",Severe,Earthquake,Philippines,29/10/19 6:20,2019,,,
151
+ 2589,"UPDATE - Philippines: Damages and injuries reported following magnitude 6.6 earthquake near Tulunan, Cotabato Province","Updated sources are reporting damages and injuries following a magnitude 6.6 earthquake that struck near Tulunan on Tuesday morning. The severity of injuries sustained has not been confirmed but media images depict a number of collapsed structures in Tulunan. Several local government units have reportedly cancelled classes across the island of Mindanao, including in North Cotabato, Davao City, Koronadal City, Digos City, and General Santos City, where government and private offices will also be closed. Evacuations have also been reported but specific details remain unconfirmed. The United States Geological Survey (USGS) has recorded at least two aftershock tremors at magnitudes of 5.0 and 5.8 in the region.",Severe,Earthquake,Philippines,29/10/19 3:25,2019,,,
152
+ 2593,UPDATE - Philippines: Several casualties and moderate damage reported following 6.3 magnitude earthquake in North Cotabato,"Updated reports state that a small number of casualties have occurred as a result of the earlier recorded 6.3 magnitude earthquake in North Cotabato. In addition, officials from Mindanao Island are reporting structural cracks to certain buildings and moderate infrastructure damage including power outages. The tremors were felt in Davao City, although the impact there is not believed to be extensive. Earthquakes are common in the region.",Severe,Earthquake,Philippines,16/10/19 15:55,2019,,,
153
+ 3124,178 Miles E of Taichung City - A magnitude 3.9 earthquake struck in the area. Incident closed.,"Government sources reported that a magnitude 3.9 earthquake struck approximately 178 miles east of Taichung City, Taiwan, in the Pacific Ocean. There were no immediate reports of injuries or major structural damage. This incident is closed.",Minor,Earthquake,Taiwan,22/1/20 3:43,2020,24.1,123.5,
154
+ 3135,42 miles N of San Antonio - A magnitude 4.3 earthquake struck in the region. Event closed.,"The European-Mediterranean Seismological Centre indicated that a magnitude 4.3 earthquake struck approximately 42 miles north of San Antonio, Puerto Rico. There were no reports of associated injuries or damage. This event is closed.",Moderate,Earthquake,Puerto Rico,19/2/20 0:48,2020,19.1,-67.22,
155
+ 3136,42 miles NW of San Antonio - The USGS reported a magnitude 4.5 earthquake. Incident closed.,"The U.S. Geological Survey reported a magnitude 4.5 earthquake located 42 miles northwest of San Antonio, Puerto Rico. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Puerto Rico,12/2/20 8:21,2020,18.94,-67.56,
156
+ 3142,72 miles W of San Antonio de los Cobres - A magnitude 4.3 earthquake has struck in the area. Event closed.,"The European-Mediterranean Seismological Centre is reporting a magnitude 4.3 earthquake located 72 miles west of San Antonio de los Cobres, Argentina. There have been no initial reports of associated injuries or damage. Event closed.
157
+ EMSC (European Mediterranean Seismological Centre) is a scientific international organization, which aggregates and provides information generated by national seismological agencies worldwide. EMSC presents earthquake data across several magnitude scales including local magnitude (ML), surface-wave magnitude (Ms), body-wave magnitude (Mb), and moment magnitude (Mw). All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Argentina,18/8/20 6:06,2020,,,
158
+ 3755,"Magnitude 5.1 earthquake reported 11 kilometres southeast of Digos City, Davao del Sur Province","The United States Geological Survey (USGS) is reporting a magnitude 5.1 earthquake 11 kilometres southeast of Digos City. The quake occurred at a depth of 35.2 kilometres at 01:44 local time. There is no tsunami advisory being issued for the incident.
159
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Philippines,30/8/20 21:40,2020,6.75751,125.3524,
160
+ 3756,"Magnitude 5.1 earthquake reported 12 kilometers north of Hachijo, Tokyo Prefecture","The United States Geological Survey has confirmed that a magnitude 5.1 earthquake has been recorded 12 kilometers north of Hachijo, Tokyo Prefecture. The quake occurred at a depth of 118 kilometers and no tsunami warning has been issued.
161
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Japan,25/9/20 17:35,2020,33.12568,139.80898,
162
+ 3757,"Magnitude 5.2 earthquake recorded 30 kilometers south of Sarangani, Davao Occidental Province","The United States Geological Survey (USGS) has recorded a magnitude 5.2 earthquake 30 kilometers south of Sarangani on Monday, 6 January. The quake occurred at a depth of 55.9 kilometers at approximately 15:25 local time. No tsunami warning has been issued at this time.",Moderate,Earthquake,Philippines,6/1/20 8:03,2020,5.41372,125.40147,
163
+ 3758,"Magnitude 5.3 earthquake reported 17 km west of Nasugbu, Batangas Province","The United States Geological Survey (USGS) has confirmed that a 5.3 magnitude earthquake has occurred 17 km west of Nasugbu. The quake was reported at a depth of 86 km and no information on structural damage or injuries has been announced.
164
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Philippines,9/5/20 20:09,2020,14.06667,120.63333,
165
+ 3759,Magnitude 6.2 earthquake reported north of Surabaya,"The US Geological Survey is reporting that a magnitude 6.2 earthquake, at a depth of 592.2 km, has occurred approximately 116 km north of Surbaya. There have been some reports of tremors having been felt although it is estimated that little or no population will be affected.",Severe,Earthquake,Indonesia,5/2/20 19:37,2020,-6.23324,112.93235,
166
+ 5715,"USGS reports magnitude 6.3 earthquake 4km southeast of Calatagan, Batangas Province","The United States Geological Survey (USGS) has recorded a magnitude 6.3 earthquake 4km southeast of Calatagan on Friday, 25 December. The quake has occurred at a depth of 114km at 07:43 local time. There has not been a tsunami warning issued and there are no immediate reports of damages, though they are possible due to the intensity of the tremor.
167
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Severe,Earthquake,Philippines,25/12/20 0:25,2020,13.83333,120.6333,
IS424_Data_Mining/code/LLM Evaluation/evaluation.ipynb ADDED
@@ -0,0 +1,1797 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 13,
6
+ "id": "52701550-0bda-4fa4-959f-2b42eb42e140",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "import pandas as pd"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 14,
16
+ "id": "8cb2dd41-79e1-45bf-a0eb-ff9abc0baa8b",
17
+ "metadata": {},
18
+ "outputs": [],
19
+ "source": [
20
+ "df = pd.read_csv(\"cleaned_data_with_categories.csv\")"
21
+ ]
22
+ },
23
+ {
24
+ "cell_type": "code",
25
+ "execution_count": 15,
26
+ "id": "c4e79890-de47-4774-9445-142cff46cf86",
27
+ "metadata": {},
28
+ "outputs": [
29
+ {
30
+ "data": {
31
+ "text/html": [
32
+ "<div>\n",
33
+ "<style scoped>\n",
34
+ " .dataframe tbody tr th:only-of-type {\n",
35
+ " vertical-align: middle;\n",
36
+ " }\n",
37
+ "\n",
38
+ " .dataframe tbody tr th {\n",
39
+ " vertical-align: top;\n",
40
+ " }\n",
41
+ "\n",
42
+ " .dataframe thead th {\n",
43
+ " text-align: right;\n",
44
+ " }\n",
45
+ "</style>\n",
46
+ "<table border=\"1\" class=\"dataframe\">\n",
47
+ " <thead>\n",
48
+ " <tr style=\"text-align: right;\">\n",
49
+ " <th></th>\n",
50
+ " <th>id</th>\n",
51
+ " <th>Headline</th>\n",
52
+ " <th>Summary</th>\n",
53
+ " <th>Severity</th>\n",
54
+ " <th>Category</th>\n",
55
+ " <th>Region</th>\n",
56
+ " <th>Datetime</th>\n",
57
+ " <th>Year</th>\n",
58
+ " <th>lat</th>\n",
59
+ " <th>lon</th>\n",
60
+ " <th>URL</th>\n",
61
+ " </tr>\n",
62
+ " </thead>\n",
63
+ " <tbody>\n",
64
+ " <tr>\n",
65
+ " <th>0</th>\n",
66
+ " <td>3</td>\n",
67
+ " <td>Shanghai port congestion impacts terminals in ...</td>\n",
68
+ " <td>The persisting port congestion at Shanghai’s...</td>\n",
69
+ " <td>Minor</td>\n",
70
+ " <td>Maritime Advisory</td>\n",
71
+ " <td>China</td>\n",
72
+ " <td>27/4/17 9:16</td>\n",
73
+ " <td>2017</td>\n",
74
+ " <td>29.52000</td>\n",
75
+ " <td>121.33190</td>\n",
76
+ " <td>NaN</td>\n",
77
+ " </tr>\n",
78
+ " <tr>\n",
79
+ " <th>1</th>\n",
80
+ " <td>17</td>\n",
81
+ " <td>24 hour pier hold in effect at Port of Durban</td>\n",
82
+ " <td>Industry sources indicate on August 31 that th...</td>\n",
83
+ " <td>Minor</td>\n",
84
+ " <td>Port Congestion</td>\n",
85
+ " <td>South Africa</td>\n",
86
+ " <td>31/8/18 18:07</td>\n",
87
+ " <td>2018</td>\n",
88
+ " <td>-29.86875</td>\n",
89
+ " <td>31.03305</td>\n",
90
+ " <td>NaN</td>\n",
91
+ " </tr>\n",
92
+ " <tr>\n",
93
+ " <th>2</th>\n",
94
+ " <td>1599</td>\n",
95
+ " <td>Heavy congestion reported at Port of Houston</td>\n",
96
+ " <td>According to sources on March 20, heavy conges...</td>\n",
97
+ " <td>Moderate</td>\n",
98
+ " <td>Port Congestion</td>\n",
99
+ " <td>United States</td>\n",
100
+ " <td>20/3/19 12:43</td>\n",
101
+ " <td>2019</td>\n",
102
+ " <td>29.60949</td>\n",
103
+ " <td>-95.00567</td>\n",
104
+ " <td>NaN</td>\n",
105
+ " </tr>\n",
106
+ " <tr>\n",
107
+ " <th>3</th>\n",
108
+ " <td>1600</td>\n",
109
+ " <td>Heavy congestion reported at Port of Long Beach</td>\n",
110
+ " <td>According to sources on January 7, heavy conge...</td>\n",
111
+ " <td>Severe</td>\n",
112
+ " <td>Port Congestion</td>\n",
113
+ " <td>United States</td>\n",
114
+ " <td>7/1/19 9:50</td>\n",
115
+ " <td>2019</td>\n",
116
+ " <td>33.75448</td>\n",
117
+ " <td>-118.21663</td>\n",
118
+ " <td>NaN</td>\n",
119
+ " </tr>\n",
120
+ " <tr>\n",
121
+ " <th>4</th>\n",
122
+ " <td>1613</td>\n",
123
+ " <td>High risk of pilot suspension reported at Port...</td>\n",
124
+ " <td>On December 31, shipping sources indicate that...</td>\n",
125
+ " <td>Minor</td>\n",
126
+ " <td>Severe Winds</td>\n",
127
+ " <td>Japan</td>\n",
128
+ " <td>31/12/19 10:23</td>\n",
129
+ " <td>2019</td>\n",
130
+ " <td>NaN</td>\n",
131
+ " <td>NaN</td>\n",
132
+ " <td>NaN</td>\n",
133
+ " </tr>\n",
134
+ " <tr>\n",
135
+ " <th>...</th>\n",
136
+ " <td>...</td>\n",
137
+ " <td>...</td>\n",
138
+ " <td>...</td>\n",
139
+ " <td>...</td>\n",
140
+ " <td>...</td>\n",
141
+ " <td>...</td>\n",
142
+ " <td>...</td>\n",
143
+ " <td>...</td>\n",
144
+ " <td>...</td>\n",
145
+ " <td>...</td>\n",
146
+ " <td>...</td>\n",
147
+ " </tr>\n",
148
+ " <tr>\n",
149
+ " <th>100</th>\n",
150
+ " <td>3756</td>\n",
151
+ " <td>Magnitude 5.1 earthquake reported 12 kilometer...</td>\n",
152
+ " <td>The United States Geological Survey has confir...</td>\n",
153
+ " <td>Moderate</td>\n",
154
+ " <td>Earthquake</td>\n",
155
+ " <td>Japan</td>\n",
156
+ " <td>25/9/20 17:35</td>\n",
157
+ " <td>2020</td>\n",
158
+ " <td>33.12568</td>\n",
159
+ " <td>139.80898</td>\n",
160
+ " <td>NaN</td>\n",
161
+ " </tr>\n",
162
+ " <tr>\n",
163
+ " <th>101</th>\n",
164
+ " <td>3757</td>\n",
165
+ " <td>Magnitude 5.2 earthquake recorded 30 kilometer...</td>\n",
166
+ " <td>The United States Geological Survey (USGS) has...</td>\n",
167
+ " <td>Moderate</td>\n",
168
+ " <td>Earthquake</td>\n",
169
+ " <td>Philippines</td>\n",
170
+ " <td>6/1/20 8:03</td>\n",
171
+ " <td>2020</td>\n",
172
+ " <td>5.41372</td>\n",
173
+ " <td>125.40147</td>\n",
174
+ " <td>NaN</td>\n",
175
+ " </tr>\n",
176
+ " <tr>\n",
177
+ " <th>102</th>\n",
178
+ " <td>3758</td>\n",
179
+ " <td>Magnitude 5.3 earthquake reported 17 km west o...</td>\n",
180
+ " <td>The United States Geological Survey (USGS) has...</td>\n",
181
+ " <td>Moderate</td>\n",
182
+ " <td>Earthquake</td>\n",
183
+ " <td>Philippines</td>\n",
184
+ " <td>9/5/20 20:09</td>\n",
185
+ " <td>2020</td>\n",
186
+ " <td>14.06667</td>\n",
187
+ " <td>120.63333</td>\n",
188
+ " <td>NaN</td>\n",
189
+ " </tr>\n",
190
+ " <tr>\n",
191
+ " <th>103</th>\n",
192
+ " <td>3759</td>\n",
193
+ " <td>Magnitude 6.2 earthquake reported north of Sur...</td>\n",
194
+ " <td>The US Geological Survey is reporting that a m...</td>\n",
195
+ " <td>Severe</td>\n",
196
+ " <td>Earthquake</td>\n",
197
+ " <td>Indonesia</td>\n",
198
+ " <td>5/2/20 19:37</td>\n",
199
+ " <td>2020</td>\n",
200
+ " <td>-6.23324</td>\n",
201
+ " <td>112.93235</td>\n",
202
+ " <td>NaN</td>\n",
203
+ " </tr>\n",
204
+ " <tr>\n",
205
+ " <th>104</th>\n",
206
+ " <td>5715</td>\n",
207
+ " <td>USGS reports magnitude 6.3 earthquake 4km sout...</td>\n",
208
+ " <td>The United States Geological Survey (USGS) has...</td>\n",
209
+ " <td>Severe</td>\n",
210
+ " <td>Earthquake</td>\n",
211
+ " <td>Philippines</td>\n",
212
+ " <td>25/12/20 0:25</td>\n",
213
+ " <td>2020</td>\n",
214
+ " <td>13.83333</td>\n",
215
+ " <td>120.63330</td>\n",
216
+ " <td>NaN</td>\n",
217
+ " </tr>\n",
218
+ " </tbody>\n",
219
+ "</table>\n",
220
+ "<p>105 rows × 11 columns</p>\n",
221
+ "</div>"
222
+ ],
223
+ "text/plain": [
224
+ " id Headline \\\n",
225
+ "0 3 Shanghai port congestion impacts terminals in ... \n",
226
+ "1 17 24 hour pier hold in effect at Port of Durban \n",
227
+ "2 1599 Heavy congestion reported at Port of Houston \n",
228
+ "3 1600 Heavy congestion reported at Port of Long Beach \n",
229
+ "4 1613 High risk of pilot suspension reported at Port... \n",
230
+ ".. ... ... \n",
231
+ "100 3756 Magnitude 5.1 earthquake reported 12 kilometer... \n",
232
+ "101 3757 Magnitude 5.2 earthquake recorded 30 kilometer... \n",
233
+ "102 3758 Magnitude 5.3 earthquake reported 17 km west o... \n",
234
+ "103 3759 Magnitude 6.2 earthquake reported north of Sur... \n",
235
+ "104 5715 USGS reports magnitude 6.3 earthquake 4km sout... \n",
236
+ "\n",
237
+ " Summary Severity \\\n",
238
+ "0 The persisting port congestion at Shanghai’s... Minor \n",
239
+ "1 Industry sources indicate on August 31 that th... Minor \n",
240
+ "2 According to sources on March 20, heavy conges... Moderate \n",
241
+ "3 According to sources on January 7, heavy conge... Severe \n",
242
+ "4 On December 31, shipping sources indicate that... Minor \n",
243
+ ".. ... ... \n",
244
+ "100 The United States Geological Survey has confir... Moderate \n",
245
+ "101 The United States Geological Survey (USGS) has... Moderate \n",
246
+ "102 The United States Geological Survey (USGS) has... Moderate \n",
247
+ "103 The US Geological Survey is reporting that a m... Severe \n",
248
+ "104 The United States Geological Survey (USGS) has... Severe \n",
249
+ "\n",
250
+ " Category Region Datetime Year lat \\\n",
251
+ "0 Maritime Advisory China 27/4/17 9:16 2017 29.52000 \n",
252
+ "1 Port Congestion South Africa 31/8/18 18:07 2018 -29.86875 \n",
253
+ "2 Port Congestion United States 20/3/19 12:43 2019 29.60949 \n",
254
+ "3 Port Congestion United States 7/1/19 9:50 2019 33.75448 \n",
255
+ "4 Severe Winds Japan 31/12/19 10:23 2019 NaN \n",
256
+ ".. ... ... ... ... ... \n",
257
+ "100 Earthquake Japan 25/9/20 17:35 2020 33.12568 \n",
258
+ "101 Earthquake Philippines 6/1/20 8:03 2020 5.41372 \n",
259
+ "102 Earthquake Philippines 9/5/20 20:09 2020 14.06667 \n",
260
+ "103 Earthquake Indonesia 5/2/20 19:37 2020 -6.23324 \n",
261
+ "104 Earthquake Philippines 25/12/20 0:25 2020 13.83333 \n",
262
+ "\n",
263
+ " lon URL \n",
264
+ "0 121.33190 NaN \n",
265
+ "1 31.03305 NaN \n",
266
+ "2 -95.00567 NaN \n",
267
+ "3 -118.21663 NaN \n",
268
+ "4 NaN NaN \n",
269
+ ".. ... ... \n",
270
+ "100 139.80898 NaN \n",
271
+ "101 125.40147 NaN \n",
272
+ "102 120.63333 NaN \n",
273
+ "103 112.93235 NaN \n",
274
+ "104 120.63330 NaN \n",
275
+ "\n",
276
+ "[105 rows x 11 columns]"
277
+ ]
278
+ },
279
+ "execution_count": 15,
280
+ "metadata": {},
281
+ "output_type": "execute_result"
282
+ }
283
+ ],
284
+ "source": [
285
+ "df"
286
+ ]
287
+ },
288
+ {
289
+ "cell_type": "code",
290
+ "execution_count": 16,
291
+ "id": "df3cdbd0-a8b4-4b6e-b5bf-5fdbb7ce93a3",
292
+ "metadata": {},
293
+ "outputs": [
294
+ {
295
+ "data": {
296
+ "text/html": [
297
+ "<div>\n",
298
+ "<style scoped>\n",
299
+ " .dataframe tbody tr th:only-of-type {\n",
300
+ " vertical-align: middle;\n",
301
+ " }\n",
302
+ "\n",
303
+ " .dataframe tbody tr th {\n",
304
+ " vertical-align: top;\n",
305
+ " }\n",
306
+ "\n",
307
+ " .dataframe thead th {\n",
308
+ " text-align: right;\n",
309
+ " }\n",
310
+ "</style>\n",
311
+ "<table border=\"1\" class=\"dataframe\">\n",
312
+ " <thead>\n",
313
+ " <tr style=\"text-align: right;\">\n",
314
+ " <th></th>\n",
315
+ " <th>id</th>\n",
316
+ " <th>Headline</th>\n",
317
+ " <th>Summary</th>\n",
318
+ " <th>Severity</th>\n",
319
+ " <th>Region</th>\n",
320
+ " <th>Datetime</th>\n",
321
+ " <th>Year</th>\n",
322
+ " <th>lat</th>\n",
323
+ " <th>lon</th>\n",
324
+ " <th>URL</th>\n",
325
+ " </tr>\n",
326
+ " <tr>\n",
327
+ " <th>Category</th>\n",
328
+ " <th></th>\n",
329
+ " <th></th>\n",
330
+ " <th></th>\n",
331
+ " <th></th>\n",
332
+ " <th></th>\n",
333
+ " <th></th>\n",
334
+ " <th></th>\n",
335
+ " <th></th>\n",
336
+ " <th></th>\n",
337
+ " <th></th>\n",
338
+ " </tr>\n",
339
+ " </thead>\n",
340
+ " <tbody>\n",
341
+ " <tr>\n",
342
+ " <th>Maritime Advisory</th>\n",
343
+ " <td>20</td>\n",
344
+ " <td>20</td>\n",
345
+ " <td>20</td>\n",
346
+ " <td>20</td>\n",
347
+ " <td>20</td>\n",
348
+ " <td>20</td>\n",
349
+ " <td>20</td>\n",
350
+ " <td>13</td>\n",
351
+ " <td>13</td>\n",
352
+ " <td>0</td>\n",
353
+ " </tr>\n",
354
+ " <tr>\n",
355
+ " <th>Earthquake</th>\n",
356
+ " <td>18</td>\n",
357
+ " <td>18</td>\n",
358
+ " <td>18</td>\n",
359
+ " <td>17</td>\n",
360
+ " <td>18</td>\n",
361
+ " <td>18</td>\n",
362
+ " <td>18</td>\n",
363
+ " <td>14</td>\n",
364
+ " <td>14</td>\n",
365
+ " <td>0</td>\n",
366
+ " </tr>\n",
367
+ " <tr>\n",
368
+ " <th>Port Congestion</th>\n",
369
+ " <td>13</td>\n",
370
+ " <td>13</td>\n",
371
+ " <td>13</td>\n",
372
+ " <td>13</td>\n",
373
+ " <td>13</td>\n",
374
+ " <td>13</td>\n",
375
+ " <td>13</td>\n",
376
+ " <td>11</td>\n",
377
+ " <td>11</td>\n",
378
+ " <td>0</td>\n",
379
+ " </tr>\n",
380
+ " <tr>\n",
381
+ " <th>Severe Winds</th>\n",
382
+ " <td>7</td>\n",
383
+ " <td>7</td>\n",
384
+ " <td>7</td>\n",
385
+ " <td>7</td>\n",
386
+ " <td>7</td>\n",
387
+ " <td>7</td>\n",
388
+ " <td>7</td>\n",
389
+ " <td>3</td>\n",
390
+ " <td>3</td>\n",
391
+ " <td>0</td>\n",
392
+ " </tr>\n",
393
+ " <tr>\n",
394
+ " <th>Port Disruption</th>\n",
395
+ " <td>6</td>\n",
396
+ " <td>6</td>\n",
397
+ " <td>6</td>\n",
398
+ " <td>6</td>\n",
399
+ " <td>6</td>\n",
400
+ " <td>6</td>\n",
401
+ " <td>6</td>\n",
402
+ " <td>4</td>\n",
403
+ " <td>4</td>\n",
404
+ " <td>0</td>\n",
405
+ " </tr>\n",
406
+ " <tr>\n",
407
+ " <th>Port Closure</th>\n",
408
+ " <td>5</td>\n",
409
+ " <td>5</td>\n",
410
+ " <td>5</td>\n",
411
+ " <td>5</td>\n",
412
+ " <td>5</td>\n",
413
+ " <td>5</td>\n",
414
+ " <td>5</td>\n",
415
+ " <td>2</td>\n",
416
+ " <td>2</td>\n",
417
+ " <td>0</td>\n",
418
+ " </tr>\n",
419
+ " <tr>\n",
420
+ " <th>Miscellaneous Strikes</th>\n",
421
+ " <td>3</td>\n",
422
+ " <td>3</td>\n",
423
+ " <td>3</td>\n",
424
+ " <td>3</td>\n",
425
+ " <td>3</td>\n",
426
+ " <td>3</td>\n",
427
+ " <td>3</td>\n",
428
+ " <td>3</td>\n",
429
+ " <td>3</td>\n",
430
+ " <td>0</td>\n",
431
+ " </tr>\n",
432
+ " <tr>\n",
433
+ " <th>Maritime Accident</th>\n",
434
+ " <td>2</td>\n",
435
+ " <td>2</td>\n",
436
+ " <td>2</td>\n",
437
+ " <td>2</td>\n",
438
+ " <td>2</td>\n",
439
+ " <td>2</td>\n",
440
+ " <td>2</td>\n",
441
+ " <td>2</td>\n",
442
+ " <td>2</td>\n",
443
+ " <td>0</td>\n",
444
+ " </tr>\n",
445
+ " <tr>\n",
446
+ " <th>Maritime Accident/Ground Transportation Advisory</th>\n",
447
+ " <td>2</td>\n",
448
+ " <td>2</td>\n",
449
+ " <td>2</td>\n",
450
+ " <td>2</td>\n",
451
+ " <td>2</td>\n",
452
+ " <td>2</td>\n",
453
+ " <td>2</td>\n",
454
+ " <td>1</td>\n",
455
+ " <td>1</td>\n",
456
+ " <td>0</td>\n",
457
+ " </tr>\n",
458
+ " <tr>\n",
459
+ " <th>Tropical Cyclone / Storm, Severe Winds, Flooding, Evacuation, Air Travel Disruption, Port Closure, Power Outage, Public Safety / Security, Weather Advisory, Travel Warning</th>\n",
460
+ " <td>1</td>\n",
461
+ " <td>1</td>\n",
462
+ " <td>1</td>\n",
463
+ " <td>1</td>\n",
464
+ " <td>1</td>\n",
465
+ " <td>1</td>\n",
466
+ " <td>1</td>\n",
467
+ " <td>1</td>\n",
468
+ " <td>1</td>\n",
469
+ " <td>0</td>\n",
470
+ " </tr>\n",
471
+ " <tr>\n",
472
+ " <th>Tropical Cyclone / Storm</th>\n",
473
+ " <td>1</td>\n",
474
+ " <td>1</td>\n",
475
+ " <td>1</td>\n",
476
+ " <td>1</td>\n",
477
+ " <td>1</td>\n",
478
+ " <td>1</td>\n",
479
+ " <td>1</td>\n",
480
+ " <td>0</td>\n",
481
+ " <td>0</td>\n",
482
+ " <td>0</td>\n",
483
+ " </tr>\n",
484
+ " <tr>\n",
485
+ " <th>Public Utilities Disruption, Water Restriction Program</th>\n",
486
+ " <td>1</td>\n",
487
+ " <td>1</td>\n",
488
+ " <td>1</td>\n",
489
+ " <td>1</td>\n",
490
+ " <td>1</td>\n",
491
+ " <td>1</td>\n",
492
+ " <td>1</td>\n",
493
+ " <td>0</td>\n",
494
+ " <td>0</td>\n",
495
+ " <td>0</td>\n",
496
+ " </tr>\n",
497
+ " <tr>\n",
498
+ " <th>Protest/Riot, Port Disruption, Cargo Disruption, Climate Change</th>\n",
499
+ " <td>1</td>\n",
500
+ " <td>1</td>\n",
501
+ " <td>1</td>\n",
502
+ " <td>1</td>\n",
503
+ " <td>1</td>\n",
504
+ " <td>1</td>\n",
505
+ " <td>1</td>\n",
506
+ " <td>1</td>\n",
507
+ " <td>1</td>\n",
508
+ " <td>0</td>\n",
509
+ " </tr>\n",
510
+ " <tr>\n",
511
+ " <th>Protest / Riot, Public Safety / Security, Public Transportation Disruption, Police Operations, Roadway Closure / Disruption, Hazmat Response, Bombing</th>\n",
512
+ " <td>1</td>\n",
513
+ " <td>1</td>\n",
514
+ " <td>1</td>\n",
515
+ " <td>1</td>\n",
516
+ " <td>1</td>\n",
517
+ " <td>1</td>\n",
518
+ " <td>1</td>\n",
519
+ " <td>0</td>\n",
520
+ " <td>0</td>\n",
521
+ " <td>0</td>\n",
522
+ " </tr>\n",
523
+ " <tr>\n",
524
+ " <th>Protest / Riot</th>\n",
525
+ " <td>1</td>\n",
526
+ " <td>1</td>\n",
527
+ " <td>1</td>\n",
528
+ " <td>1</td>\n",
529
+ " <td>1</td>\n",
530
+ " <td>1</td>\n",
531
+ " <td>1</td>\n",
532
+ " <td>0</td>\n",
533
+ " <td>0</td>\n",
534
+ " <td>0</td>\n",
535
+ " </tr>\n",
536
+ " <tr>\n",
537
+ " <th>Cargo Disruption</th>\n",
538
+ " <td>1</td>\n",
539
+ " <td>1</td>\n",
540
+ " <td>1</td>\n",
541
+ " <td>1</td>\n",
542
+ " <td>1</td>\n",
543
+ " <td>1</td>\n",
544
+ " <td>1</td>\n",
545
+ " <td>1</td>\n",
546
+ " <td>1</td>\n",
547
+ " <td>0</td>\n",
548
+ " </tr>\n",
549
+ " <tr>\n",
550
+ " <th>Political Crackdown / Opposition Movement</th>\n",
551
+ " <td>1</td>\n",
552
+ " <td>1</td>\n",
553
+ " <td>1</td>\n",
554
+ " <td>1</td>\n",
555
+ " <td>1</td>\n",
556
+ " <td>1</td>\n",
557
+ " <td>1</td>\n",
558
+ " <td>0</td>\n",
559
+ " <td>0</td>\n",
560
+ " <td>0</td>\n",
561
+ " </tr>\n",
562
+ " <tr>\n",
563
+ " <th>Chemical Spill, Maritime Accident, Port Disruption, Hazmat Response, Public Safety / Security</th>\n",
564
+ " <td>1</td>\n",
565
+ " <td>1</td>\n",
566
+ " <td>1</td>\n",
567
+ " <td>1</td>\n",
568
+ " <td>1</td>\n",
569
+ " <td>1</td>\n",
570
+ " <td>1</td>\n",
571
+ " <td>1</td>\n",
572
+ " <td>1</td>\n",
573
+ " <td>0</td>\n",
574
+ " </tr>\n",
575
+ " <tr>\n",
576
+ " <th>Maritime Accident/Port Disruption</th>\n",
577
+ " <td>1</td>\n",
578
+ " <td>1</td>\n",
579
+ " <td>1</td>\n",
580
+ " <td>1</td>\n",
581
+ " <td>1</td>\n",
582
+ " <td>1</td>\n",
583
+ " <td>1</td>\n",
584
+ " <td>0</td>\n",
585
+ " <td>0</td>\n",
586
+ " <td>0</td>\n",
587
+ " </tr>\n",
588
+ " <tr>\n",
589
+ " <th>Maritime Accident, Maritime Advisory, Police Operations, Maritime Accident/Ground Transportation Advisory</th>\n",
590
+ " <td>1</td>\n",
591
+ " <td>1</td>\n",
592
+ " <td>1</td>\n",
593
+ " <td>1</td>\n",
594
+ " <td>1</td>\n",
595
+ " <td>1</td>\n",
596
+ " <td>1</td>\n",
597
+ " <td>0</td>\n",
598
+ " <td>0</td>\n",
599
+ " <td>0</td>\n",
600
+ " </tr>\n",
601
+ " <tr>\n",
602
+ " <th>Maritime Accident / Hazmat Response</th>\n",
603
+ " <td>1</td>\n",
604
+ " <td>1</td>\n",
605
+ " <td>1</td>\n",
606
+ " <td>1</td>\n",
607
+ " <td>1</td>\n",
608
+ " <td>1</td>\n",
609
+ " <td>1</td>\n",
610
+ " <td>1</td>\n",
611
+ " <td>1</td>\n",
612
+ " <td>0</td>\n",
613
+ " </tr>\n",
614
+ " <tr>\n",
615
+ " <th>Industrial Action, Maritime Advisory, Miscellaneous Strikes, Public Safety / Security</th>\n",
616
+ " <td>1</td>\n",
617
+ " <td>1</td>\n",
618
+ " <td>1</td>\n",
619
+ " <td>1</td>\n",
620
+ " <td>1</td>\n",
621
+ " <td>1</td>\n",
622
+ " <td>1</td>\n",
623
+ " <td>0</td>\n",
624
+ " <td>0</td>\n",
625
+ " <td>0</td>\n",
626
+ " </tr>\n",
627
+ " <tr>\n",
628
+ " <th>Hazmat Response</th>\n",
629
+ " <td>1</td>\n",
630
+ " <td>1</td>\n",
631
+ " <td>1</td>\n",
632
+ " <td>1</td>\n",
633
+ " <td>1</td>\n",
634
+ " <td>1</td>\n",
635
+ " <td>1</td>\n",
636
+ " <td>1</td>\n",
637
+ " <td>1</td>\n",
638
+ " <td>0</td>\n",
639
+ " </tr>\n",
640
+ " <tr>\n",
641
+ " <th>Ground Transportation Advisory / Brexit Contingency / Government Plan / Traffic Management / Border Control / Cross-Channel Traffic</th>\n",
642
+ " <td>1</td>\n",
643
+ " <td>1</td>\n",
644
+ " <td>1</td>\n",
645
+ " <td>1</td>\n",
646
+ " <td>1</td>\n",
647
+ " <td>1</td>\n",
648
+ " <td>1</td>\n",
649
+ " <td>1</td>\n",
650
+ " <td>1</td>\n",
651
+ " <td>0</td>\n",
652
+ " </tr>\n",
653
+ " <tr>\n",
654
+ " <th>Ground Transportation Advisory</th>\n",
655
+ " <td>1</td>\n",
656
+ " <td>1</td>\n",
657
+ " <td>1</td>\n",
658
+ " <td>1</td>\n",
659
+ " <td>1</td>\n",
660
+ " <td>1</td>\n",
661
+ " <td>1</td>\n",
662
+ " <td>1</td>\n",
663
+ " <td>1</td>\n",
664
+ " <td>0</td>\n",
665
+ " </tr>\n",
666
+ " <tr>\n",
667
+ " <th>Death / Injury, Individuals in Focus, Public Safety / Security, Public Transportation Disruption, Roadway Closure / Disruption</th>\n",
668
+ " <td>1</td>\n",
669
+ " <td>1</td>\n",
670
+ " <td>1</td>\n",
671
+ " <td>1</td>\n",
672
+ " <td>1</td>\n",
673
+ " <td>1</td>\n",
674
+ " <td>1</td>\n",
675
+ " <td>0</td>\n",
676
+ " <td>0</td>\n",
677
+ " <td>0</td>\n",
678
+ " </tr>\n",
679
+ " <tr>\n",
680
+ " <th>Weather Advisory</th>\n",
681
+ " <td>1</td>\n",
682
+ " <td>1</td>\n",
683
+ " <td>1</td>\n",
684
+ " <td>1</td>\n",
685
+ " <td>1</td>\n",
686
+ " <td>1</td>\n",
687
+ " <td>1</td>\n",
688
+ " <td>1</td>\n",
689
+ " <td>1</td>\n",
690
+ " <td>0</td>\n",
691
+ " </tr>\n",
692
+ " </tbody>\n",
693
+ "</table>\n",
694
+ "</div>"
695
+ ],
696
+ "text/plain": [
697
+ " id Headline Summary \\\n",
698
+ "Category \n",
699
+ "Maritime Advisory 20 20 20 \n",
700
+ "Earthquake 18 18 18 \n",
701
+ "Port Congestion 13 13 13 \n",
702
+ "Severe Winds 7 7 7 \n",
703
+ "Port Disruption 6 6 6 \n",
704
+ "Port Closure 5 5 5 \n",
705
+ "Miscellaneous Strikes 3 3 3 \n",
706
+ "Maritime Accident 2 2 2 \n",
707
+ "Maritime Accident/Ground Transportation Advisory 2 2 2 \n",
708
+ "Tropical Cyclone / Storm, Severe Winds, Floodin... 1 1 1 \n",
709
+ "Tropical Cyclone / Storm 1 1 1 \n",
710
+ "Public Utilities Disruption, Water Restriction ... 1 1 1 \n",
711
+ "Protest/Riot, Port Disruption, Cargo Disruption... 1 1 1 \n",
712
+ "Protest / Riot, Public Safety / Security, Publi... 1 1 1 \n",
713
+ "Protest / Riot 1 1 1 \n",
714
+ "Cargo Disruption 1 1 1 \n",
715
+ "Political Crackdown / Opposition Movement 1 1 1 \n",
716
+ "Chemical Spill, Maritime Accident, Port Disrupt... 1 1 1 \n",
717
+ "Maritime Accident/Port Disruption 1 1 1 \n",
718
+ "Maritime Accident, Maritime Advisory, Police Op... 1 1 1 \n",
719
+ "Maritime Accident / Hazmat Response 1 1 1 \n",
720
+ "Industrial Action, Maritime Advisory, Miscellan... 1 1 1 \n",
721
+ "Hazmat Response 1 1 1 \n",
722
+ "Ground Transportation Advisory / Brexit Conting... 1 1 1 \n",
723
+ "Ground Transportation Advisory 1 1 1 \n",
724
+ "Death / Injury, Individuals in Focus, Public Sa... 1 1 1 \n",
725
+ "Weather Advisory 1 1 1 \n",
726
+ "\n",
727
+ " Severity Region \\\n",
728
+ "Category \n",
729
+ "Maritime Advisory 20 20 \n",
730
+ "Earthquake 17 18 \n",
731
+ "Port Congestion 13 13 \n",
732
+ "Severe Winds 7 7 \n",
733
+ "Port Disruption 6 6 \n",
734
+ "Port Closure 5 5 \n",
735
+ "Miscellaneous Strikes 3 3 \n",
736
+ "Maritime Accident 2 2 \n",
737
+ "Maritime Accident/Ground Transportation Advisory 2 2 \n",
738
+ "Tropical Cyclone / Storm, Severe Winds, Floodin... 1 1 \n",
739
+ "Tropical Cyclone / Storm 1 1 \n",
740
+ "Public Utilities Disruption, Water Restriction ... 1 1 \n",
741
+ "Protest/Riot, Port Disruption, Cargo Disruption... 1 1 \n",
742
+ "Protest / Riot, Public Safety / Security, Publi... 1 1 \n",
743
+ "Protest / Riot 1 1 \n",
744
+ "Cargo Disruption 1 1 \n",
745
+ "Political Crackdown / Opposition Movement 1 1 \n",
746
+ "Chemical Spill, Maritime Accident, Port Disrupt... 1 1 \n",
747
+ "Maritime Accident/Port Disruption 1 1 \n",
748
+ "Maritime Accident, Maritime Advisory, Police Op... 1 1 \n",
749
+ "Maritime Accident / Hazmat Response 1 1 \n",
750
+ "Industrial Action, Maritime Advisory, Miscellan... 1 1 \n",
751
+ "Hazmat Response 1 1 \n",
752
+ "Ground Transportation Advisory / Brexit Conting... 1 1 \n",
753
+ "Ground Transportation Advisory 1 1 \n",
754
+ "Death / Injury, Individuals in Focus, Public Sa... 1 1 \n",
755
+ "Weather Advisory 1 1 \n",
756
+ "\n",
757
+ " Datetime Year lat lon \\\n",
758
+ "Category \n",
759
+ "Maritime Advisory 20 20 13 13 \n",
760
+ "Earthquake 18 18 14 14 \n",
761
+ "Port Congestion 13 13 11 11 \n",
762
+ "Severe Winds 7 7 3 3 \n",
763
+ "Port Disruption 6 6 4 4 \n",
764
+ "Port Closure 5 5 2 2 \n",
765
+ "Miscellaneous Strikes 3 3 3 3 \n",
766
+ "Maritime Accident 2 2 2 2 \n",
767
+ "Maritime Accident/Ground Transportation Advisory 2 2 1 1 \n",
768
+ "Tropical Cyclone / Storm, Severe Winds, Floodin... 1 1 1 1 \n",
769
+ "Tropical Cyclone / Storm 1 1 0 0 \n",
770
+ "Public Utilities Disruption, Water Restriction ... 1 1 0 0 \n",
771
+ "Protest/Riot, Port Disruption, Cargo Disruption... 1 1 1 1 \n",
772
+ "Protest / Riot, Public Safety / Security, Publi... 1 1 0 0 \n",
773
+ "Protest / Riot 1 1 0 0 \n",
774
+ "Cargo Disruption 1 1 1 1 \n",
775
+ "Political Crackdown / Opposition Movement 1 1 0 0 \n",
776
+ "Chemical Spill, Maritime Accident, Port Disrupt... 1 1 1 1 \n",
777
+ "Maritime Accident/Port Disruption 1 1 0 0 \n",
778
+ "Maritime Accident, Maritime Advisory, Police Op... 1 1 0 0 \n",
779
+ "Maritime Accident / Hazmat Response 1 1 1 1 \n",
780
+ "Industrial Action, Maritime Advisory, Miscellan... 1 1 0 0 \n",
781
+ "Hazmat Response 1 1 1 1 \n",
782
+ "Ground Transportation Advisory / Brexit Conting... 1 1 1 1 \n",
783
+ "Ground Transportation Advisory 1 1 1 1 \n",
784
+ "Death / Injury, Individuals in Focus, Public Sa... 1 1 0 0 \n",
785
+ "Weather Advisory 1 1 1 1 \n",
786
+ "\n",
787
+ " URL \n",
788
+ "Category \n",
789
+ "Maritime Advisory 0 \n",
790
+ "Earthquake 0 \n",
791
+ "Port Congestion 0 \n",
792
+ "Severe Winds 0 \n",
793
+ "Port Disruption 0 \n",
794
+ "Port Closure 0 \n",
795
+ "Miscellaneous Strikes 0 \n",
796
+ "Maritime Accident 0 \n",
797
+ "Maritime Accident/Ground Transportation Advisory 0 \n",
798
+ "Tropical Cyclone / Storm, Severe Winds, Floodin... 0 \n",
799
+ "Tropical Cyclone / Storm 0 \n",
800
+ "Public Utilities Disruption, Water Restriction ... 0 \n",
801
+ "Protest/Riot, Port Disruption, Cargo Disruption... 0 \n",
802
+ "Protest / Riot, Public Safety / Security, Publi... 0 \n",
803
+ "Protest / Riot 0 \n",
804
+ "Cargo Disruption 0 \n",
805
+ "Political Crackdown / Opposition Movement 0 \n",
806
+ "Chemical Spill, Maritime Accident, Port Disrupt... 0 \n",
807
+ "Maritime Accident/Port Disruption 0 \n",
808
+ "Maritime Accident, Maritime Advisory, Police Op... 0 \n",
809
+ "Maritime Accident / Hazmat Response 0 \n",
810
+ "Industrial Action, Maritime Advisory, Miscellan... 0 \n",
811
+ "Hazmat Response 0 \n",
812
+ "Ground Transportation Advisory / Brexit Conting... 0 \n",
813
+ "Ground Transportation Advisory 0 \n",
814
+ "Death / Injury, Individuals in Focus, Public Sa... 0 \n",
815
+ "Weather Advisory 0 "
816
+ ]
817
+ },
818
+ "execution_count": 16,
819
+ "metadata": {},
820
+ "output_type": "execute_result"
821
+ }
822
+ ],
823
+ "source": [
824
+ "df_sorted = df.groupby(\"Category\").count().sort_values(by='id', ascending = False)\n",
825
+ "df_sorted"
826
+ ]
827
+ },
828
+ {
829
+ "cell_type": "code",
830
+ "execution_count": 17,
831
+ "id": "d3ddee2c-946c-4ee5-b0ba-31ac6d201261",
832
+ "metadata": {},
833
+ "outputs": [],
834
+ "source": [
835
+ "# Function to determine the value for the new column\n",
836
+ "def categorize(value):\n",
837
+ " if '/' in str(value) or ',' in str(value):\n",
838
+ " return 'Miscellaneous Events'\n",
839
+ " else:\n",
840
+ " return value"
841
+ ]
842
+ },
843
+ {
844
+ "cell_type": "code",
845
+ "execution_count": 18,
846
+ "id": "b470266e-00c1-4d4c-8738-28b4fde2dcc6",
847
+ "metadata": {},
848
+ "outputs": [],
849
+ "source": [
850
+ "df['GPT Generated Result'] = df['Category'].apply(categorize)"
851
+ ]
852
+ },
853
+ {
854
+ "cell_type": "code",
855
+ "execution_count": 19,
856
+ "id": "4d5d7300-a663-4394-979e-cf7c5d4f88d5",
857
+ "metadata": {},
858
+ "outputs": [
859
+ {
860
+ "data": {
861
+ "text/html": [
862
+ "<div>\n",
863
+ "<style scoped>\n",
864
+ " .dataframe tbody tr th:only-of-type {\n",
865
+ " vertical-align: middle;\n",
866
+ " }\n",
867
+ "\n",
868
+ " .dataframe tbody tr th {\n",
869
+ " vertical-align: top;\n",
870
+ " }\n",
871
+ "\n",
872
+ " .dataframe thead th {\n",
873
+ " text-align: right;\n",
874
+ " }\n",
875
+ "</style>\n",
876
+ "<table border=\"1\" class=\"dataframe\">\n",
877
+ " <thead>\n",
878
+ " <tr style=\"text-align: right;\">\n",
879
+ " <th></th>\n",
880
+ " <th>id</th>\n",
881
+ " <th>Headline</th>\n",
882
+ " <th>Summary</th>\n",
883
+ " <th>Severity</th>\n",
884
+ " <th>Category</th>\n",
885
+ " <th>Region</th>\n",
886
+ " <th>Datetime</th>\n",
887
+ " <th>Year</th>\n",
888
+ " <th>lat</th>\n",
889
+ " <th>lon</th>\n",
890
+ " <th>URL</th>\n",
891
+ " </tr>\n",
892
+ " <tr>\n",
893
+ " <th>GPT Generated Result</th>\n",
894
+ " <th></th>\n",
895
+ " <th></th>\n",
896
+ " <th></th>\n",
897
+ " <th></th>\n",
898
+ " <th></th>\n",
899
+ " <th></th>\n",
900
+ " <th></th>\n",
901
+ " <th></th>\n",
902
+ " <th></th>\n",
903
+ " <th></th>\n",
904
+ " <th></th>\n",
905
+ " </tr>\n",
906
+ " </thead>\n",
907
+ " <tbody>\n",
908
+ " <tr>\n",
909
+ " <th>Maritime Advisory</th>\n",
910
+ " <td>20</td>\n",
911
+ " <td>20</td>\n",
912
+ " <td>20</td>\n",
913
+ " <td>20</td>\n",
914
+ " <td>20</td>\n",
915
+ " <td>20</td>\n",
916
+ " <td>20</td>\n",
917
+ " <td>20</td>\n",
918
+ " <td>13</td>\n",
919
+ " <td>13</td>\n",
920
+ " <td>0</td>\n",
921
+ " </tr>\n",
922
+ " <tr>\n",
923
+ " <th>Earthquake</th>\n",
924
+ " <td>18</td>\n",
925
+ " <td>18</td>\n",
926
+ " <td>18</td>\n",
927
+ " <td>17</td>\n",
928
+ " <td>18</td>\n",
929
+ " <td>18</td>\n",
930
+ " <td>18</td>\n",
931
+ " <td>18</td>\n",
932
+ " <td>14</td>\n",
933
+ " <td>14</td>\n",
934
+ " <td>0</td>\n",
935
+ " </tr>\n",
936
+ " <tr>\n",
937
+ " <th>Miscellaneous Events</th>\n",
938
+ " <td>16</td>\n",
939
+ " <td>16</td>\n",
940
+ " <td>16</td>\n",
941
+ " <td>16</td>\n",
942
+ " <td>16</td>\n",
943
+ " <td>16</td>\n",
944
+ " <td>16</td>\n",
945
+ " <td>16</td>\n",
946
+ " <td>6</td>\n",
947
+ " <td>6</td>\n",
948
+ " <td>0</td>\n",
949
+ " </tr>\n",
950
+ " <tr>\n",
951
+ " <th>Port Congestion</th>\n",
952
+ " <td>13</td>\n",
953
+ " <td>13</td>\n",
954
+ " <td>13</td>\n",
955
+ " <td>13</td>\n",
956
+ " <td>13</td>\n",
957
+ " <td>13</td>\n",
958
+ " <td>13</td>\n",
959
+ " <td>13</td>\n",
960
+ " <td>11</td>\n",
961
+ " <td>11</td>\n",
962
+ " <td>0</td>\n",
963
+ " </tr>\n",
964
+ " <tr>\n",
965
+ " <th>Severe Winds</th>\n",
966
+ " <td>7</td>\n",
967
+ " <td>7</td>\n",
968
+ " <td>7</td>\n",
969
+ " <td>7</td>\n",
970
+ " <td>7</td>\n",
971
+ " <td>7</td>\n",
972
+ " <td>7</td>\n",
973
+ " <td>7</td>\n",
974
+ " <td>3</td>\n",
975
+ " <td>3</td>\n",
976
+ " <td>0</td>\n",
977
+ " </tr>\n",
978
+ " <tr>\n",
979
+ " <th>Port Disruption</th>\n",
980
+ " <td>6</td>\n",
981
+ " <td>6</td>\n",
982
+ " <td>6</td>\n",
983
+ " <td>6</td>\n",
984
+ " <td>6</td>\n",
985
+ " <td>6</td>\n",
986
+ " <td>6</td>\n",
987
+ " <td>6</td>\n",
988
+ " <td>4</td>\n",
989
+ " <td>4</td>\n",
990
+ " <td>0</td>\n",
991
+ " </tr>\n",
992
+ " <tr>\n",
993
+ " <th>Port Closure</th>\n",
994
+ " <td>5</td>\n",
995
+ " <td>5</td>\n",
996
+ " <td>5</td>\n",
997
+ " <td>5</td>\n",
998
+ " <td>5</td>\n",
999
+ " <td>5</td>\n",
1000
+ " <td>5</td>\n",
1001
+ " <td>5</td>\n",
1002
+ " <td>2</td>\n",
1003
+ " <td>2</td>\n",
1004
+ " <td>0</td>\n",
1005
+ " </tr>\n",
1006
+ " <tr>\n",
1007
+ " <th>Miscellaneous Strikes</th>\n",
1008
+ " <td>3</td>\n",
1009
+ " <td>3</td>\n",
1010
+ " <td>3</td>\n",
1011
+ " <td>3</td>\n",
1012
+ " <td>3</td>\n",
1013
+ " <td>3</td>\n",
1014
+ " <td>3</td>\n",
1015
+ " <td>3</td>\n",
1016
+ " <td>3</td>\n",
1017
+ " <td>3</td>\n",
1018
+ " <td>0</td>\n",
1019
+ " </tr>\n",
1020
+ " <tr>\n",
1021
+ " <th>Maritime Accident</th>\n",
1022
+ " <td>2</td>\n",
1023
+ " <td>2</td>\n",
1024
+ " <td>2</td>\n",
1025
+ " <td>2</td>\n",
1026
+ " <td>2</td>\n",
1027
+ " <td>2</td>\n",
1028
+ " <td>2</td>\n",
1029
+ " <td>2</td>\n",
1030
+ " <td>2</td>\n",
1031
+ " <td>2</td>\n",
1032
+ " <td>0</td>\n",
1033
+ " </tr>\n",
1034
+ " <tr>\n",
1035
+ " <th>Cargo Disruption</th>\n",
1036
+ " <td>1</td>\n",
1037
+ " <td>1</td>\n",
1038
+ " <td>1</td>\n",
1039
+ " <td>1</td>\n",
1040
+ " <td>1</td>\n",
1041
+ " <td>1</td>\n",
1042
+ " <td>1</td>\n",
1043
+ " <td>1</td>\n",
1044
+ " <td>1</td>\n",
1045
+ " <td>1</td>\n",
1046
+ " <td>0</td>\n",
1047
+ " </tr>\n",
1048
+ " <tr>\n",
1049
+ " <th>Ground Transportation Advisory</th>\n",
1050
+ " <td>1</td>\n",
1051
+ " <td>1</td>\n",
1052
+ " <td>1</td>\n",
1053
+ " <td>1</td>\n",
1054
+ " <td>1</td>\n",
1055
+ " <td>1</td>\n",
1056
+ " <td>1</td>\n",
1057
+ " <td>1</td>\n",
1058
+ " <td>1</td>\n",
1059
+ " <td>1</td>\n",
1060
+ " <td>0</td>\n",
1061
+ " </tr>\n",
1062
+ " <tr>\n",
1063
+ " <th>Hazmat Response</th>\n",
1064
+ " <td>1</td>\n",
1065
+ " <td>1</td>\n",
1066
+ " <td>1</td>\n",
1067
+ " <td>1</td>\n",
1068
+ " <td>1</td>\n",
1069
+ " <td>1</td>\n",
1070
+ " <td>1</td>\n",
1071
+ " <td>1</td>\n",
1072
+ " <td>1</td>\n",
1073
+ " <td>1</td>\n",
1074
+ " <td>0</td>\n",
1075
+ " </tr>\n",
1076
+ " <tr>\n",
1077
+ " <th>Weather Advisory</th>\n",
1078
+ " <td>1</td>\n",
1079
+ " <td>1</td>\n",
1080
+ " <td>1</td>\n",
1081
+ " <td>1</td>\n",
1082
+ " <td>1</td>\n",
1083
+ " <td>1</td>\n",
1084
+ " <td>1</td>\n",
1085
+ " <td>1</td>\n",
1086
+ " <td>1</td>\n",
1087
+ " <td>1</td>\n",
1088
+ " <td>0</td>\n",
1089
+ " </tr>\n",
1090
+ " </tbody>\n",
1091
+ "</table>\n",
1092
+ "</div>"
1093
+ ],
1094
+ "text/plain": [
1095
+ " id Headline Summary Severity Category \\\n",
1096
+ "GPT Generated Result \n",
1097
+ "Maritime Advisory 20 20 20 20 20 \n",
1098
+ "Earthquake 18 18 18 17 18 \n",
1099
+ "Miscellaneous Events 16 16 16 16 16 \n",
1100
+ "Port Congestion 13 13 13 13 13 \n",
1101
+ "Severe Winds 7 7 7 7 7 \n",
1102
+ "Port Disruption 6 6 6 6 6 \n",
1103
+ "Port Closure 5 5 5 5 5 \n",
1104
+ "Miscellaneous Strikes 3 3 3 3 3 \n",
1105
+ "Maritime Accident 2 2 2 2 2 \n",
1106
+ "Cargo Disruption 1 1 1 1 1 \n",
1107
+ "Ground Transportation Advisory 1 1 1 1 1 \n",
1108
+ "Hazmat Response 1 1 1 1 1 \n",
1109
+ "Weather Advisory 1 1 1 1 1 \n",
1110
+ "\n",
1111
+ " Region Datetime Year lat lon URL \n",
1112
+ "GPT Generated Result \n",
1113
+ "Maritime Advisory 20 20 20 13 13 0 \n",
1114
+ "Earthquake 18 18 18 14 14 0 \n",
1115
+ "Miscellaneous Events 16 16 16 6 6 0 \n",
1116
+ "Port Congestion 13 13 13 11 11 0 \n",
1117
+ "Severe Winds 7 7 7 3 3 0 \n",
1118
+ "Port Disruption 6 6 6 4 4 0 \n",
1119
+ "Port Closure 5 5 5 2 2 0 \n",
1120
+ "Miscellaneous Strikes 3 3 3 3 3 0 \n",
1121
+ "Maritime Accident 2 2 2 2 2 0 \n",
1122
+ "Cargo Disruption 1 1 1 1 1 0 \n",
1123
+ "Ground Transportation Advisory 1 1 1 1 1 0 \n",
1124
+ "Hazmat Response 1 1 1 1 1 0 \n",
1125
+ "Weather Advisory 1 1 1 1 1 0 "
1126
+ ]
1127
+ },
1128
+ "execution_count": 19,
1129
+ "metadata": {},
1130
+ "output_type": "execute_result"
1131
+ }
1132
+ ],
1133
+ "source": [
1134
+ "df_sorted1 = df.groupby(\"GPT Generated Result\").count().sort_values(by='id', ascending = False)\n",
1135
+ "df_sorted1"
1136
+ ]
1137
+ },
1138
+ {
1139
+ "cell_type": "code",
1140
+ "execution_count": 20,
1141
+ "id": "6dbe0ac2-4ac6-4d75-9fa7-c856b9370269",
1142
+ "metadata": {},
1143
+ "outputs": [],
1144
+ "source": [
1145
+ "df.to_csv('result.csv')"
1146
+ ]
1147
+ },
1148
+ {
1149
+ "cell_type": "code",
1150
+ "execution_count": null,
1151
+ "id": "5dfe7870-c29c-4942-8301-f5e8b1bd9994",
1152
+ "metadata": {},
1153
+ "outputs": [],
1154
+ "source": []
1155
+ },
1156
+ {
1157
+ "cell_type": "code",
1158
+ "execution_count": 21,
1159
+ "id": "dc6007d3-c6bd-4bc3-8ccc-099440354ce8",
1160
+ "metadata": {},
1161
+ "outputs": [
1162
+ {
1163
+ "data": {
1164
+ "text/html": [
1165
+ "<div>\n",
1166
+ "<style scoped>\n",
1167
+ " .dataframe tbody tr th:only-of-type {\n",
1168
+ " vertical-align: middle;\n",
1169
+ " }\n",
1170
+ "\n",
1171
+ " .dataframe tbody tr th {\n",
1172
+ " vertical-align: top;\n",
1173
+ " }\n",
1174
+ "\n",
1175
+ " .dataframe thead th {\n",
1176
+ " text-align: right;\n",
1177
+ " }\n",
1178
+ "</style>\n",
1179
+ "<table border=\"1\" class=\"dataframe\">\n",
1180
+ " <thead>\n",
1181
+ " <tr style=\"text-align: right;\">\n",
1182
+ " <th></th>\n",
1183
+ " <th>Unnamed: 0</th>\n",
1184
+ " <th>id</th>\n",
1185
+ " <th>Headline</th>\n",
1186
+ " <th>Summary</th>\n",
1187
+ " <th>Severity</th>\n",
1188
+ " <th>Category_GoldenResult</th>\n",
1189
+ " <th>Category_GPT</th>\n",
1190
+ " <th>Region</th>\n",
1191
+ " <th>Datetime</th>\n",
1192
+ " <th>Year</th>\n",
1193
+ " <th>lat</th>\n",
1194
+ " <th>lon</th>\n",
1195
+ " <th>URL</th>\n",
1196
+ " <th>GPT Generated Result</th>\n",
1197
+ " <th>Result_Golden</th>\n",
1198
+ " <th>Result_GPT</th>\n",
1199
+ " </tr>\n",
1200
+ " </thead>\n",
1201
+ " <tbody>\n",
1202
+ " <tr>\n",
1203
+ " <th>0</th>\n",
1204
+ " <td>86</td>\n",
1205
+ " <td>10</td>\n",
1206
+ " <td>14 miles NE of Jakarta - A magnitude 4.5 earth...</td>\n",
1207
+ " <td>A magnitude 4.5 earthquake was detected 14 mil...</td>\n",
1208
+ " <td>Moderate</td>\n",
1209
+ " <td>Earthquake</td>\n",
1210
+ " <td>Earthquake</td>\n",
1211
+ " <td>Indonesia</td>\n",
1212
+ " <td>24/9/18 18:33</td>\n",
1213
+ " <td>2018</td>\n",
1214
+ " <td>-6.10000</td>\n",
1215
+ " <td>107.02000</td>\n",
1216
+ " <td>NaN</td>\n",
1217
+ " <td>Earthquake</td>\n",
1218
+ " <td>True</td>\n",
1219
+ " <td>True</td>\n",
1220
+ " </tr>\n",
1221
+ " <tr>\n",
1222
+ " <th>1</th>\n",
1223
+ " <td>87</td>\n",
1224
+ " <td>11</td>\n",
1225
+ " <td>17 miles SW of Batangas - A magnitude 5.5 eart...</td>\n",
1226
+ " <td>Multiple sources report that a magnitude 5.5 e...</td>\n",
1227
+ " <td>NaN</td>\n",
1228
+ " <td>Earthquake</td>\n",
1229
+ " <td>Earthquake</td>\n",
1230
+ " <td>Philippines</td>\n",
1231
+ " <td>31/8/18 15:04</td>\n",
1232
+ " <td>2018</td>\n",
1233
+ " <td>13.55600</td>\n",
1234
+ " <td>120.90300</td>\n",
1235
+ " <td>NaN</td>\n",
1236
+ " <td>Earthquake</td>\n",
1237
+ " <td>True</td>\n",
1238
+ " <td>True</td>\n",
1239
+ " </tr>\n",
1240
+ " <tr>\n",
1241
+ " <th>2</th>\n",
1242
+ " <td>88</td>\n",
1243
+ " <td>16</td>\n",
1244
+ " <td>23 miles ESE of Taichung City- A magnitude 4.5...</td>\n",
1245
+ " <td>A magnitude 4.5 earthquake was detected in cen...</td>\n",
1246
+ " <td>Moderate</td>\n",
1247
+ " <td>Earthquake</td>\n",
1248
+ " <td>Earthquake</td>\n",
1249
+ " <td>Taiwan</td>\n",
1250
+ " <td>17/8/18 10:40</td>\n",
1251
+ " <td>2018</td>\n",
1252
+ " <td>24.02000</td>\n",
1253
+ " <td>121.03000</td>\n",
1254
+ " <td>NaN</td>\n",
1255
+ " <td>Earthquake</td>\n",
1256
+ " <td>True</td>\n",
1257
+ " <td>True</td>\n",
1258
+ " </tr>\n",
1259
+ " <tr>\n",
1260
+ " <th>3</th>\n",
1261
+ " <td>89</td>\n",
1262
+ " <td>20</td>\n",
1263
+ " <td>33 miles SE of Valencia A magnitude 4.0 earthq...</td>\n",
1264
+ " <td>The European-Mediterranean Seismological Centr...</td>\n",
1265
+ " <td>Moderate</td>\n",
1266
+ " <td>Earthquake</td>\n",
1267
+ " <td>Earthquake</td>\n",
1268
+ " <td>Spain</td>\n",
1269
+ " <td>17/10/18 6:06</td>\n",
1270
+ " <td>2018</td>\n",
1271
+ " <td>39.23000</td>\n",
1272
+ " <td>0.16000</td>\n",
1273
+ " <td>NaN</td>\n",
1274
+ " <td>Earthquake</td>\n",
1275
+ " <td>True</td>\n",
1276
+ " <td>True</td>\n",
1277
+ " </tr>\n",
1278
+ " <tr>\n",
1279
+ " <th>4</th>\n",
1280
+ " <td>90</td>\n",
1281
+ " <td>1981</td>\n",
1282
+ " <td>Philippines: Magnitude 6.2 earthquake recorded...</td>\n",
1283
+ " <td>The United States Geological Survey (USGS) has...</td>\n",
1284
+ " <td>Severe</td>\n",
1285
+ " <td>Earthquake</td>\n",
1286
+ " <td>Earthquake</td>\n",
1287
+ " <td>Philippines</td>\n",
1288
+ " <td>29/9/19 3:35</td>\n",
1289
+ " <td>2019</td>\n",
1290
+ " <td>6.35667</td>\n",
1291
+ " <td>126.18441</td>\n",
1292
+ " <td>NaN</td>\n",
1293
+ " <td>Earthquake</td>\n",
1294
+ " <td>True</td>\n",
1295
+ " <td>True</td>\n",
1296
+ " </tr>\n",
1297
+ " <tr>\n",
1298
+ " <th>...</th>\n",
1299
+ " <td>...</td>\n",
1300
+ " <td>...</td>\n",
1301
+ " <td>...</td>\n",
1302
+ " <td>...</td>\n",
1303
+ " <td>...</td>\n",
1304
+ " <td>...</td>\n",
1305
+ " <td>...</td>\n",
1306
+ " <td>...</td>\n",
1307
+ " <td>...</td>\n",
1308
+ " <td>...</td>\n",
1309
+ " <td>...</td>\n",
1310
+ " <td>...</td>\n",
1311
+ " <td>...</td>\n",
1312
+ " <td>...</td>\n",
1313
+ " <td>...</td>\n",
1314
+ " <td>...</td>\n",
1315
+ " </tr>\n",
1316
+ " <tr>\n",
1317
+ " <th>94</th>\n",
1318
+ " <td>53</td>\n",
1319
+ " <td>2824</td>\n",
1320
+ " <td>UPDATE: High winds still causing port disrupti...</td>\n",
1321
+ " <td>Industry sources on April 23 indicate that hig...</td>\n",
1322
+ " <td>Moderate</td>\n",
1323
+ " <td>Port Congestion</td>\n",
1324
+ " <td>Weather Advisory</td>\n",
1325
+ " <td>Saudi Arabia</td>\n",
1326
+ " <td>18/4/19 13:31</td>\n",
1327
+ " <td>2019</td>\n",
1328
+ " <td>21.46250</td>\n",
1329
+ " <td>39.16000</td>\n",
1330
+ " <td>NaN</td>\n",
1331
+ " <td>Weather Advisory</td>\n",
1332
+ " <td>True</td>\n",
1333
+ " <td>False</td>\n",
1334
+ " </tr>\n",
1335
+ " <tr>\n",
1336
+ " <th>95</th>\n",
1337
+ " <td>49</td>\n",
1338
+ " <td>2815</td>\n",
1339
+ " <td>UPDATE: Fog causing congestion in Houston, aff...</td>\n",
1340
+ " <td>Updated sources report fog has delayed vessel ...</td>\n",
1341
+ " <td>Severe</td>\n",
1342
+ " <td>Port Congestion</td>\n",
1343
+ " <td>NaN</td>\n",
1344
+ " <td>United States</td>\n",
1345
+ " <td>11/3/19 7:48</td>\n",
1346
+ " <td>2019</td>\n",
1347
+ " <td>29.68234</td>\n",
1348
+ " <td>-94.99355</td>\n",
1349
+ " <td>NaN</td>\n",
1350
+ " <td>NaN</td>\n",
1351
+ " <td>True</td>\n",
1352
+ " <td>False</td>\n",
1353
+ " </tr>\n",
1354
+ " <tr>\n",
1355
+ " <th>96</th>\n",
1356
+ " <td>54</td>\n",
1357
+ " <td>2827</td>\n",
1358
+ " <td>UPDATE: Inbound pilotage suspended due to stro...</td>\n",
1359
+ " <td>Sources indicate that strong winds have led to...</td>\n",
1360
+ " <td>Moderate</td>\n",
1361
+ " <td>Port Congestion</td>\n",
1362
+ " <td>NaN</td>\n",
1363
+ " <td>China</td>\n",
1364
+ " <td>22/1/19 10:08</td>\n",
1365
+ " <td>2019</td>\n",
1366
+ " <td>31.32010</td>\n",
1367
+ " <td>121.65733</td>\n",
1368
+ " <td>NaN</td>\n",
1369
+ " <td>NaN</td>\n",
1370
+ " <td>True</td>\n",
1371
+ " <td>False</td>\n",
1372
+ " </tr>\n",
1373
+ " <tr>\n",
1374
+ " <th>97</th>\n",
1375
+ " <td>60</td>\n",
1376
+ " <td>2869</td>\n",
1377
+ " <td>UPDATE: Port of Busan reopens after temporary ...</td>\n",
1378
+ " <td>Updated sources indicate on October 4 that the...</td>\n",
1379
+ " <td>Moderate</td>\n",
1380
+ " <td>Port Congestion</td>\n",
1381
+ " <td>NaN</td>\n",
1382
+ " <td>Republic of Korea</td>\n",
1383
+ " <td>30/9/19 11:41</td>\n",
1384
+ " <td>2019</td>\n",
1385
+ " <td>NaN</td>\n",
1386
+ " <td>NaN</td>\n",
1387
+ " <td>NaN</td>\n",
1388
+ " <td>NaN</td>\n",
1389
+ " <td>False</td>\n",
1390
+ " <td>False</td>\n",
1391
+ " </tr>\n",
1392
+ " <tr>\n",
1393
+ " <th>98</th>\n",
1394
+ " <td>61</td>\n",
1395
+ " <td>2870</td>\n",
1396
+ " <td>UPDATE: Port of Charleston is open for busines...</td>\n",
1397
+ " <td>Updated media sources indicate on September 6 ...</td>\n",
1398
+ " <td>Severe</td>\n",
1399
+ " <td>Port Congestion</td>\n",
1400
+ " <td>NaN</td>\n",
1401
+ " <td>United States</td>\n",
1402
+ " <td>3/9/19 5:28</td>\n",
1403
+ " <td>2019</td>\n",
1404
+ " <td>32.90473</td>\n",
1405
+ " <td>-79.96455</td>\n",
1406
+ " <td>NaN</td>\n",
1407
+ " <td>NaN</td>\n",
1408
+ " <td>True</td>\n",
1409
+ " <td>False</td>\n",
1410
+ " </tr>\n",
1411
+ " </tbody>\n",
1412
+ "</table>\n",
1413
+ "<p>99 rows × 16 columns</p>\n",
1414
+ "</div>"
1415
+ ],
1416
+ "text/plain": [
1417
+ " Unnamed: 0 id Headline \\\n",
1418
+ "0 86 10 14 miles NE of Jakarta - A magnitude 4.5 earth... \n",
1419
+ "1 87 11 17 miles SW of Batangas - A magnitude 5.5 eart... \n",
1420
+ "2 88 16 23 miles ESE of Taichung City- A magnitude 4.5... \n",
1421
+ "3 89 20 33 miles SE of Valencia A magnitude 4.0 earthq... \n",
1422
+ "4 90 1981 Philippines: Magnitude 6.2 earthquake recorded... \n",
1423
+ ".. ... ... ... \n",
1424
+ "94 53 2824 UPDATE: High winds still causing port disrupti... \n",
1425
+ "95 49 2815 UPDATE: Fog causing congestion in Houston, aff... \n",
1426
+ "96 54 2827 UPDATE: Inbound pilotage suspended due to stro... \n",
1427
+ "97 60 2869 UPDATE: Port of Busan reopens after temporary ... \n",
1428
+ "98 61 2870 UPDATE: Port of Charleston is open for busines... \n",
1429
+ "\n",
1430
+ " Summary Severity \\\n",
1431
+ "0 A magnitude 4.5 earthquake was detected 14 mil... Moderate \n",
1432
+ "1 Multiple sources report that a magnitude 5.5 e... NaN \n",
1433
+ "2 A magnitude 4.5 earthquake was detected in cen... Moderate \n",
1434
+ "3 The European-Mediterranean Seismological Centr... Moderate \n",
1435
+ "4 The United States Geological Survey (USGS) has... Severe \n",
1436
+ ".. ... ... \n",
1437
+ "94 Industry sources on April 23 indicate that hig... Moderate \n",
1438
+ "95 Updated sources report fog has delayed vessel ... Severe \n",
1439
+ "96 Sources indicate that strong winds have led to... Moderate \n",
1440
+ "97 Updated sources indicate on October 4 that the... Moderate \n",
1441
+ "98 Updated media sources indicate on September 6 ... Severe \n",
1442
+ "\n",
1443
+ " Category_GoldenResult Category_GPT Region Datetime \\\n",
1444
+ "0 Earthquake Earthquake Indonesia 24/9/18 18:33 \n",
1445
+ "1 Earthquake Earthquake Philippines 31/8/18 15:04 \n",
1446
+ "2 Earthquake Earthquake Taiwan 17/8/18 10:40 \n",
1447
+ "3 Earthquake Earthquake Spain 17/10/18 6:06 \n",
1448
+ "4 Earthquake Earthquake Philippines 29/9/19 3:35 \n",
1449
+ ".. ... ... ... ... \n",
1450
+ "94 Port Congestion Weather Advisory Saudi Arabia 18/4/19 13:31 \n",
1451
+ "95 Port Congestion NaN United States 11/3/19 7:48 \n",
1452
+ "96 Port Congestion NaN China 22/1/19 10:08 \n",
1453
+ "97 Port Congestion NaN Republic of Korea 30/9/19 11:41 \n",
1454
+ "98 Port Congestion NaN United States 3/9/19 5:28 \n",
1455
+ "\n",
1456
+ " Year lat lon URL GPT Generated Result Result_Golden \\\n",
1457
+ "0 2018 -6.10000 107.02000 NaN Earthquake True \n",
1458
+ "1 2018 13.55600 120.90300 NaN Earthquake True \n",
1459
+ "2 2018 24.02000 121.03000 NaN Earthquake True \n",
1460
+ "3 2018 39.23000 0.16000 NaN Earthquake True \n",
1461
+ "4 2019 6.35667 126.18441 NaN Earthquake True \n",
1462
+ ".. ... ... ... ... ... ... \n",
1463
+ "94 2019 21.46250 39.16000 NaN Weather Advisory True \n",
1464
+ "95 2019 29.68234 -94.99355 NaN NaN True \n",
1465
+ "96 2019 31.32010 121.65733 NaN NaN True \n",
1466
+ "97 2019 NaN NaN NaN NaN False \n",
1467
+ "98 2019 32.90473 -79.96455 NaN NaN True \n",
1468
+ "\n",
1469
+ " Result_GPT \n",
1470
+ "0 True \n",
1471
+ "1 True \n",
1472
+ "2 True \n",
1473
+ "3 True \n",
1474
+ "4 True \n",
1475
+ ".. ... \n",
1476
+ "94 False \n",
1477
+ "95 False \n",
1478
+ "96 False \n",
1479
+ "97 False \n",
1480
+ "98 False \n",
1481
+ "\n",
1482
+ "[99 rows x 16 columns]"
1483
+ ]
1484
+ },
1485
+ "execution_count": 21,
1486
+ "metadata": {},
1487
+ "output_type": "execute_result"
1488
+ }
1489
+ ],
1490
+ "source": [
1491
+ "eva = pd.read_csv('evaluation_result.csv')\n",
1492
+ "eva"
1493
+ ]
1494
+ },
1495
+ {
1496
+ "cell_type": "code",
1497
+ "execution_count": 22,
1498
+ "id": "a98d47b7-7ab1-4947-a10a-a36fa303dcc1",
1499
+ "metadata": {},
1500
+ "outputs": [
1501
+ {
1502
+ "data": {
1503
+ "text/plain": [
1504
+ "GPT Generated Result\n",
1505
+ "Earthquake 18\n",
1506
+ "Miscellaneous Events 16\n",
1507
+ "Port Congestion 12\n",
1508
+ "Maritime Advisory 6\n",
1509
+ "Port Closure 5\n",
1510
+ "Port Disruption 4\n",
1511
+ "Miscellaneous Strikes 3\n",
1512
+ "Maritime Accident 2\n",
1513
+ "Cargo Disruption 1\n",
1514
+ "Ground Transportation Advisory 1\n",
1515
+ "Hazmat Response 1\n",
1516
+ "Severe Winds 1\n",
1517
+ "Weather Advisory 0\n",
1518
+ "Name: Result_GPT_True_Count, dtype: int64"
1519
+ ]
1520
+ },
1521
+ "execution_count": 22,
1522
+ "metadata": {},
1523
+ "output_type": "execute_result"
1524
+ }
1525
+ ],
1526
+ "source": [
1527
+ "eva['Result_GPT_True_Count'] = eva['Result_GPT'].astype(int) # Convert boolean values to integers\n",
1528
+ "result = eva.groupby(\"GPT Generated Result\")['Result_GPT_True_Count'].sum()\n",
1529
+ "\n",
1530
+ "result_gpt = result.sort_values(ascending=False)\n",
1531
+ "result_gpt"
1532
+ ]
1533
+ },
1534
+ {
1535
+ "cell_type": "code",
1536
+ "execution_count": 23,
1537
+ "id": "ec0defea-c4ad-4f97-9704-23ef83f73ff7",
1538
+ "metadata": {},
1539
+ "outputs": [
1540
+ {
1541
+ "data": {
1542
+ "text/html": [
1543
+ "<div>\n",
1544
+ "<style scoped>\n",
1545
+ " .dataframe tbody tr th:only-of-type {\n",
1546
+ " vertical-align: middle;\n",
1547
+ " }\n",
1548
+ "\n",
1549
+ " .dataframe tbody tr th {\n",
1550
+ " vertical-align: top;\n",
1551
+ " }\n",
1552
+ "\n",
1553
+ " .dataframe thead th {\n",
1554
+ " text-align: right;\n",
1555
+ " }\n",
1556
+ "</style>\n",
1557
+ "<table border=\"1\" class=\"dataframe\">\n",
1558
+ " <thead>\n",
1559
+ " <tr style=\"text-align: right;\">\n",
1560
+ " <th></th>\n",
1561
+ " <th>Unnamed: 0</th>\n",
1562
+ " <th>id</th>\n",
1563
+ " <th>Headline</th>\n",
1564
+ " <th>Summary</th>\n",
1565
+ " <th>Severity</th>\n",
1566
+ " <th>Category_GPT</th>\n",
1567
+ " <th>Region</th>\n",
1568
+ " <th>Datetime</th>\n",
1569
+ " <th>Year</th>\n",
1570
+ " <th>lat</th>\n",
1571
+ " <th>lon</th>\n",
1572
+ " <th>URL</th>\n",
1573
+ " <th>GPT Generated Result</th>\n",
1574
+ " <th>Result_Golden</th>\n",
1575
+ " <th>Result_GPT</th>\n",
1576
+ " <th>Result_GPT_True_Count</th>\n",
1577
+ " </tr>\n",
1578
+ " <tr>\n",
1579
+ " <th>Category_GoldenResult</th>\n",
1580
+ " <th></th>\n",
1581
+ " <th></th>\n",
1582
+ " <th></th>\n",
1583
+ " <th></th>\n",
1584
+ " <th></th>\n",
1585
+ " <th></th>\n",
1586
+ " <th></th>\n",
1587
+ " <th></th>\n",
1588
+ " <th></th>\n",
1589
+ " <th></th>\n",
1590
+ " <th></th>\n",
1591
+ " <th></th>\n",
1592
+ " <th></th>\n",
1593
+ " <th></th>\n",
1594
+ " <th></th>\n",
1595
+ " <th></th>\n",
1596
+ " </tr>\n",
1597
+ " </thead>\n",
1598
+ " <tbody>\n",
1599
+ " <tr>\n",
1600
+ " <th>Maritime Advisory</th>\n",
1601
+ " <td>20</td>\n",
1602
+ " <td>20</td>\n",
1603
+ " <td>20</td>\n",
1604
+ " <td>20</td>\n",
1605
+ " <td>20</td>\n",
1606
+ " <td>19</td>\n",
1607
+ " <td>20</td>\n",
1608
+ " <td>20</td>\n",
1609
+ " <td>20</td>\n",
1610
+ " <td>15</td>\n",
1611
+ " <td>15</td>\n",
1612
+ " <td>0</td>\n",
1613
+ " <td>19</td>\n",
1614
+ " <td>20</td>\n",
1615
+ " <td>20</td>\n",
1616
+ " <td>20</td>\n",
1617
+ " </tr>\n",
1618
+ " <tr>\n",
1619
+ " <th>Miscellaneous Events</th>\n",
1620
+ " <td>20</td>\n",
1621
+ " <td>20</td>\n",
1622
+ " <td>20</td>\n",
1623
+ " <td>20</td>\n",
1624
+ " <td>20</td>\n",
1625
+ " <td>20</td>\n",
1626
+ " <td>20</td>\n",
1627
+ " <td>20</td>\n",
1628
+ " <td>20</td>\n",
1629
+ " <td>12</td>\n",
1630
+ " <td>12</td>\n",
1631
+ " <td>0</td>\n",
1632
+ " <td>20</td>\n",
1633
+ " <td>20</td>\n",
1634
+ " <td>20</td>\n",
1635
+ " <td>20</td>\n",
1636
+ " </tr>\n",
1637
+ " <tr>\n",
1638
+ " <th>Port Closure</th>\n",
1639
+ " <td>20</td>\n",
1640
+ " <td>20</td>\n",
1641
+ " <td>20</td>\n",
1642
+ " <td>20</td>\n",
1643
+ " <td>20</td>\n",
1644
+ " <td>16</td>\n",
1645
+ " <td>20</td>\n",
1646
+ " <td>20</td>\n",
1647
+ " <td>20</td>\n",
1648
+ " <td>15</td>\n",
1649
+ " <td>15</td>\n",
1650
+ " <td>0</td>\n",
1651
+ " <td>16</td>\n",
1652
+ " <td>20</td>\n",
1653
+ " <td>20</td>\n",
1654
+ " <td>20</td>\n",
1655
+ " </tr>\n",
1656
+ " <tr>\n",
1657
+ " <th>Port Congestion</th>\n",
1658
+ " <td>20</td>\n",
1659
+ " <td>20</td>\n",
1660
+ " <td>20</td>\n",
1661
+ " <td>20</td>\n",
1662
+ " <td>20</td>\n",
1663
+ " <td>16</td>\n",
1664
+ " <td>20</td>\n",
1665
+ " <td>20</td>\n",
1666
+ " <td>20</td>\n",
1667
+ " <td>11</td>\n",
1668
+ " <td>11</td>\n",
1669
+ " <td>0</td>\n",
1670
+ " <td>16</td>\n",
1671
+ " <td>20</td>\n",
1672
+ " <td>20</td>\n",
1673
+ " <td>20</td>\n",
1674
+ " </tr>\n",
1675
+ " <tr>\n",
1676
+ " <th>Earthquake</th>\n",
1677
+ " <td>19</td>\n",
1678
+ " <td>19</td>\n",
1679
+ " <td>19</td>\n",
1680
+ " <td>19</td>\n",
1681
+ " <td>18</td>\n",
1682
+ " <td>18</td>\n",
1683
+ " <td>19</td>\n",
1684
+ " <td>19</td>\n",
1685
+ " <td>19</td>\n",
1686
+ " <td>15</td>\n",
1687
+ " <td>15</td>\n",
1688
+ " <td>0</td>\n",
1689
+ " <td>18</td>\n",
1690
+ " <td>19</td>\n",
1691
+ " <td>19</td>\n",
1692
+ " <td>19</td>\n",
1693
+ " </tr>\n",
1694
+ " </tbody>\n",
1695
+ "</table>\n",
1696
+ "</div>"
1697
+ ],
1698
+ "text/plain": [
1699
+ " Unnamed: 0 id Headline Summary Severity \\\n",
1700
+ "Category_GoldenResult \n",
1701
+ "Maritime Advisory 20 20 20 20 20 \n",
1702
+ "Miscellaneous Events 20 20 20 20 20 \n",
1703
+ "Port Closure 20 20 20 20 20 \n",
1704
+ "Port Congestion 20 20 20 20 20 \n",
1705
+ "Earthquake 19 19 19 19 18 \n",
1706
+ "\n",
1707
+ " Category_GPT Region Datetime Year lat lon URL \\\n",
1708
+ "Category_GoldenResult \n",
1709
+ "Maritime Advisory 19 20 20 20 15 15 0 \n",
1710
+ "Miscellaneous Events 20 20 20 20 12 12 0 \n",
1711
+ "Port Closure 16 20 20 20 15 15 0 \n",
1712
+ "Port Congestion 16 20 20 20 11 11 0 \n",
1713
+ "Earthquake 18 19 19 19 15 15 0 \n",
1714
+ "\n",
1715
+ " GPT Generated Result Result_Golden Result_GPT \\\n",
1716
+ "Category_GoldenResult \n",
1717
+ "Maritime Advisory 19 20 20 \n",
1718
+ "Miscellaneous Events 20 20 20 \n",
1719
+ "Port Closure 16 20 20 \n",
1720
+ "Port Congestion 16 20 20 \n",
1721
+ "Earthquake 18 19 19 \n",
1722
+ "\n",
1723
+ " Result_GPT_True_Count \n",
1724
+ "Category_GoldenResult \n",
1725
+ "Maritime Advisory 20 \n",
1726
+ "Miscellaneous Events 20 \n",
1727
+ "Port Closure 20 \n",
1728
+ "Port Congestion 20 \n",
1729
+ "Earthquake 19 "
1730
+ ]
1731
+ },
1732
+ "execution_count": 23,
1733
+ "metadata": {},
1734
+ "output_type": "execute_result"
1735
+ }
1736
+ ],
1737
+ "source": [
1738
+ "test = eva.groupby(\"Category_GoldenResult\").count().sort_values(by='id', ascending = False)\n",
1739
+ "test"
1740
+ ]
1741
+ },
1742
+ {
1743
+ "cell_type": "code",
1744
+ "execution_count": 24,
1745
+ "id": "6bc57f6b-c554-4634-8a98-45d82546d6f8",
1746
+ "metadata": {},
1747
+ "outputs": [
1748
+ {
1749
+ "data": {
1750
+ "text/plain": [
1751
+ "Category_GoldenResult\n",
1752
+ "Miscellaneous Events 20\n",
1753
+ "Earthquake 19\n",
1754
+ "Port Congestion 15\n",
1755
+ "Port Closure 12\n",
1756
+ "Maritime Advisory 10\n",
1757
+ "Name: Result_Golden_True_Count, dtype: int64"
1758
+ ]
1759
+ },
1760
+ "execution_count": 24,
1761
+ "metadata": {},
1762
+ "output_type": "execute_result"
1763
+ }
1764
+ ],
1765
+ "source": [
1766
+ "eva['Result_Golden_True_Count'] = eva['Result_Golden'].astype(int) # Convert boolean values to integers\n",
1767
+ "result = eva.groupby(\"Category_GoldenResult\")['Result_Golden_True_Count'].sum()\n",
1768
+ "\n",
1769
+ "# If you want to sort the result by the count in descending order:\n",
1770
+ "result_golden = result.sort_values(ascending=False)\n",
1771
+ "\n",
1772
+ "result_golden"
1773
+ ]
1774
+ }
1775
+ ],
1776
+ "metadata": {
1777
+ "kernelspec": {
1778
+ "display_name": "Python 3",
1779
+ "language": "python",
1780
+ "name": "python3"
1781
+ },
1782
+ "language_info": {
1783
+ "codemirror_mode": {
1784
+ "name": "ipython",
1785
+ "version": 3
1786
+ },
1787
+ "file_extension": ".py",
1788
+ "mimetype": "text/x-python",
1789
+ "name": "python",
1790
+ "nbconvert_exporter": "python",
1791
+ "pygments_lexer": "ipython3",
1792
+ "version": "3.8.16"
1793
+ }
1794
+ },
1795
+ "nbformat": 4,
1796
+ "nbformat_minor": 5
1797
+ }
IS424_Data_Mining/code/LLM Evaluation/evaluation_result.csv ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ,id,Headline,Summary,Severity,Category_GoldenResult,Category_GPT,Region,Datetime,Year,lat,lon,URL,GPT Generated Result,Result_Golden,Result_GPT
2
+ 86,10,14 miles NE of Jakarta - A magnitude 4.5 earthquake was detected in the region. Incident closed.,"A magnitude 4.5 earthquake was detected 14 miles northeast of Jakarta, Indonesia. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Earthquake,Indonesia,24/9/18 18:33,2018,-6.1,107.02,,Earthquake,TRUE,TRUE
3
+ 87,11,17 miles SW of Batangas - A magnitude 5.5 earthquake was detected in Batangas Bay. Incident closed.,"Multiple sources report that a magnitude 5.5 earthquake was detected in the Batangas Bay, approximately 17 miles southwest of Batangas, Philippines. There have been no reports of associated injuries or structural damage. This incident is closed.",,Earthquake,Earthquake,Philippines,31/8/18 15:04,2018,13.556,120.903,,Earthquake,TRUE,TRUE
4
+ 88,16,23 miles ESE of Taichung City- A magnitude 4.5 earthquake struck in central Taiwan. Incident closed.,"A magnitude 4.5 earthquake was detected in central Taiwan, approximately 23 miles east-southeast of Taichung City. There were no initial reports of associated injuries or structural damage. This incident is closed.",Moderate,Earthquake,Earthquake,Taiwan,17/8/18 10:40,2018,24.02,121.03,,Earthquake,TRUE,TRUE
5
+ 89,20,33 miles SE of Valencia A magnitude 4.0 earthquake struck in the Mediterranean Sea. Incident closed.,The European-Mediterranean Seismological Centre reported that a magnitude 4.0 earthquake struck approximately 33 miles southeast of Valencia in the Mediterranean Sea. There were no reports of injuries or major structural damage. This incident is closed.,Moderate,Earthquake,Earthquake,Spain,17/10/18 6:06,2018,39.23,0.16,,Earthquake,TRUE,TRUE
6
+ 90,1981,Philippines: Magnitude 6.2 earthquake recorded south of Davao Oriental Province,"The United States Geological Survey (USGS) has recorded a magnitude 6.2 earthquake today, 29 September, south of Davao Oriental Province. The quake occurred at a depth of 76.1 kilometers at 10:02 local time. Preliminary reports do not indicate if any damage or injuries have resulted.",Severe,Earthquake,Earthquake,Philippines,29/9/19 3:35,2019,6.35667,126.18441,,Earthquake,TRUE,TRUE
7
+ 92,2587,"UPDATE - Philippines: Casualties confirmed following earthquake near Tulunan, Cotabato Province","Recent reports confirm that casualties have occurred today (29 October) following a magnitude 6.6 earthquake near Tulunan. At least one person has died and more than 40 others are injured, with the majority in Kidapawan City and others in M'lang. Power outages have been recorded in areas of General Santos City, Polomok, Tacurong City, and Carmen. A number of structures have also sustained damage or have collapsed in several locations.",Severe,Earthquake,Earthquake,Philippines,29/10/19 6:20,2019,,,,Earthquake,TRUE,TRUE
8
+ 93,2589,"UPDATE - Philippines: Damages and injuries reported following magnitude 6.6 earthquake near Tulunan, Cotabato Province","Updated sources are reporting damages and injuries following a magnitude 6.6 earthquake that struck near Tulunan on Tuesday morning. The severity of injuries sustained has not been confirmed but media images depict a number of collapsed structures in Tulunan. Several local government units have reportedly cancelled classes across the island of Mindanao, including in North Cotabato, Davao City, Koronadal City, Digos City, and General Santos City, where government and private offices will also be closed. Evacuations have also been reported but specific details remain unconfirmed. The United States Geological Survey (USGS) has recorded at least two aftershock tremors at magnitudes of 5.0 and 5.8 in the region.",Severe,Earthquake,Earthquake,Philippines,29/10/19 3:25,2019,,,,Earthquake,TRUE,TRUE
9
+ 94,2593,UPDATE - Philippines: Several casualties and moderate damage reported following 6.3 magnitude earthquake in North Cotabato,"Updated reports state that a small number of casualties have occurred as a result of the earlier recorded 6.3 magnitude earthquake in North Cotabato. In addition, officials from Mindanao Island are reporting structural cracks to certain buildings and moderate infrastructure damage including power outages. The tremors were felt in Davao City, although the impact there is not believed to be extensive. Earthquakes are common in the region.",Severe,Earthquake,Earthquake,Philippines,16/10/19 15:55,2019,,,,Earthquake,TRUE,TRUE
10
+ 95,3124,178 Miles E of Taichung City - A magnitude 3.9 earthquake struck in the area. Incident closed.,"Government sources reported that a magnitude 3.9 earthquake struck approximately 178 miles east of Taichung City, Taiwan, in the Pacific Ocean. There were no immediate reports of injuries or major structural damage. This incident is closed.",Minor,Earthquake,Earthquake,Taiwan,22/1/20 3:43,2020,24.1,123.5,,Earthquake,TRUE,TRUE
11
+ 96,3135,42 miles N of San Antonio - A magnitude 4.3 earthquake struck in the region. Event closed.,"The European-Mediterranean Seismological Centre indicated that a magnitude 4.3 earthquake struck approximately 42 miles north of San Antonio, Puerto Rico. There were no reports of associated injuries or damage. This event is closed.",Moderate,Earthquake,Earthquake,Puerto Rico,19/2/20 0:48,2020,19.1,-67.22,,Earthquake,TRUE,TRUE
12
+ 97,3136,42 miles NW of San Antonio - The USGS reported a magnitude 4.5 earthquake. Incident closed.,"The U.S. Geological Survey reported a magnitude 4.5 earthquake located 42 miles northwest of San Antonio, Puerto Rico. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Earthquake,Puerto Rico,12/2/20 8:21,2020,18.94,-67.56,,Earthquake,TRUE,TRUE
13
+ 98,3142,72 miles W of San Antonio de los Cobres - A magnitude 4.3 earthquake has struck in the area. Event closed.,"The European-Mediterranean Seismological Centre is reporting a magnitude 4.3 earthquake located 72 miles west of San Antonio de los Cobres, Argentina. There have been no initial reports of associated injuries or damage. Event closed.
14
+ EMSC (European Mediterranean Seismological Centre) is a scientific international organization, which aggregates and provides information generated by national seismological agencies worldwide. EMSC presents earthquake data across several magnitude scales including local magnitude (ML), surface-wave magnitude (Ms), body-wave magnitude (Mb), and moment magnitude (Mw). All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Earthquake,Argentina,18/8/20 6:06,2020,,,,Earthquake,TRUE,TRUE
15
+ 99,3755,"Magnitude 5.1 earthquake reported 11 kilometres southeast of Digos City, Davao del Sur Province","The United States Geological Survey (USGS) is reporting a magnitude 5.1 earthquake 11 kilometres southeast of Digos City. The quake occurred at a depth of 35.2 kilometres at 01:44 local time. There is no tsunami advisory being issued for the incident.
16
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Earthquake,Philippines,30/8/20 21:40,2020,6.75751,125.3524,,Earthquake,TRUE,TRUE
17
+ 100,3756,"Magnitude 5.1 earthquake reported 12 kilometers north of Hachijo, Tokyo Prefecture","The United States Geological Survey has confirmed that a magnitude 5.1 earthquake has been recorded 12 kilometers north of Hachijo, Tokyo Prefecture. The quake occurred at a depth of 118 kilometers and no tsunami warning has been issued.
18
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Earthquake,Japan,25/9/20 17:35,2020,33.12568,139.80898,,Earthquake,TRUE,TRUE
19
+ 101,3757,"Magnitude 5.2 earthquake recorded 30 kilometers south of Sarangani, Davao Occidental Province","The United States Geological Survey (USGS) has recorded a magnitude 5.2 earthquake 30 kilometers south of Sarangani on Monday, 6 January. The quake occurred at a depth of 55.9 kilometers at approximately 15:25 local time. No tsunami warning has been issued at this time.",Moderate,Earthquake,Earthquake,Philippines,6/1/20 8:03,2020,5.41372,125.40147,,Earthquake,TRUE,TRUE
20
+ 102,3758,"Magnitude 5.3 earthquake reported 17 km west of Nasugbu, Batangas Province","The United States Geological Survey (USGS) has confirmed that a 5.3 magnitude earthquake has occurred 17 km west of Nasugbu. The quake was reported at a depth of 86 km and no information on structural damage or injuries has been announced.
21
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Earthquake,Philippines,9/5/20 20:09,2020,14.06667,120.63333,,Earthquake,TRUE,TRUE
22
+ 103,3759,Magnitude 6.2 earthquake reported north of Surabaya,"The US Geological Survey is reporting that a magnitude 6.2 earthquake, at a depth of 592.2 km, has occurred approximately 116 km north of Surbaya. There have been some reports of tremors having been felt although it is estimated that little or no population will be affected.",Severe,Earthquake,Earthquake,Indonesia,5/2/20 19:37,2020,-6.23324,112.93235,,Earthquake,TRUE,TRUE
23
+ 104,5715,"USGS reports magnitude 6.3 earthquake 4km southeast of Calatagan, Batangas Province","The United States Geological Survey (USGS) has recorded a magnitude 6.3 earthquake 4km southeast of Calatagan on Friday, 25 December. The quake has occurred at a depth of 114km at 07:43 local time. There has not been a tsunami warning issued and there are no immediate reports of damages, though they are possible due to the intensity of the tremor.
24
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Severe,Earthquake,Earthquake,Philippines,25/12/20 0:25,2020,13.83333,120.6333,,Earthquake,TRUE,TRUE
25
+ 91,1982,"Philippines: Magnitude 6.5 earthquake strikes near Makilala, Cotabato Province; damages reported","The United States Geological Survey (USGS) has recorded a magnitude 6.5 earthquake today (31 October) near Makilala. The quake was recorded at a depth of 10 kilometers or less at approximately 09:11 local time. Initial reports show Eva's Hotel in Kidapawan City partially collapsed, with injuries unconfirmed. Additionally, a multi-story structure in Davao City has sustained damage as well. Further reports of damages are likely to emerge, as this is the second earthquake over 6.0 magnitude to strike the area in recent days and infrastructure may be weakened.",Severe,Earthquake,,Philippines,31/10/19 1:50,2019,6.92343,125.08286,,,TRUE,FALSE
26
+ 20,1737,Lack of trucking resources affects productivity at Port of Balboa,Industry sources report on October 15 that productivity has declined at the Port of Balboa due to a lack of trucking resources. The current lineup of rail movement is at least until the year-end.,Moderate,Maritime Advisory,Ground Transportation Advisory,Panama,15/10/19 4:11,2019,8.95763,-79.5614,,Ground Transportation Advisory,TRUE,TRUE
27
+ 14,1663,Houston ship channel fully reopens on April 25,"Industry sources reported that Houston ship channel reopened to full operations on April 25 following a fire at Intercontinental Terminal Co.’s Deer Park, Texas, terminal in late March. The temporary closure which lasted for several weeks disrupted several oil shipments. Houston ship channel is part of Port of Houston.",Minor,Maritime Advisory,Maritime Accident,United States,25/4/19 7:40,2019,29.60569,-94.95236,,Maritime Accident,FALSE,TRUE
28
+ 0,3,Shanghai port congestion impacts terminals in Qingdao and Ningbo,"The persisting port congestion at Shanghai’s Yangshan deep-sea terminal is reportedly also impacting vessel arrival times at other major public terminals in China, including Qingdao and Ningbo. Industry sources indicated that this is due to some vessels being diverted from Shanghai as well as unstable weather and re-shuffling of alliances networks. Some carriers are reportedly planning contingency actions for the coming months, including consolidation of volumes and temporary reduction of port calls. No further details were initially provided.",Minor,Maritime Advisory,Maritime Advisory,China,27/4/17 9:16,2017,29.52,121.3319,,Maritime Advisory,TRUE,TRUE
29
+ 8,1617,High risk of port closure at the Port of Houston due to fog,Shipping sources indicate on November 21 that there will be an elevated risk of port closures at the Port of Houston from November 22-24 due to fog. Customers should expect longer transit times through container terminals at the port and potential impacts on barge transportation on the Houston Ship Channel.,Moderate,Maritime Advisory,Maritime Advisory,United States,21/11/19 16:26,2019,,,,Maritime Advisory,TRUE,TRUE
30
+ 19,1736,Lack of gangs may impede operations at Port of Barcelona,Shipping sources on August 19 indicate that lack of gangs due to summer holidays may impede port operations at Port of Barcelona.,Minor,Maritime Advisory,Maritime Advisory,Spain,19/8/19 8:43,2019,41.35591,2.16674,,Maritime Advisory,TRUE,TRUE
31
+ 9,1618,High swells caused terminal closure at Port of San Antonio,"Sources on March 21 indicate that heavy swells at the Port of San Antonio have caused a terminal to be closed. At the time of writing, it remains unclear when operations will return to normalcy.",Moderate,Maritime Advisory,Maritime Accident/Port Disruption,Chile,21/3/19 7:23,2019,,,,Miscellaneous Events,FALSE,TRUE
32
+ 5,1614,High risk of port closure at Port of Busan on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Busan to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Maritime Advisory,Port Closure,Republic of Korea,23/4/19 12:13,2019,,,,Port Closure,FALSE,TRUE
33
+ 7,1616,High risk of port closure at Port of Kwangyang on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Kwangyang to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Maritime Advisory,Port Closure,Republic of Korea,23/4/19 12:14,2019,34.90849,127.66822,,Port Closure,FALSE,TRUE
34
+ 1,17,24 hour pier hold in effect at Port of Durban,"Industry sources indicate on August 31 that the Port of Durban’s Pier 1 is experiencing high traffic volumes resulting in road congestion on Bayhead Road, leading Transnet to urge transporters to hold back on dispatching export turns to the container terminal until 6AM on September 1. Extensions will be reviewed for open stacks. Those shipping from Durban should anticipate delays and should plan accordingly.",Minor,Maritime Advisory,Port Congestion,South Africa,31/8/18 18:07,2018,-29.86875,31.03305,,Port Congestion,FALSE,TRUE
35
+ 2,1599,Heavy congestion reported at Port of Houston,"According to sources on March 20, heavy congestion has been reported at Port of Houston due to fog.",Moderate,Maritime Advisory,Port Congestion,United States,20/3/19 12:43,2019,29.60949,-95.00567,,Port Congestion,FALSE,TRUE
36
+ 13,1636,Higher dwell times reported at Port of Long Beach due to labor shortages,"Shipping sources on April 29 reported that the Pier T container terminal has experienced higher than usual dwell times for containers due to labor shortages related to the Easter holidays, combined with high volume. Customers should be mindful of potential delays as backlog gets cleared.",Minor,Maritime Advisory,Port Congestion,United States,30/4/19 15:57,2019,33.75292,-118.2096,,Port Congestion,FALSE,TRUE
37
+ 15,1687,Increased berthing times reported at Port of Busan,"Shipping sources indicated on January 31 that the Port of Busan, South Korea, currently experiences longer berthing times for incoming vessels. Waiting times of up to 0.5 day have been reported.",Minor,Maritime Advisory,Port Congestion,Republic of Korea,31/1/19 11:35,2019,35.12051,129.05654,,Port Congestion,FALSE,TRUE
38
+ 16,1688,Increased congestion elevates drayage costs at Port of New York/New Jersey,"Industry sources indicate on January 23 that increased inbound volumes due in part to Lunar New Year traffic combined with delays and congestions have complicated intermodal shipment at the Port of New York and New Jersey to the point that drayage costs are increasing. Ocean carriers and terminals are charging USD 100-250/day for container-related delays, and drayage carriers are charging USD 75/hr for terminal idling. Those shipping at the Port of New York and New Jersey should anticipate moderate delays and should plan accordingly.",Moderate,Maritime Advisory,Port Congestion,United States,23/1/19 20:31,2019,40.69166,-74.14911,,Port Congestion,TRUE,TRUE
39
+ 10,1628,High winds disruption port operations in Southampton,"On April 27, high winds are disrupting shipside and landside operations at the DP World Southampton terminal since 09:00 local time. Drop-offs or pick-ups of containers are reportedly suspended for the time being.",Minor,Maritime Advisory,Port Disruption,United Kingdom,27/4/19 15:46,2019,50.91,-1.46,,Port Disruption,FALSE,TRUE
40
+ 17,1706,Intermittent closures at Manila International Container Terminal for holidays,"Industry sources reported that Manila International Container Terminal has announced its port operation schedule for the upcoming Christmas and New Year holidays. According to its advisory, vessel and yard operations will continue its regular operations until 19.00 local time on December 24 and will resume at 19.00 on the next day. Normal operations will continue until December 31 when vessel and yard operations will stop at 19.00 local time and will resume again at 19.00 on the next day.",Minor,Maritime Advisory,Port Disruption,Philippines,20/12/19 0:49,2019,,,,Port Disruption,FALSE,TRUE
41
+ 18,1712,IT maintenance on Nov 6 may affect operations at Bharat Mumbai Container Terminals,"Shipping sources report on November 1 that IT maintenance activity will take place at Bharat Mumbai Container Terminals at Port of Nhava Sheva on November 6 from 01.00 to 07.00 (local time). During this time, complete network and E-form 13 and 11 applications will not be available. Other operation procedures and service delays can be expected as well.",Minor,Maritime Advisory,Port Disruption,India,4/11/19 9:35,2019,18.93881,72.94084,,Port Disruption,TRUE,FALSE
42
+ 4,1613,High risk of pilot suspension reported at Port of Yokohama,"On December 31, shipping sources indicate that strong wind is anticipated at Port of Yokohama, Japan, from the afternoon of December 31 until the morning of January 1. The adverse weather conditions pose a high risk of a pilot suspension during the above mentioned period.",Minor,Maritime Advisory,Severe Winds,Japan,31/12/19 10:23,2019,,,,Severe Winds,TRUE,TRUE
43
+ 6,1615,High risk of port closure at Port of Busan on September 6-7 due to strong winds,Shipping sources on September 5 indicate that due to strong winds there is a high risk for the Port of Busan to be closed for 24 hours from the evening of September 6 to 7.,Moderate,Maritime Advisory,Severe Winds,Republic of Korea,5/9/19 12:52,2019,35.06488,128.81854,,Severe Winds,TRUE,FALSE
44
+ 11,1629,High winds impact maritime movements at Port of Dammam,"Shipping sources on April 22 indicated that high winds disrupted vessel movements in the Port of Dammam, Saudi Arabia, on April 22. Minor impacts should be expected on the berthing line up.",Minor,Maritime Advisory,Severe Winds,Saudi Arabia,23/4/19 13:48,2019,26.49713,50.19945,,Severe Winds,TRUE,FALSE
45
+ 12,1630,High winds impact port operations in Le Havre,"According to local sources, high winds have impeded port operations at container terminals in the Port of Le Havre since the early morning of March 12. In particular shipside operations have been suspended for several hours. Incoming and outgoing shipments are thus likely to be delayed throughout the day.",Minor,Maritime Advisory,,France,12/3/19 15:59,2019,49.46477,0.14702,,,TRUE,FALSE
46
+ 85,1997,Pipeline Leak in Yvelines Raises Prospect of Grandpuits Refinery Shutdown,"At about 10:35 PM local time Sunday, an alarm was set off indicating a pressure drop along the Ile-de-France pipeline (PLIF) due to a crude oil leak in an area of fields in Autouillet, Yvelines department. Several rivers in Vicq, Boissy-sans-Avoir, and Autouillet (R le Lieutel, R de Breuil, and R de la Coquerie) were also impacted by the underground hydrocarbon spill. The prefecture said up to about 17 acres of fields were affected by the leak, with gendarmerie reporting up to 30 acres impacted overall. The leak has been halted and the pipeline depressurized. The company said that the exact cause of the leak was under investigation, and that the affected stretch of pipeline was being excavated as part of that process. Pumping trucks have been deployed to recover oil and the impacted land is being excavated and removed with the use of construction equipment, with the cleanup process expected to take multiple months.
47
+
48
+ Assessment: The approximately 166-mile pipeline connected the port of Le Havre to the Grandpuits refinery, and it is operated by Total to transport primarily crude oil. The Grandpuits refinery is planned to reduce operations gradually this week as reserves decrease, though the exact timing and duration for a prospective shutdown of the refinery was not yet announced. The PLIF had suffered a leak in May 2014 near Le Havre, and there have been calls for increased monitoring and upgrading of underground pipeline, particularly with regard to aging infrastructure. The 2014 spill caused the refinery to shut down for three weeks. However, Total insisted that there is not a shortage risk for fuel supplies in Ile-de-France. Resilience360 customers are advised to continue monitoring associated developments that may impact refinery operations, fuel supply, and fuel prices while the pipeline remains out of operation and the Grandpuits refinery has reduced or halted operations.",Moderate,Miscellaneous Events,Hazmat Response,France,27/2/19 0:13,2019,48.84937,1.80379,,Hazmat Response,TRUE,TRUE
49
+ 79,1848,Moll de Llevant - Fire on Marina Barcelona 92 ship brought under control. Incident closed.,Updated reports indicate that firefighters have brought under control a fire that broke out in pallets on a Marina Barcelona 92 ship located near Moll de Llevant. No injuries or damage to ships were reported. There were no reports of disruptions to port operations. This incident is closed.,Moderate,Miscellaneous Events,Maritime Accident,Spain,6/9/19 13:04,2019,41.36601,2.18598,,Maritime Accident,TRUE,TRUE
50
+ 66,1662,Houston Ship Channel - Ship channel has been reopened after protesters detained. Incident closed.,"The U.S. Coast Guard has reopened part of the Houston Ship Channel near Baytown. The closure was the result of Greenpeace protesters on the Fred Hartman Bridge, who have since been detained. This incident is closed.",Moderate,Miscellaneous Events,Maritime Advisory,United States,12/9/19 14:41,2019,29.70263,-95.01394,,Maritime Advisory,TRUE,TRUE
51
+ 81,1858,Mundra and Kandla Ports in Gujarat Put on Alert Due to Threat; Similar Alerts Issued Previously,"On Thursday, it was reported that the Mundra Port and Kandla Port in Gujarat State have been put on high alert due to a potential terror threat. The alert originated from intelligence agencies regarding the possibility that Pakistan-trained commandos had infiltrated the Gulf of Kutch after two single-engine Pakistani boats were found in the Harami Nala area. The ports have instructed shipping agents and vessels to report any suspicious activity to the Coast Guard or other authorities at the ports. Security at the ports has also been increased, although there were no initial reports of disruptions to maritime shipping. Around 60 personnel have been deployed at checkpoints at ports, who are also equipped with devices to puncture the tires of vehicles that may attempt to break through barriers. Around 100 Central Industrial Security Force (CISF) commandos have also been deployed to the Nayara Energy oil refinery in the Vadinagar area of Gujarat.
52
+
53
+ Assessment: The alert on Thursday followed reports earlier in the week from Navy Chief Admiral Karambir Singh, who said that the Pakistan-based Jaish-e-Mohammad (JeM) militant group was training individuals to carry out underwater attacks. Admiral Singh said that the navy was fully prepared to foil such attacks. Reports about Pakistan s military training JeM divers to carry out attacks are not new and have been mentioned last year and the year before, although the targets were reportedly Indian Navy vessels. It remains questionable that JeM has the capabilities to carry out that kind of underwater attack, as they have not displayed similar capabilities in the past. In addition, there are a multitude of easier methods to carry out an attack on port facilities that do not involve underwater diving training and the transportation and use of more advanced explosives. It is also important to note that Indian intelligence agencies issue hundreds of alerts every year, with the vast majority not resulting in an attack. Resilience360 customers are advised to follow instructions issued by port authorities to maintain an elevated level of vigilance and expect an increased security presence at ports, which could result in maritime shipping delays.",Moderate,Miscellaneous Events,Maritime Advisory,India,29/8/19 22:43,2019,22.83827,69.72853,,Maritime Advisory,TRUE,FALSE
54
+ 84,1975,Philippines Warns China over Thitu (Pag-asa) Island in the South China Sea; Protest Held in Manila,"On Saturday, President Rodrigo Duterte warned China that occupying Thitu (Pag-asa) Island in the South China Sea would risk starting a war. His statements were in response the presence of around 200 Chinese fishing vessels around the Sandy Cay area, which the Philippine government has called illegal. The Philippine Navy has monitored around 600 Chinese vessels coming and going in the first quarter of the year. A protest was also held on Tuesday outside the Chinese Embassy in Manila, where around 1,000 demonstrators demanded that President Duterte take a stronger stance towards China.
55
+
56
+
57
+ Assessment: Thitu Island is occupied by the Philippines but is also claimed by China, Taiwan, and Vietnam. Despite the strong rhetoric from President Duterte, it is unlikely that China or the Philippines would risk a major military conflict over the presence of fishing boats near Thitu Island. President Duterte has sought a closer alliance with China, especially in economic matters, and China is prepared to offer the Philippines large loans towards infrastructure projects. However, accidents or minor skirmishes involving vessels from the two countries could lead to a deterioration in relations and increase the risk of additional protests against Chinese interests. Resilience360 customers are advised to monitor the situation and avoid all areas where protests are taking place.",Moderate,Miscellaneous Events,Maritime Advisory,Philippines,9/4/19 20:19,2019,,,,Maritime Advisory,TRUE,FALSE
58
+ 64,1591,Greenpeace Protest on Hartman Bridge on Thursday Temporarily Closed Portion of Houston Ship Channel,"On Thursday, September 12, 23 protesters associated with Greenpeace demonstrated along the Fred Hartman Bridge in Baytown, TX just outside of Houston. The protest began around 6:30 AM local time and included 11 of the protesters rappelling down the bridge to disrupt shipping traffic in the Houston Ship Channel. While the bridge stayed open during the protest to vehicular traffic, a half-mile portion of the ship channel was closed between Light 102A and Light 104 until reopening early Friday morning after protesters were arrested. The protest remained peaceful; however, the initial blocking of the bridge led to a minor motor vehicle accident which injured one person.
59
+
60
+ Assessment: The Greenpeace activists stated that their goal of the protest was to attempt to disrupt the oil and gas shipments that go through the Houston Ship Channel. The group timed their protest to attempt to get the attention of Democratic presidential candidates who were in Houston Thursday for a Democrat National Committee presidential debate. The Houston Ship Channel and Port of Houston are vital to U.S. oil and gas exports and the ship channel is the busiest in the country annually generating approximately $339 billion and providing over 1.35 million jobs to the state of Texas. The portion of the ship channel that was closed on Thursday normally sees approximately 300 vessels pass through, and according to media sources, at least seven were blocked during the temporary closure. The protest did not cause any significant disruptions to shipping interests, as many companies often build in an extra day to shipping schedules as a precaution.
61
+
62
+ An uptick in climate change-related protests has been seen in recent months, especially across Europe. The majority of protests are organized by groups such as Greenpeace or Extinction Rebellion and have been relatively peaceful, although some have been disruptive with protesters blocking bridges, and trains, similar to the Greenpeace protesters temporarily shutting down the Houston Ship Channel on Thursday. Additionally, a weeklong series of protests are being planned across the world beginning Friday, September 20 as part of a global climate strike action. The relative ease with which the Greenpeace protesters in Baytown were able to shut down a portion of the Houston Ship Channel using a small group of people and the increased focus on climate-related protests highlight the possibility of an increase in similar protests across the United States. As such, Resilience360 customers with cargo interests should anticipate the possibility of disruptions to supply chains due to climate-related protests.",Moderate,Miscellaneous Events,"Protest/Riot, Port Disruption, Cargo Disruption, Climate Change",United States,13/9/19 21:29,2019,29.71163,-95.00479,,Miscellaneous Events,TRUE,TRUE
63
+ 65,1661,Houston Ship Channel - Channel has partially reopened to ship traffic. Incident closed.,"Channel traffic has partially reopened from Tucker Bayou to Houston Ship Channel Light 116, as cleanup efforts continue related to pollutant runoff from the ITC facility fire. The runoff has been exacerbated by the partial collapse of a dike wall that took place on Friday, March 22 near the ITC facility. The dike wall has since been repaired. Updated sources indicate that the waterway may be reopened on Monday, March 25. Authorities are conducting cleanup operations and there appears to be no active health hazard. Ships are being able to traverse the channel if they have less than a 34-foot draft. All vessels are required to be inspected for chemical contaminates and are being spaced at approximately one-hour intervals. This incident is closed.",Moderate,Miscellaneous Events,"Chemical Spill, Maritime Accident, Port Disruption, Hazmat Response, Public Safety / Security",United States,22/3/19 19:30,2019,29.74453,-95.10194,,Miscellaneous Events,TRUE,TRUE
64
+ 67,1667,Hurricane Dorian Expected to Make Landfall on Florida Coast as Cat 3 Storm Over Labor Day Weekend,"Hurricane Dorian continues to move through the Atlantic Ocean as it passes Puerto Rico and heads toward the eastern Florida coast. The storm is expected to strengthen over the next days and is forecast to make landfall as a major Category 3 storm, on the Saffir-Simpson Hurricane Wind Scale, late Sunday night or early Monday morning. Significant uncertainty remains on the path of Dorian; however, as of Wednesday afternoon the projected path has the storm making landfall near Orlando, FL and the Florida Space Coast. Portions of Florida and other parts of the southeastern coast are expected to receive between four to eight inches of rain with some areas receiving upwards of ten inches. Tropical-storm-force winds will reach the Florida coast by Saturday. Governor Ron DeSantis has issued a state of emergency for the state of Florida in anticipation of the storm.
65
+
66
+ Assessment: The state of emergency declaration allows for preemptive planning coordination of resources across Florida to help with preparation and eventual recovery efforts. Governor DeSantis has also urged Florida residents to have seven days of supplies and an emergency plan in case of disaster as the hurricane continues to near the state. While the path of the storm remains uncertain, Dorian making landfall as a Category 3 storm will likely cause significant disruptions across Florida. These may include evacuations, widespread power outages, road closures, and life-threatening flooding conditions. The U.S. Coast Guard has set a number of Florida ports at port condition Whiskey including Key West, Miami, Port Canaveral, Tampa, St Petersburg, and Manatee. Port condition Whiskey means that ports remain open to all commercial and cargo operations; however, commercial vessels greater than 500 gross tons should begin making plans to depart the port. It is likely as the storm nears that a number of these ports will close due to the anticipated high winds.
67
+
68
+ Travelers should also anticipate air travel delays across the Southeast, especially for Florida airports as well as Hartsfield-Jackson Atlanta International Airport (ATL), a major hub for both domestic and international flights. Additionally, several projections have the storm either moving across Florida into the Gulf of Mexico, potentially creating disruptions for the Gulf Coast or have the storm moving up the southeast coast where disruptions would occur in Georgia, South Carolina, and North Carolina. Resilience360 customers are advised to heed all local weather warnings and evacuation notices. Customers with interests in Florida, the Southeast, and the Gulf Coast should continue monitoring the progress of Hurricane Dorian.",Severe,Miscellaneous Events,"Tropical Cyclone / Storm, Severe Winds, Flooding, Evacuation, Air Travel Disruption, Port Closure, Power Outage, Public Safety / Security, Weather Advisory, Travel Warning",United States,28/8/19 22:44,2019,28.53823,-81.37739,,Miscellaneous Events,TRUE,TRUE
69
+ 68,1670,Hyundai Heavy Industries Workers Vote to Strike over Daewoo Acquisition; Date Unspecified,"On Thursday, it was reported that workers at Hyundai Heavy Industries (HHI) voted to approve a strike against the acquisition of Daewoo Shipbuilding. Workers from Daewoo Shipbuilding and Marine Engineering (DSME) also voted to approve a strike earlier in the week. Nearly 60 percent of HHI workers voted in favor of the strike, along with 90 percent of DSME workers. A date for the strikes have not been set.
70
+
71
+
72
+ Assessment: HHI signed a conditional agreement last month to acquire DSME from the government, with a formal agreement expected in March. The two shipbuilders cover around 20 percent of the global shipbuilding market share. The unrest among workers in South Korea s shipbuilding sector are tied to mounting financial pressures caused by a decrease in global demand for new vessels and increased competition from Chinese shipbuilders. A coordinated strike between HHI and DSME workers would cause significant disruptions in the shipbuilding industry. Resilience360 customers with interests in the sector are advised to monitor reports regarding a specific date for a strike. Workers may also decide to hold protests or marches, which should be avoided due to the potential for clashes with police. Protests would likely be held in Ulsan or on Geoje Island, where the HHI and DSME are headquartered, respectively.",Moderate,Miscellaneous Events,"Industrial Action, Maritime Advisory, Miscellaneous Strikes, Public Safety / Security",Republic of Korea,21/2/19 22:22,2019,,,,Miscellaneous Events,TRUE,TRUE
73
+ 69,1672,IED Detonated Near Police in Hong Kong; Could Represent Escalation If It Becomes a Regular Tactic,"On Sunday, an explosion was reported near the intersection of Nathan Rd and Fife St in the Mong Kok area of Kowloon. The incident took place near a parked police vehicle after police officers had disembarked and were clearing roadblocks following another evening of violent protests across Hong Kong that resulted in over 200 arrests. The explosive was reportedly detonated remotely by a cell phone and was placed in a flower pot around six feet from the police van. No injuries were reported, although police said that the device was meant to injure or kill officers. Police have said that the intensity of the explosion was relatively low and was likely comprised of homemade materials.
74
+
75
+ Assessment: The use of an IED by protesters was not completely unexpected, as police carried out two raids on warehouses in July and August where explosive materials were found and suspects from pro-independence groups were arrested. The raid on the Lung Shing Factory Building in Tusen Wan in July found two pounds of the chemical triacetone triperoxide (TATP), which is a powerful explosive that can be made from common household ingredients, along with incendiary devices, acids, and sharp weapons. The raid on an industrial building in Fo Tan in August found over 30 smoke bombs and a significant amount of cash. If the use of explosives becomes a regular tactic by the protesters, it will seriously deteriorate the security situation in Hong Kong, particularly if they result in any casualties. The use of a cell phone as a remote detonator could also give police justification to suspend mobile phone services in certain areas when protests are taking place. Resilience360 customers are advised to continue to avoid all areas where protests are occurring and should be aware of the risk of restrictions on telecommunications services.",Severe,Miscellaneous Events,"Protest / Riot, Public Safety / Security, Public Transportation Disruption, Police Operations, Roadway Closure / Disruption, Hazmat Response, Bombing",China,14/10/19 18:01,2019,,,,Miscellaneous Events,TRUE,TRUE
76
+ 72,1775,Major Raids Target Opposition After Local Elections Inflict Losses to United Russia s Control,"On Thursday, authorities raided over 200 sites across more than 40 cities in Russia. The operation was targeting opposition activists and entities and has been denounced as a political crackdown in retaliation for President Vladimir Putin s party suffering losses in last Sunday s local elections. While the Kremlin maintains a strong grip across Russia, opponent Alexey Navalny s smart voting plan is believed to have contributed to the erosion of United Russia s control of local office seats. Combined with sustained summer protests and increasing discontent with the status quo, the Kremlin will likely take further measures trying to thwart growth and unification of opposing forces, though activists continue to show resilience to such efforts. As well as possible protests over the crackdown and disputed election results, demonstrations over an array of other grievances may be met by crackdowns and other efforts by authorities to quash expressions of opposition and discontent.
77
+
78
+ Recent Developments
79
+
80
+ From early Thursday morning, police carried out raids in 43 cities across the country in a sweeping crackdown on opposition politicians and their supporters. The raids happened four days after local elections around Russia, which saw President Vladimir Putin s United Russia party take serious hits. During the operation Thursday, offices of opposition leader Alexey Navalny s Anti-Corruption Foundation (FBK) had equipment seized as part of an investigation launched in August for alleged money laundering, with homes searched as well. According to the FBK chief of staff, both employees and volunteers with the foundation had equipment, documents, mobile phones, and funds seized by authorities. As a result of a raid in Chelyabinsk, multiple staff at the targeted office received medical treatment on site but were not hospitalized. During searches of FBK offices in Saransk, an activist was struck and injured by a police vehicle. Election monitoring non-governmental organization Golos also reported raids Thursday targeting the homes of its activists. More than 1,000 officers were involved in the raids, and Navalny claimed more than 200 locations were searched.
81
+
82
+ The highest-profile battle over local elections occurred in Moscow, with election officials preventing or disqualifying an array of candidates for local posts, sparking sustained protests frequently marred by clashes and heavy crackdowns. However, Navalny advocated a system of smart voting intended to encourage people to vote for the candidate in each race considered most likely to beat United Russia or other Kremlin-backed candidates. United Russia lost more than a third of the Moscow city council seats it had previously held, with the result largely attributed to tactical voting. In addition to reported voting irregularities on Sunday, there were reports of violence and other forms of intimidation linked to the elections. A poll monitor at a station in St Petersburg who had filed a formal complaint over a voter registration matter was punched by a man who then left, while police on scene made no effort to respond. Another observer had been punched in the face several times heading into the same polling station that morning.
83
+
84
+ Election results have spurred additional protest activity in some locations around Russia, including sustained protests in Siberia s Buryatia region. At least 17 activists have been detained by authorities in Ulan-Ude while disputing the mayoral election results for the regional capital. Police contended the activists had thrown a tear gas canister at officers, while media outlets have reported police threw the tear gas canister inside a bus of activists. Potentially as an effort to defuse tensions, a rally has been authorized by Ulan-Ude officials for Sunday evening, though unauthorized protests remain possible.
85
+
86
+ Background
87
+
88
+ The refusal to register an array of opposition candidates for Moscow s local elections sparked some of the largest sustained protests in Russia in recent years. The largest demonstration drew about 60,000 participants, while thousands frequently turned out to protests in the run-up to elections, even despite major crackdowns on unauthorized gatherings. More than 2,000 people were detained during election-related protests over the summer, with some facing brief jail terms while others facing charges of mass unrest could receive lengthy jail sentences. Controversy over several issues, including pension reform, poverty and other economic concerns, as well as topics such as wildfires and waste management continue to drive discontent with the ruling powers in the country. Overt and aggressive crackdowns on protests, censorship and internet restrictions, and blatant election rigging continue to be sources of potential protest activity over perceived injustices.Assessment
89
+
90
+ Navalny supporters contend that the raids and money laundering allegations are being used to strike back at opponents of Putin and the ruling elite, particularly targeting those who backed smart voting tactics, protests, and other measures to combat Putin and United Russia s grasp on power around the country. The smart voting tactics have been invoked in other elections around the world, and could be used in future Russian elections. The method of concentrating votes with any single opposing candidate to defeat a Kremlin-supported candidate could remain more challenging to thwart. While United Russia secured victory in many regional elections, the party had substantial losses in local elections around the country.
91
+
92
+ Despite the ousting of an array of Kremlin-backed candidates with the tactic of smart voting, Communists and candidates from other smaller parties who were the primary victors from such methods generally remain at least somewhat influenced by the Kremlin. Nonetheless, in Moscow, no candidate from United Russia was on the ballot, with candidates previously with the party or otherwise pro-Kremlin opting to run as independent due to perceived discontent in the capital with the ruling party. Such a development highlights the growing challenges to the Kremlin s grasp on power amidst increasing disapproval of the status quo in Russia.
93
+
94
+ A heavy-handed approach to opposition forces may deter some supporters and damage the networks and resources of Navalny s FBK. However, crackdowns can also spur resistance to such tactics and opposition activists have shown resilience and innovation to authorities efforts to stifle them. While the wave of protests during the summer has tapered off, additional demonstrations over the latest election, crackdowns, and other efforts to repress opposition supporters are possible. In conjunction, any unauthorized demonstration in Russia may face a swift crackdown by police and the Kremlin may pursue additional actions to combat any suspected erosion of support and power in the country. Resilience360 customers are advised to continue monitoring associated developments in the post-election period and to avoid any demonstration activity in Russia due to the risk of mass detentions and clashes with authorities.",Moderate,Miscellaneous Events,Political Crackdown / Opposition Movement,Russia,14/9/19 0:16,2019,,,,Miscellaneous Events,TRUE,TRUE
95
+ 74,1778,Malaysia Detained Crew After Greek Ship Collided with Malaysian Vessel near Johor Baru Port,"On Saturday, a Greece-registered ship collided with the Malaysia-registered Polaris, a vessel that lays buoys, near Johor Baru Port in waters claimed by Singapore. The collision occurred while the Greek ship was headed to Tanjung Pelepas in Malaysia. There were no reports of any oil leaks or injuries associated with the collision, or any impacts to maritime shipping. The crew of the Greek ship was detained by the Malaysian Marine Department (Mardep) after the collision. Following the incident, Singapore called on Malaysia to withdraw its ships from Singapore s waters.
96
+
97
+ Assessment: Saturday s incident highlights the disputes over airspace and sea territory between Malaysia and Singapore that began last year. In 2018, the Malaysian government extended its port limits into Johor, and Malaysian vessels started entering waters that are claimed by Singapore. Singapore disputed the port limit extension, and its foreign minister has called on Malaysia to comply with international law. Bilateral talks held last month between the nations proved unsuccessful. The ongoing territorial dispute can cause confusion for vessels entering the Johor area, and increase the risk of safety hazards such as collisions. Although the likelihood of direct conflict between Singapore and Malaysia is low, Resilience360 customers are advised to exercise caution if travelling in the Johor area.",Moderate,Miscellaneous Events,Maritime Accident/Ground Transportation Advisory,Singapore,11/2/19 23:10,2019,1.44703,103.76346,,Miscellaneous Events,TRUE,TRUE
98
+ 76,1815,Metro Manila and Rizal Province to Experience Water Interruptions Due to Insufficient Supply,"On Wednesday, Manila Water announced that it was implementing a revised water interruption program in the Metro Manila area and Rizal Province to deal with insufficient water supplies. Customers may experience between six and 21 hours of service interruptions, while water pressure may be lower than usual. The water interruptions will be first impacting the East Zone of Metro Manila, including the Makati, Mandaluyong, Pasig, Pateros, San Juan, Taguig, and Marikina areas, parts of Quezon City and Manila, as well as the Angono and Antipolo areas of Rizal Province.
99
+
100
+
101
+ Assessment: The water restriction program is expected to last for the next three months or until the rainy season begins. The dry season typically ends in May, but has been extended due to the El Nino weather phenomenon. El Nino is one of the causes of the recent shortage, but another main cause is a significant increase in demand. Manila Water has said that it will prioritize hospitals and school areas, while water tankers would be provided to households and commercial establishments. Updates from Manila Water regarding specific areas, dates, and times of service interruptions can be found at https://www.manilawater.com/customer/advisories/service-advisories , https://www.facebook.com/manilawater/ , and https://twitter.com/ManilaWaterPH . Resilience360 customers are advised to expect water service disruptions, which could intensify in the coming months, until the rainy season begins.",Moderate,Miscellaneous Events,"Public Utilities Disruption, Water Restriction Program",Philippines,13/3/19 21:28,2019,,,,Miscellaneous Events,TRUE,TRUE
102
+ 78,1828,"Minor In Barcelona, striking port stevedores attempted to block access to...","In Barcelona, striking port stevedores attempted to block access to the cruise ship terminal; local Mossos d'Esquadra police physically removed them.",Minor,Miscellaneous Events,Maritime Accident/Ground Transportation Advisory,Spain,21/10/19 14:44,2019,,,,Miscellaneous Events,TRUE,TRUE
103
+ 80,1855,MQM Worker Killed in Overnight Shooting,"Pakistani media sources report that a worker from the Muttahida Qaumi Movement (MQM) was killed in a gun attack in Karachi late Monday. Another MQM worker was injured in the incident, which involved six gunmen on motorcycles who opened fire on the MQM-P union council (UC) office in the New Karachi area of the city. The assailants fled the scene and reportedly remain at large.
104
+
105
+ Assessment: No group immediately claimed credit for the attack, and the motivation behind it remains unclear. In the past, secular-minded parties such as MQM have been targeted by Islamist militant groups, including in Karachi. The MQM has also come under pressure from the Pakistani security establishment, which has waged a crackdown against the party in recent years. From a security standpoint, demonstrations and labor strikes are common in association with acts of political violence in Pakistan, most of which are accompanied by rioting and other forms of civil unrest. Although no specific details have been announced in this regard, Resilience360 customers in Karachi should monitor local media outlets for associated security developments.",Moderate,Miscellaneous Events,"Death / Injury, Individuals in Focus, Public Safety / Security, Public Transportation Disruption, Roadway Closure / Disruption",Pakistan,12/2/19 21:40,2019,,,,Miscellaneous Events,TRUE,TRUE
106
+ 82,1922,Operation Brock Initiated on M20 in Kent as Preparation for Possible No-Deal Brexit Congestion,"On Monday, authorities initiated Operation Brock on the M20 in Kent as part of the government s plan to manage gridlock in the event of a no-deal Brexit. The system to manage truck and passenger vehicle traffic to and from the Kentish coast, including the port of Dover, is being coordinated with Kent police and local authorities along the motorway. The operation includes the coast-bound side of the M20 between Junctions 8 (Maidstone) and 9 (Ashford) being solely for truck traffic heading to Dover, serving as a holding space for trucks during congestion periods, though truck traffic remained free-flowing Monday. The dedicated 14-mile stretch will enable trucks to move along based on truck congestion levels, while all other traffic moving in both coast- and London-bound directions travels on the London-bound side of the motorway. The London-bound side in the affected stretch is thus divided with barriers for two lanes of traffic to the coast and two lanes of traffic to London. The anticipated duration of Operation Brock was not immediately announced by authorities.
107
+
108
+ Assessment: With a potential Brexit date recently pushed back to at least April 12, questions have been raised about the purpose of continuing with the no-deal contingency scenario at this time. Operation Brock is a replacement of the previous M20 traffic management system called Operation Stack. In the new system, up to 11,000 trucks are expected to be able to fit into the M20 queuing procedure. Should further space be required, the government has backup provisions for directing trucks to the disused Manston airport as well as the coast bound M26. Although government officials have said checks would not be carried out at Dover in the short term following a no-deal Brexit to avoid heavy disruption, the Dover Harbour Board warned last week that an increase of two minutes per vehicle bound for France undergoing checks could result in 17-mile queues. Resilience360 customers are advised to anticipate possible disruptions while Operation Brock remains in effect and to continue monitoring associated developments that may impact cross-Channel traffic and the United Kingdom s planned separation from the European Union.",Moderate,Miscellaneous Events,Ground Transportation Advisory / Brexit Contingency / Government Plan / Traffic Management / Border Control / Cross-Channel Traffic,United Kingdom,25/3/19 20:56,2019,51.14663,0.87603,,Miscellaneous Events,TRUE,TRUE
109
+ 83,1950,Over 100 Protesters Detained at Anti-Government Demonstration in Managua on Saturday,"On Saturday, hundreds of supporters of the Civic Alliance opposition coalition gathered for a demonstration in downtown Managua. The action was intended to protest against the administration of incumbent President Daniel Ortega, and to demand the release of political prisoners. As Ortega s government had previously outlawed anti-government demonstrations, security forces rapidly descended on the scene and forcibly dispersed the crowd with truncheons, tear gas, and rubber bullets. Nicaraguan authorities claimed that 107 protesters were detained for violating public order. The opposition claimed that 164 demonstrators were detained, and that six had been wounded by rubber bullets. Multiple news outlets and non-governmental organizations have claimed that several journalists that were covering the demonstration were assaulted by police and/or robbed of their cellphones. There were no reports of injuries among law enforcement personnel.
110
+
111
+ Assessment: Political leaders from the United States, Uruguay, and multiple European countries condemned the actions taken by Nicaraguan authorities on Saturday. Representatives of the European Union called on the Ortega administration to respect the principles of freedom of peaceful assembly and freedom of the press. Nicaragua s opposition movement claims that 770 people have been imprisoned on spurious, politically motivated charges since civil unrest broke out across Nicaragua last April. The government freed 112 detainees in late February, and 50 more were transferred to house arrest on March 15th. Nevertheless, members of the Civic Alliance have deemed the concessions to be inadequate, and the issue remains one of the major sticking points preventing the two sides from resuming negotiations.
112
+
113
+ As no solution to Nicaragua s ongoing political crisis appears to be within sight, similar bouts of anti-government protest activity and ensuing clashes with security forces will likely continue to sporadically crop up in the coming weeks and months. Resilience360 continues to advise customers to avoid non-essential travel to the country, due to the risks posed by civil unrest and the government s arbitrary enforcement of laws.",Moderate,Miscellaneous Events,Protest / Riot,Nicaragua,18/3/19 23:49,2019,,,,Miscellaneous Events,TRUE,TRUE
114
+ 70,1685,"Incheon and Changwon Production losses of 20,000 vehicles due to strike. Incident closed.","Media sources indicate that partial and general strikes had resulted in a production loss of 20,000 vehicles. The GM Korea union announced plans to continue the strike at GM facilities in Incheon and Changwon after the Chuseok holiday, although there were no initial reports that the strike resumed. Over 10,000 General Motors (GM) Korea workers were participating in the action. Workers held a full-scale walkout on September 9, 10, and 11. Media sources indicated workers also held an overtime ban during the Chuseok holiday, which was observed Thursday, September 12 to Saturday, September 14. GM Korea workers held two four-hour partial strikes on Friday, August 30, at their facilities in Incheon and Changwon, as well as a two-day partial strike on Tuesday, August 20 and Wednesday, August 21. The labor action was organized to protest wages. This incident is closed.",Moderate,Miscellaneous Events,Miscellaneous Strikes,Republic of Korea,20/8/19 9:58,2019,37.51119,126.7095,,Miscellaneous Strikes,TRUE,TRUE
115
+ 71,1733,Kocaeli and Tarsus - Izocam workers have called off the strikes. Incident closed.,"Izocam workers have called off the strikes at two factories across Turkey. The strikes were originally called in the factory in Kocaeli, near Kiplasma Cd and Refik Baydur Cd, and in a factory at an unspecified location in Tarsus, in Mersin Province. This incident is closed.",Minor,Miscellaneous Events,Miscellaneous Strikes,Turkey,16/1/19 23:33,2019,40.82164,29.55738,,Miscellaneous Strikes,TRUE,TRUE
116
+ 75,1784,Malta - Negotiations on Saturday reportedly ended with agreement; vote to be held on Monday.,"Fuel station owners affiliated with the General Retailers and Traders Union (GRTU) have suspended the nationwide strike across Malta during a meeting with Energy Ministry officials on Saturday. Updated sources stated that the negotiations on Saturday were positive and ended with an agreement; a vote on accepting the agreement will be held on Monday.
117
+
118
+ The strike began on Tuesday, January 22, following an unsuccessful meeting with Energy Ministry officials to discuss the possibility of the government funding expensive renovations that most fuel stations are required to complete per a directive issued by the European Union. Fuel stations across Malta have been shutting down their pumps beginning at 6:00 PM local time during the strike, not allowing motorists to purchase fuel past that time.",Moderate,Miscellaneous Events,Miscellaneous Strikes,Malta,22/1/19 13:42,2019,35.89564,14.50828,,Miscellaneous Strikes,TRUE,TRUE
119
+ 41,2219,Shipco Transport to fine shippers for misdeclared hazardous cargoes,"Industry sources indicate on August 22 that Chatham, NJ-based Shipco Transport announced its intent to implement a penalty of USD 5,000-35,000 (EUR 4,500-31,750) per container for misdeclared or undeclared hazardous cargoes, with a definitive fine quantity unknown as of reporting, and it is unknown when this penalty will come into effect. Shipco will hold the customer on record liable and responsible for costs and consequences related to violations, fines, damages, incidents, claims and corrective measures resulting from cases of shipment of such cargo. The move is similar to that implemented by other cargo shipping lines in the aftermath of the Yantian Express fire.",Minor,Port Closure,Cargo Disruption,United States,22/8/19 17:38,2019,40.7392,-74.37718,,Cargo Disruption,FALSE,TRUE
120
+ 29,2110,Port Said closed due to bad weather,"Shipping sources indicate that Port Said has been temporarily closed on February 25 due to adverse weather. The port is likely to restart operations on Tuesday, February 26.",Moderate,Port Closure,Maritime Advisory,Egypt,25/2/19 9:13,2019,31.24254,32.30148,,Maritime Advisory,TRUE,FALSE
121
+ 34,2186,Second berth opens at Batangas Port,"Media sources reported that a second berth was inaugurated at Batangas Container Terminal in Santa Clara, Batangas City on April 29, 2019 with the hopes of increasing the harbor’s capacity for mooring vessels. Reports suggested that the new berth is a 250-meter extension of the first berth. Together with both berths, the port now has a total of 600 meters of berth capable of handling over 450,000 twenty-footer containers annually as the first berth was only able to accommodate 300,000 20-footer containers in a year.",Minor,Port Closure,Maritime Advisory,Philippines,7/5/19 3:07,2019,13.75435,121.04334,,Maritime Advisory,TRUE,TRUE
122
+ 37,2204,Severe winds causes temporary closure of Dammam Port,Industry sources reported that vessels’ movements for docking and undocking at Dammam Port have been suspended since 21:45 (local time) on March 24 due to severe winds. The duration of the closure remains unclear at this time.,Severe,Port Closure,Maritime Advisory,Saudi Arabia,26/3/19 1:56,2019,26.49713,50.19945,,Maritime Advisory,TRUE,FALSE
123
+ 39,2216,Sharm al-Sheikh port closed due to heavy winds and high waves,"Media sources indicated that the Red Sea Port Authority closed the Sharm al-Sheikh port and the Alexandria Port Authority closed the ports of Alexandria and Dekheila on March 30 due to poor weather conditions. The Alexandria and Dekheila ports were shut down due to high waves and wind speed, although loading and unloading of vessels and movement of goods to and from the ports is still continuing. The Sharm al-Sheik port was closed following wind speeds between 22 and 28 knots and waves between 3 and 4 meters high.",Moderate,Port Closure,Maritime Advisory,Egypt,1/4/19 2:23,2019,27.85673,34.28837,,Maritime Advisory,TRUE,FALSE
124
+ 21,2099,Port of Ulsan bans variety of hazardous cargo following major chemical tanker explosion,"Media sources indicate on October 7 that the Port of Ulsan has banned a variety of hazardous cargoes from terminals near a bridge where a major chemical tanker Stolt Groenland was caught in an explosion that occurred on September 30. The fire injured eighteen people and led to an overhead bridge, which serves as a thoroughfare for the city, to be closed for two days due to safety checks.",Moderate,Port Closure,Maritime Accident / Hazmat Response,Republic of Korea,7/10/19 10:12,2019,35.45647,129.36626,,Miscellaneous Events,FALSE,TRUE
125
+ 27,2105,Port of Yokohama likely to close due to approaching Typhoon Neoguri,"On October 21, shipping sources indicate that Port of Yokohama will likely suspend its operations from October 22 - 23. Approaching Typhoon Neogure will bring strong winds and likely to cause port closure. Increased berthing times and shipping delays are likely to occur in the following days.",Minor,Port Closure,Tropical Cyclone / Storm,Japan,21/10/19 12:08,2019,,,,Miscellaneous Events,TRUE,TRUE
126
+ 42,2225,Singapore arrests eleven men for illegal marine gas oil transaction,Media sources indicated on November 4 that the Maritime and Port Authority of Singapore has arrested eleven men for their suspected involvement in an illegal transaction of marine gas oil at sea off Northern Tuas. The eleven men include six crew members of a craft of a marine service provider and another five of a foreign-registered tugboat. Preliminary reports cited that the crewmembers were thought to have misappropriated the marine gas oil and sold it to crew members of the tugboats.,Moderate,Port Closure,"Maritime Accident, Maritime Advisory, Police Operations, Maritime Accident/Ground Transportation Advisory",Singapore,6/11/19 1:37,2019,,,,Miscellaneous Events,FALSE,TRUE
127
+ 40,2217,Shinagawa container terminal to be closed during golden week,"Local sources indicate that from April 30 to May 6, the Tokyo Aomi and Shinagawa container terminals will be closed due to golden week public holiday period. Customers with shipments to the two terminals are advised to cooperate with shipping agents for blank sailings ahead of schedule.",Moderate,Port Closure,Port Closure,Japan,15/3/19 2:37,2019,35.60732,139.76355,,Port Closure,TRUE,TRUE
128
+ 32,2145,Rail yard congestion still affecting Port of Montreal,Industry sources on April 23 indicate that rail yard congestion issues are still affecting containers flowing through the Port of Montreal. This is reportedly due to exceeded terminal capacities. Shipping companies were said to be working with CN rail and MGT terminal to finalize operational plans to handle reefers in the off-dock CN ramp. The transition is set to take place on May 25. Customers should expect longer shipping times for on-shipments via rail in Montreal.,Moderate,Port Closure,Port Congestion,Canada,24/4/19 16:14,2019,,,,Port Congestion,FALSE,TRUE
129
+ 35,2191,Severe congestion persists at Aomi container terminal in the Port of Tokyo - UPDATE 1,"Intelligence obtained by Everstream Analytics on August 16 confirms that circumstances driving congestion at Aomi terminal in the Port of Tokyo persist as of August 16. Sources continue to indicate that truckers continue to face waiting times to pick-up and deliver containers of more than 8 hours at the Aomi Terminal. Due to the congestion at the terminal, regardless of the availability of berth, vessels often need to wait on the water in the bay until terminals are ready to unload containers or entirely omit the port call. Alternative options include using ocean carries that call at other terminals such as Ohio and Shinagawa terminals in the Port of Tokyo or use entirely different ports such as the Port of Yokohama.",Severe,Port Closure,Port Congestion,Japan,16/7/19 15:27,2019,35.61326,139.78239,,Port Congestion,FALSE,TRUE
130
+ 36,2192,Severe congestion reported at Port of Savannah,"Industry sources on February 26 that following last weekend’s closure of the Port of Savannah, average waiting times of 2-4 days are currently reported for incoming vessels. Currently, there are 14 vessels at anchorage, with further delays likely throughout the week.",Severe,Port Closure,Port Congestion,United States,26/2/19 15:09,2019,32.12258,-81.13851,,Port Congestion,FALSE,TRUE
131
+ 31,2127,Power shutdown scheduled for May 1 at Jawaharlal Nehru Port,"According to industry source, APMT, Mumbai has announced that as part of the annual power shutdown as announced by JNPT towards undertaking allied maintenance activities, the terminal shall have limited operations between 0800 Hours and 1700 Hours on May 1, 2019. Terminal operations on the Quayside and Rail siding shall be impacted due to the above activities, however, the terminal Gate and Yard operations shall continue as per normal.",Minor,Port Closure,Port Disruption,India,25/4/19 20:48,2019,18.95112,72.95023,,Port Disruption,FALSE,TRUE
132
+ 23,2101,Port of Valencia - The port was temporarily closed due to high winds in the area. Incident closed.,Media sources reported that the Port of Valencia was temporarily closed due to high winds in the area. There were no reports of major disruptions. This incident is closed.,Minor,Port Closure,Severe Winds,Spain,20/12/19 11:08,2019,39.44809,-0.31693,,Severe Winds,TRUE,FALSE
133
+ 24,2102,Port of Valencia temporarily closes due to high winds,Spanish media sources report on December 20 that the Port of Valencia has been temporarily closed due to high winds in the area. It was not immediately disclosed when the port was expected to reopen.,Moderate,Port Closure,Severe Winds,Spain,20/12/19 11:25,2019,,,,Severe Winds,TRUE,FALSE
134
+ 28,2106,Port operations resume following temporary suspension at DP World Southampton,Sources indicated that land and shipside operations have resumed following suspension of services from 08:45 to 14:15 (local time) on April 13 due to high winds at DP World Southampton terminal. Customers are advised to expect berthing and unloading delays for shipments scheduled on April 13 and 14.,Minor,Port Closure,Severe Winds,United Kingdom,15/4/19 7:44,2019,,,,Severe Winds,TRUE,FALSE
135
+ 26,2104,Port of Yokohama closed due to strong winds,Shipping sources indicated on January 30 that the Port of Yokohama was closed from January 28 to January 29 due to strong winds. Customers should expect berthing delays as well rescheduled departure times for vessels.,Moderate,Port Closure,,Japan,30/1/19 15:56,2019,35.44849,139.67131,,,TRUE,FALSE
136
+ 30,2118,Ports of Savannah and Brunswick - Both ports have resumed normal operations. Incident closed.,The Port of Savannah and the Port of Brunswick have reopened with normal operations following the passage of Hurricane Dorian. This incident is closed.,Moderate,Port Closure,,United States,4/9/19 16:27,2019,32.1232,-81.13941,,,TRUE,FALSE
137
+ 33,2153,Repair works at Port of Colombo may cause berthing delays,"Local sources on March 5 indicate that a terminal at the Port of Colombo will carry out repairs on 4 gantry cranes in the next 12 to 14 weeks. As a result, carriers can expert berthing delays with an average waiting time of 24-hours and above.",Moderate,Port Closure,,Sri Lanka,5/3/19 8:21,2019,6.94071,79.84632,,,TRUE,FALSE
138
+ 38,2205,Severe winds disrupt operations at Port of London,"Shipping sources on March 10 indicated that severe winds have impeded operations at container terminals in the Port of London, including DP World London Gateway since March 10. Disruption was expected to persist until the early morning of March 11.",Moderate,Port Closure,,United Kingdom,11/3/19 10:25,2019,51.50715,0.46296,,,FALSE,FALSE
139
+ 43,2802,UPDATE: Delays decrease to 12-24 hours at Port of Colombo,"Industry sources indicate on September 17 that some vessels at the South Asia Gateway Terminals (SAGT Terminal) at the Port of Colombo, Sri Lanka, are currently facing delays that have now reduced to 12-24 hours due to internal labour issues.",Moderate,Port Congestion,Maritime Advisory,Sri Lanka,5/9/19 12:18,2019,,,,Maritime Advisory,TRUE,FALSE
140
+ 44,2805,UPDATE: Dense fog causes closure of Port of Shanghai,"According to sources on March 13, the Port of Shanghai is currently closed due to dense fog. Hence, vessels’ waiting time is around 1 to 1.5 days. Moreover, low visibility is likely to affect the port from 22:00 (local time) from March 13 until 16:00 of the next day. There is a moderate to high chance that the port may closed again.",Severe,Port Congestion,Maritime Advisory,China,11/3/19 7:13,2019,31.31882,121.66033,,Maritime Advisory,FALSE,FALSE
141
+ 46,2812,UPDATE: Dwelling time around 24-hours at Port of Ningbo,"Local sources on January 4 indicate that an average waiting time at the Port of Ningbo is around 24-hours. As of now, the dwelling time is likely to remain the same until January 5. The port is facing congestion clearing of backlogs from the recent port closure. Furthermore, inbound pilot services at Xiaozhimen channel has been suspended on the afternoon of January 3 for about 2-hours due to congestion caused by fishing vessels.",Minor,Port Congestion,Maritime Advisory,China,2/1/19 8:52,2019,29.95168,121.72285,,Maritime Advisory,TRUE,FALSE
142
+ 47,2813,UPDATE: Dwelling time decreases to 0.5 day,"Local sources on March 6 indicate that an average waiting time at the Port of Shanghai has reduced to 0.5 day and the situation is likely to remain the same for the next 2-days. Due to poor visibility, pilot services were suspended for both north and south channel since the evening of March 5.",Moderate,Port Congestion,Maritime Advisory,China,5/3/19 7:24,2019,31.31927,121.66068,,Maritime Advisory,TRUE,FALSE
143
+ 48,2814,UPDATE: Fishing boats congestion impacts pilot services at Port of Ningbo,Updated sources on August 20 indicate that outbound pilot services through Xiazhimen channel will be suspended on August 20 midnight due to fishing boats congestion.,Minor,Port Congestion,Maritime Advisory,China,19/8/19 8:00,2019,,,,Maritime Advisory,TRUE,FALSE
144
+ 57,2849,UPDATE: Operations at Port of Shanghai affected due to Typhoon Mitag,"Shipping sources on October 2 indicate that port operations at the Port of Shanghai were affected due to Typhoon Mitag. A vessel evacuation plan has been in place since 10:00 local time on October 1. According to sources, pilot operations are expected to resume by 17:00 local time on October 2. Customers are advised to expect delays and congestion following the re-opening of the port.",Moderate,Port Congestion,Maritime Advisory,China,30/9/19 11:38,2019,,,,Maritime Advisory,TRUE,TRUE
145
+ 45,2806,UPDATE: Dense fog disrupts Port of Shanghai,"Sources on April 26 indicate the Port of Shanghai was temporarily closed due to dense fog from 17:30 (local time) on April 24 to 17:00 of the next day. As a result, an average waiting time for vessels is currently around 1 to 2 days.",Minor,Port Congestion,Port Closure,China,24/4/19 6:31,2019,,,,Port Closure,FALSE,TRUE
146
+ 55,2831,UPDATE: Intermittent port closures reported at Port of Xiamen,"According to local sources on April 10, Port of Xiamen was closed from the midnight of April 9 to noon. Previously the port was closed on April 7 until the morning due to dense fog. An average waiting for vessels to berth at the port is likely to be around 0.5 to 1 day at the moment.",Minor,Port Congestion,Port Closure,China,10/4/19 2:16,2019,,,,Port Closure,FALSE,TRUE
147
+ 50,2819,UPDATE: Heavy congestion continues at Port of Houston,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Houston due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,Port Congestion,United States,5/3/19 7:43,2019,29.6823,-94.99355,,Port Congestion,TRUE,TRUE
148
+ 51,2820,UPDATE: Heavy congestion continues at Port of Savannah,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Savannah due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,Port Congestion,United States,5/3/19 7:40,2019,32.12169,-81.13986,,Port Congestion,TRUE,TRUE
149
+ 56,2842,UPDATE: No more congestion reported at Port of Hong Kong,"According to local sources on April 17, average waiting times for vessels to berth at the Port of Hong Kong were still around 1 day on April 16 but have decreased on April 17. No further delays are to be expected for the time being.",Minor,Port Congestion,Port Congestion,Hong Kong,15/4/19 12:38,2019,,,,Port Congestion,TRUE,TRUE
150
+ 63,2872,UPDATE: Port of Colombo faces berthing delays,"Sources on March 11 indicate that the Port of Colombo is facing berthing delays due to unspecified reasons. An average waiting time for the vessels is likely to be around 1 to 2 days. In addition, congestion is likely to be exacerbated by repair works on 4 gantry cranes which will start March 18 and last for two weeks. Out-of-window arrivals will likely face extended berthing times.",Moderate,Port Congestion,Port Congestion,Sri Lanka,11/3/19 7:51,2019,6.94047,79.8464,,Port Congestion,TRUE,TRUE
151
+ 58,2850,UPDATE: Operations resume at DP World Southampton terminal,"Updated industry sources indicate that shipside and landside operations at the DP World Southampton terminal have resumed after being suspended since 05:00 local time on September 10 due to fog. Landside operations resumed at 05:30, while shipside operations resumed at 07:30. VBS bookings will be slowly released into the system once the trucks currently waiting in line have been served.",Severe,Port Congestion,Port Disruption,United Kingdom,10/9/19 5:37,2019,50.91186,-1.45732,,Port Disruption,FALSE,TRUE
152
+ 59,2854,UPDATE: Operations resume at Port of Southampton following suspension due to fog,"Shipping sources indicate that on February 22 that landside and shipside operations have resumed at 08:00 local time after a 9-hour suspension due to fog at container terminals in the Port of Southampton, United Kingdom.",Minor,Port Congestion,Port Disruption,United Kingdom,22/2/19 9:06,2019,,,,Port Disruption,TRUE,FALSE
153
+ 52,2823,UPDATE: High winds likely to disrupt Port of Algeciras,"According to sources on March 22, severe winds at the Port of Algeciras are likely to disrupt the port’s operation for the day.",Moderate,Port Congestion,Severe Winds,Spain,20/3/19 13:11,2019,,,,Severe Winds,TRUE,FALSE
154
+ 53,2824,UPDATE: High winds still causing port disruption at container terminals in Jeddah,"Industry sources on April 23 indicate that high winds continue to impact maritime movements in the Port of Jeddah, Saudi Arabia, since April 20. The situation is expected to last until April 23, and likely to cause congestion at container terminals in the port.",Moderate,Port Congestion,Weather Advisory,Saudi Arabia,18/4/19 13:31,2019,21.4625,39.16,,Weather Advisory,TRUE,FALSE
155
+ 49,2815,"UPDATE: Fog causing congestion in Houston, affecting ocean shipments","Updated sources report fog has delayed vessel traffic through the Houston Ship Channel every day in the past week, delaying shipments of cargo and container ships. Waiting times for berths have thus increased as the channel has been shut intermittently for a total of 133 hours in the past two weeks. The channel was reportedly open as of 17:30 local time on March 13. The delays this week caused US phenol and acetone producer AdvanSix to declare a force majeure on phenol at its plant in Frankford, Pennsylvania earlier this week. Fog in Houston is particularly bad in the October-March period as warmer, humid Gulf air collides with cooler onshore air.",Severe,Port Congestion,,United States,11/3/19 7:48,2019,29.68234,-94.99355,,,TRUE,FALSE
156
+ 54,2827,UPDATE: Inbound pilotage suspended due to strong winds; 0.5 days of waiting times reported,Sources indicate that strong winds have led to the suspension of inbound pilot services at the Port of Shanghai on January 25. The risk of the port’s closure is high. Current berthing times for vessels are 0.5 days.,Moderate,Port Congestion,,China,22/1/19 10:08,2019,31.3201,121.65733,,,TRUE,FALSE
157
+ 60,2869,UPDATE: Port of Busan reopens after temporary closure,Updated sources indicate on October 4 that the Port of Busan has opened after a brief closure on October 2 during the passage of Typhoon Mitag.,Moderate,Port Congestion,,Republic of Korea,30/9/19 11:41,2019,,,,,FALSE,FALSE
158
+ 61,2870,UPDATE: Port of Charleston is open for business following Hurricane Dorian's passage,Updated media sources indicate on September 6 that the Port of Charleston is open for business as of September 6 with normal hours on September 7-8 gate hours. The Coast Guard Captain of the Port previously placed Port Condition Zulu for Charleston terminal due to the anticipated arrival of sustained gale force winds from Hurricane Dorian within 12 hours.,Severe,Port Congestion,,United States,3/9/19 5:28,2019,32.90473,-79.96455,,,TRUE,FALSE
IS424_Data_Mining/code/LLM Evaluation/result.csv ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ,id,Headline,Summary,Severity,Category,Region,Datetime,Year,lat,lon,URL,GPT Generated Result
2
+ 0,3,Shanghai port congestion impacts terminals in Qingdao and Ningbo,"The persisting port congestion at Shanghai’s Yangshan deep-sea terminal is reportedly also impacting vessel arrival times at other major public terminals in China, including Qingdao and Ningbo. Industry sources indicated that this is due to some vessels being diverted from Shanghai as well as unstable weather and re-shuffling of alliances networks. Some carriers are reportedly planning contingency actions for the coming months, including consolidation of volumes and temporary reduction of port calls. No further details were initially provided.",Minor,Maritime Advisory,China,27/4/17 9:16,2017,29.52,121.3319,,Maritime Advisory
3
+ 1,17,24 hour pier hold in effect at Port of Durban,"Industry sources indicate on August 31 that the Port of Durban’s Pier 1 is experiencing high traffic volumes resulting in road congestion on Bayhead Road, leading Transnet to urge transporters to hold back on dispatching export turns to the container terminal until 6AM on September 1. Extensions will be reviewed for open stacks. Those shipping from Durban should anticipate delays and should plan accordingly.",Minor,Port Congestion,South Africa,31/8/18 18:07,2018,-29.86875,31.03305,,Port Congestion
4
+ 2,1599,Heavy congestion reported at Port of Houston,"According to sources on March 20, heavy congestion has been reported at Port of Houston due to fog.",Moderate,Port Congestion,United States,20/3/19 12:43,2019,29.60949,-95.00567,,Port Congestion
5
+ 3,1600,Heavy congestion reported at Port of Long Beach,"According to sources on January 7, heavy congestion has been reported at Port of Long Beach with 9 vessels waiting for anchor. Reports suggest that the peak volume will be impacting from the terminals to the warehouses.",Severe,Port Congestion,United States,7/1/19 9:50,2019,33.75448,-118.21663,,Port Congestion
6
+ 4,1613,High risk of pilot suspension reported at Port of Yokohama,"On December 31, shipping sources indicate that strong wind is anticipated at Port of Yokohama, Japan, from the afternoon of December 31 until the morning of January 1. The adverse weather conditions pose a high risk of a pilot suspension during the above mentioned period.",Minor,Severe Winds,Japan,31/12/19 10:23,2019,,,,Severe Winds
7
+ 5,1614,High risk of port closure at Port of Busan on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Busan to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Port Closure,Republic of Korea,23/4/19 12:13,2019,,,,Port Closure
8
+ 6,1615,High risk of port closure at Port of Busan on September 6-7 due to strong winds,Shipping sources on September 5 indicate that due to strong winds there is a high risk for the Port of Busan to be closed for 24 hours from the evening of September 6 to 7.,Moderate,Severe Winds,Republic of Korea,5/9/19 12:52,2019,35.06488,128.81854,,Severe Winds
9
+ 7,1616,High risk of port closure at Port of Kwangyang on April 24,Local sources on April 23 indicate that dense fog is likely to cause the Port of Kwangyang to close container terminal operations from the morning to noon on April 24. Customers should plan shipments accordingly and expect delays.,Minor,Port Closure,Republic of Korea,23/4/19 12:14,2019,34.90849,127.66822,,Port Closure
10
+ 8,1617,High risk of port closure at the Port of Houston due to fog,Shipping sources indicate on November 21 that there will be an elevated risk of port closures at the Port of Houston from November 22-24 due to fog. Customers should expect longer transit times through container terminals at the port and potential impacts on barge transportation on the Houston Ship Channel.,Moderate,Maritime Advisory,United States,21/11/19 16:26,2019,,,,Maritime Advisory
11
+ 9,1618,High swells caused terminal closure at Port of San Antonio,"Sources on March 21 indicate that heavy swells at the Port of San Antonio have caused a terminal to be closed. At the time of writing, it remains unclear when operations will return to normalcy.",Moderate,Maritime Accident/Port Disruption,Chile,21/3/19 7:23,2019,,,,Miscellaneous Events
12
+ 10,1628,High winds disruption port operations in Southampton,"On April 27, high winds are disrupting shipside and landside operations at the DP World Southampton terminal since 09:00 local time. Drop-offs or pick-ups of containers are reportedly suspended for the time being.",Minor,Port Disruption,United Kingdom,27/4/19 15:46,2019,50.91,-1.46,,Port Disruption
13
+ 11,1629,High winds impact maritime movements at Port of Dammam,"Shipping sources on April 22 indicated that high winds disrupted vessel movements in the Port of Dammam, Saudi Arabia, on April 22. Minor impacts should be expected on the berthing line up.",Minor,Severe Winds,Saudi Arabia,23/4/19 13:48,2019,26.49713,50.19945,,Severe Winds
14
+ 12,1630,High winds impact port operations in Le Havre,"According to local sources, high winds have impeded port operations at container terminals in the Port of Le Havre since the early morning of March 12. In particular shipside operations have been suspended for several hours. Incoming and outgoing shipments are thus likely to be delayed throughout the day.",Minor,,France,12/3/19 15:59,2019,49.46477,0.14702,,
15
+ 13,1636,Higher dwell times reported at Port of Long Beach due to labor shortages,"Shipping sources on April 29 reported that the Pier T container terminal has experienced higher than usual dwell times for containers due to labor shortages related to the Easter holidays, combined with high volume. Customers should be mindful of potential delays as backlog gets cleared.",Minor,Port Congestion,United States,30/4/19 15:57,2019,33.75292,-118.2096,,Port Congestion
16
+ 14,1663,Houston ship channel fully reopens on April 25,"Industry sources reported that Houston ship channel reopened to full operations on April 25 following a fire at Intercontinental Terminal Co.’s Deer Park, Texas, terminal in late March. The temporary closure which lasted for several weeks disrupted several oil shipments. Houston ship channel is part of Port of Houston.",Minor,Maritime Accident,United States,25/4/19 7:40,2019,29.60569,-94.95236,,Maritime Accident
17
+ 15,1687,Increased berthing times reported at Port of Busan,"Shipping sources indicated on January 31 that the Port of Busan, South Korea, currently experiences longer berthing times for incoming vessels. Waiting times of up to 0.5 day have been reported.",Minor,Port Congestion,Republic of Korea,31/1/19 11:35,2019,35.12051,129.05654,,Port Congestion
18
+ 16,1688,Increased congestion elevates drayage costs at Port of New York/New Jersey,"Industry sources indicate on January 23 that increased inbound volumes due in part to Lunar New Year traffic combined with delays and congestions have complicated intermodal shipment at the Port of New York and New Jersey to the point that drayage costs are increasing. Ocean carriers and terminals are charging USD 100-250/day for container-related delays, and drayage carriers are charging USD 75/hr for terminal idling. Those shipping at the Port of New York and New Jersey should anticipate moderate delays and should plan accordingly.",Moderate,Port Congestion,United States,23/1/19 20:31,2019,40.69166,-74.14911,,Port Congestion
19
+ 17,1706,Intermittent closures at Manila International Container Terminal for holidays,"Industry sources reported that Manila International Container Terminal has announced its port operation schedule for the upcoming Christmas and New Year holidays. According to its advisory, vessel and yard operations will continue its regular operations until 19.00 local time on December 24 and will resume at 19.00 on the next day. Normal operations will continue until December 31 when vessel and yard operations will stop at 19.00 local time and will resume again at 19.00 on the next day.",Minor,Port Disruption,Philippines,20/12/19 0:49,2019,,,,Port Disruption
20
+ 18,1712,IT maintenance on Nov 6 may affect operations at Bharat Mumbai Container Terminals,"Shipping sources report on November 1 that IT maintenance activity will take place at Bharat Mumbai Container Terminals at Port of Nhava Sheva on November 6 from 01.00 to 07.00 (local time). During this time, complete network and E-form 13 and 11 applications will not be available. Other operation procedures and service delays can be expected as well.",Minor,Port Disruption,India,4/11/19 9:35,2019,18.93881,72.94084,,Port Disruption
21
+ 19,1736,Lack of gangs may impede operations at Port of Barcelona,Shipping sources on August 19 indicate that lack of gangs due to summer holidays may impede port operations at Port of Barcelona.,Minor,Maritime Advisory,Spain,19/8/19 8:43,2019,41.35591,2.16674,,Maritime Advisory
22
+ 20,1737,Lack of trucking resources affects productivity at Port of Balboa,Industry sources report on October 15 that productivity has declined at the Port of Balboa due to a lack of trucking resources. The current lineup of rail movement is at least until the year-end.,Moderate,Ground Transportation Advisory,Panama,15/10/19 4:11,2019,8.95763,-79.5614,,Ground Transportation Advisory
23
+ 21,2099,Port of Ulsan bans variety of hazardous cargo following major chemical tanker explosion,"Media sources indicate on October 7 that the Port of Ulsan has banned a variety of hazardous cargoes from terminals near a bridge where a major chemical tanker Stolt Groenland was caught in an explosion that occurred on September 30. The fire injured eighteen people and led to an overhead bridge, which serves as a thoroughfare for the city, to be closed for two days due to safety checks.",Moderate,Maritime Accident / Hazmat Response,Republic of Korea,7/10/19 10:12,2019,35.45647,129.36626,,Miscellaneous Events
24
+ 22,2100,Port of Valencia - The port has been reopened to maritime traffic. Incident closed.,The Port of Valencia has been reopened to maritime traffic following a closure due to poor weather conditions. This incident is closed.,Moderate,Maritime Advisory,Spain,20/4/19 7:09,2019,39.44809,-0.31693,,Maritime Advisory
25
+ 23,2101,Port of Valencia - The port was temporarily closed due to high winds in the area. Incident closed.,Media sources reported that the Port of Valencia was temporarily closed due to high winds in the area. There were no reports of major disruptions. This incident is closed.,Minor,Severe Winds,Spain,20/12/19 11:08,2019,39.44809,-0.31693,,Severe Winds
26
+ 24,2102,Port of Valencia temporarily closes due to high winds,Spanish media sources report on December 20 that the Port of Valencia has been temporarily closed due to high winds in the area. It was not immediately disclosed when the port was expected to reopen.,Moderate,Severe Winds,Spain,20/12/19 11:25,2019,,,,Severe Winds
27
+ 25,2103,Port of Yokohama closed due to strong winds,Shipping sources indicate on February 4 that the Port of Yokohama was expected to be closed for 12 hours on February 4 due to strong winds. Customers should expect berthing delays as pilot services may be suspended.,Minor,Maritime Advisory,Japan,4/2/19 17:12,2019,35.44849,139.67131,,Maritime Advisory
28
+ 26,2104,Port of Yokohama closed due to strong winds,Shipping sources indicated on January 30 that the Port of Yokohama was closed from January 28 to January 29 due to strong winds. Customers should expect berthing delays as well rescheduled departure times for vessels.,Moderate,,Japan,30/1/19 15:56,2019,35.44849,139.67131,,
29
+ 27,2105,Port of Yokohama likely to close due to approaching Typhoon Neoguri,"On October 21, shipping sources indicate that Port of Yokohama will likely suspend its operations from October 22 - 23. Approaching Typhoon Neogure will bring strong winds and likely to cause port closure. Increased berthing times and shipping delays are likely to occur in the following days.",Minor,Tropical Cyclone / Storm,Japan,21/10/19 12:08,2019,,,,Miscellaneous Events
30
+ 28,2106,Port operations resume following temporary suspension at DP World Southampton,Sources indicated that land and shipside operations have resumed following suspension of services from 08:45 to 14:15 (local time) on April 13 due to high winds at DP World Southampton terminal. Customers are advised to expect berthing and unloading delays for shipments scheduled on April 13 and 14.,Minor,Severe Winds,United Kingdom,15/4/19 7:44,2019,,,,Severe Winds
31
+ 29,2110,Port Said closed due to bad weather,"Shipping sources indicate that Port Said has been temporarily closed on February 25 due to adverse weather. The port is likely to restart operations on Tuesday, February 26.",Moderate,Maritime Advisory,Egypt,25/2/19 9:13,2019,31.24254,32.30148,,Maritime Advisory
32
+ 30,2118,Ports of Savannah and Brunswick - Both ports have resumed normal operations. Incident closed.,The Port of Savannah and the Port of Brunswick have reopened with normal operations following the passage of Hurricane Dorian. This incident is closed.,Moderate,,United States,4/9/19 16:27,2019,32.1232,-81.13941,,
33
+ 31,2127,Power shutdown scheduled for May 1 at Jawaharlal Nehru Port,"According to industry source, APMT, Mumbai has announced that as part of the annual power shutdown as announced by JNPT towards undertaking allied maintenance activities, the terminal shall have limited operations between 0800 Hours and 1700 Hours on May 1, 2019. Terminal operations on the Quayside and Rail siding shall be impacted due to the above activities, however, the terminal Gate and Yard operations shall continue as per normal.",Minor,Port Disruption,India,25/4/19 20:48,2019,18.95112,72.95023,,Port Disruption
34
+ 32,2145,Rail yard congestion still affecting Port of Montreal,Industry sources on April 23 indicate that rail yard congestion issues are still affecting containers flowing through the Port of Montreal. This is reportedly due to exceeded terminal capacities. Shipping companies were said to be working with CN rail and MGT terminal to finalize operational plans to handle reefers in the off-dock CN ramp. The transition is set to take place on May 25. Customers should expect longer shipping times for on-shipments via rail in Montreal.,Moderate,Port Congestion,Canada,24/4/19 16:14,2019,,,,Port Congestion
35
+ 33,2153,Repair works at Port of Colombo may cause berthing delays,"Local sources on March 5 indicate that a terminal at the Port of Colombo will carry out repairs on 4 gantry cranes in the next 12 to 14 weeks. As a result, carriers can expert berthing delays with an average waiting time of 24-hours and above.",Moderate,,Sri Lanka,5/3/19 8:21,2019,6.94071,79.84632,,
36
+ 34,2186,Second berth opens at Batangas Port,"Media sources reported that a second berth was inaugurated at Batangas Container Terminal in Santa Clara, Batangas City on April 29, 2019 with the hopes of increasing the harbor’s capacity for mooring vessels. Reports suggested that the new berth is a 250-meter extension of the first berth. Together with both berths, the port now has a total of 600 meters of berth capable of handling over 450,000 twenty-footer containers annually as the first berth was only able to accommodate 300,000 20-footer containers in a year.",Minor,Maritime Advisory,Philippines,7/5/19 3:07,2019,13.75435,121.04334,,Maritime Advisory
37
+ 35,2191,Severe congestion persists at Aomi container terminal in the Port of Tokyo - UPDATE 1,"Intelligence obtained by Everstream Analytics on August 16 confirms that circumstances driving congestion at Aomi terminal in the Port of Tokyo persist as of August 16. Sources continue to indicate that truckers continue to face waiting times to pick-up and deliver containers of more than 8 hours at the Aomi Terminal. Due to the congestion at the terminal, regardless of the availability of berth, vessels often need to wait on the water in the bay until terminals are ready to unload containers or entirely omit the port call. Alternative options include using ocean carries that call at other terminals such as Ohio and Shinagawa terminals in the Port of Tokyo or use entirely different ports such as the Port of Yokohama.",Severe,Port Congestion,Japan,16/7/19 15:27,2019,35.61326,139.78239,,Port Congestion
38
+ 36,2192,Severe congestion reported at Port of Savannah,"Industry sources on February 26 that following last weekend’s closure of the Port of Savannah, average waiting times of 2-4 days are currently reported for incoming vessels. Currently, there are 14 vessels at anchorage, with further delays likely throughout the week.",Severe,Port Congestion,United States,26/2/19 15:09,2019,32.12258,-81.13851,,Port Congestion
39
+ 37,2204,Severe winds causes temporary closure of Dammam Port,Industry sources reported that vessels’ movements for docking and undocking at Dammam Port have been suspended since 21:45 (local time) on March 24 due to severe winds. The duration of the closure remains unclear at this time.,Severe,Maritime Advisory,Saudi Arabia,26/3/19 1:56,2019,26.49713,50.19945,,Maritime Advisory
40
+ 38,2205,Severe winds disrupt operations at Port of London,"Shipping sources on March 10 indicated that severe winds have impeded operations at container terminals in the Port of London, including DP World London Gateway since March 10. Disruption was expected to persist until the early morning of March 11.",Moderate,,United Kingdom,11/3/19 10:25,2019,51.50715,0.46296,,
41
+ 39,2216,Sharm al-Sheikh port closed due to heavy winds and high waves,"Media sources indicated that the Red Sea Port Authority closed the Sharm al-Sheikh port and the Alexandria Port Authority closed the ports of Alexandria and Dekheila on March 30 due to poor weather conditions. The Alexandria and Dekheila ports were shut down due to high waves and wind speed, although loading and unloading of vessels and movement of goods to and from the ports is still continuing. The Sharm al-Sheik port was closed following wind speeds between 22 and 28 knots and waves between 3 and 4 meters high.",Moderate,Maritime Advisory,Egypt,1/4/19 2:23,2019,27.85673,34.28837,,Maritime Advisory
42
+ 40,2217,Shinagawa container terminal to be closed during golden week,"Local sources indicate that from April 30 to May 6, the Tokyo Aomi and Shinagawa container terminals will be closed due to golden week public holiday period. Customers with shipments to the two terminals are advised to cooperate with shipping agents for blank sailings ahead of schedule.",Moderate,Port Closure,Japan,15/3/19 2:37,2019,35.60732,139.76355,,Port Closure
43
+ 41,2219,Shipco Transport to fine shippers for misdeclared hazardous cargoes,"Industry sources indicate on August 22 that Chatham, NJ-based Shipco Transport announced its intent to implement a penalty of USD 5,000-35,000 (EUR 4,500-31,750) per container for misdeclared or undeclared hazardous cargoes, with a definitive fine quantity unknown as of reporting, and it is unknown when this penalty will come into effect. Shipco will hold the customer on record liable and responsible for costs and consequences related to violations, fines, damages, incidents, claims and corrective measures resulting from cases of shipment of such cargo. The move is similar to that implemented by other cargo shipping lines in the aftermath of the Yantian Express fire.",Minor,Cargo Disruption,United States,22/8/19 17:38,2019,40.7392,-74.37718,,Cargo Disruption
44
+ 42,2225,Singapore arrests eleven men for illegal marine gas oil transaction,Media sources indicated on November 4 that the Maritime and Port Authority of Singapore has arrested eleven men for their suspected involvement in an illegal transaction of marine gas oil at sea off Northern Tuas. The eleven men include six crew members of a craft of a marine service provider and another five of a foreign-registered tugboat. Preliminary reports cited that the crewmembers were thought to have misappropriated the marine gas oil and sold it to crew members of the tugboats.,Moderate,"Maritime Accident, Maritime Advisory, Police Operations, Maritime Accident/Ground Transportation Advisory",Singapore,6/11/19 1:37,2019,,,,Miscellaneous Events
45
+ 43,2802,UPDATE: Delays decrease to 12-24 hours at Port of Colombo,"Industry sources indicate on September 17 that some vessels at the South Asia Gateway Terminals (SAGT Terminal) at the Port of Colombo, Sri Lanka, are currently facing delays that have now reduced to 12-24 hours due to internal labour issues.",Moderate,Maritime Advisory,Sri Lanka,5/9/19 12:18,2019,,,,Maritime Advisory
46
+ 44,2805,UPDATE: Dense fog causes closure of Port of Shanghai,"According to sources on March 13, the Port of Shanghai is currently closed due to dense fog. Hence, vessels’ waiting time is around 1 to 1.5 days. Moreover, low visibility is likely to affect the port from 22:00 (local time) from March 13 until 16:00 of the next day. There is a moderate to high chance that the port may closed again.",Severe,Maritime Advisory,China,11/3/19 7:13,2019,31.31882,121.66033,,Maritime Advisory
47
+ 45,2806,UPDATE: Dense fog disrupts Port of Shanghai,"Sources on April 26 indicate the Port of Shanghai was temporarily closed due to dense fog from 17:30 (local time) on April 24 to 17:00 of the next day. As a result, an average waiting time for vessels is currently around 1 to 2 days.",Minor,Port Closure,China,24/4/19 6:31,2019,,,,Port Closure
48
+ 46,2812,UPDATE: Dwelling time around 24-hours at Port of Ningbo,"Local sources on January 4 indicate that an average waiting time at the Port of Ningbo is around 24-hours. As of now, the dwelling time is likely to remain the same until January 5. The port is facing congestion clearing of backlogs from the recent port closure. Furthermore, inbound pilot services at Xiaozhimen channel has been suspended on the afternoon of January 3 for about 2-hours due to congestion caused by fishing vessels.",Minor,Maritime Advisory,China,2/1/19 8:52,2019,29.95168,121.72285,,Maritime Advisory
49
+ 47,2813,UPDATE: Dwelling time decreases to 0.5 day,"Local sources on March 6 indicate that an average waiting time at the Port of Shanghai has reduced to 0.5 day and the situation is likely to remain the same for the next 2-days. Due to poor visibility, pilot services were suspended for both north and south channel since the evening of March 5.",Moderate,Maritime Advisory,China,5/3/19 7:24,2019,31.31927,121.66068,,Maritime Advisory
50
+ 48,2814,UPDATE: Fishing boats congestion impacts pilot services at Port of Ningbo,Updated sources on August 20 indicate that outbound pilot services through Xiazhimen channel will be suspended on August 20 midnight due to fishing boats congestion.,Minor,Maritime Advisory,China,19/8/19 8:00,2019,,,,Maritime Advisory
51
+ 49,2815,"UPDATE: Fog causing congestion in Houston, affecting ocean shipments","Updated sources report fog has delayed vessel traffic through the Houston Ship Channel every day in the past week, delaying shipments of cargo and container ships. Waiting times for berths have thus increased as the channel has been shut intermittently for a total of 133 hours in the past two weeks. The channel was reportedly open as of 17:30 local time on March 13. The delays this week caused US phenol and acetone producer AdvanSix to declare a force majeure on phenol at its plant in Frankford, Pennsylvania earlier this week. Fog in Houston is particularly bad in the October-March period as warmer, humid Gulf air collides with cooler onshore air.",Severe,,United States,11/3/19 7:48,2019,29.68234,-94.99355,,
52
+ 50,2819,UPDATE: Heavy congestion continues at Port of Houston,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Houston due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,United States,5/3/19 7:43,2019,29.6823,-94.99355,,Port Congestion
53
+ 51,2820,UPDATE: Heavy congestion continues at Port of Savannah,Updated sources on March 6 indicate that heavy berth congestion continues to affect Port of Savannah due to the port’s closure caused by dense fog. An average waiting time to berth is likely to be more than 24-hours at this time.,Severe,Port Congestion,United States,5/3/19 7:40,2019,32.12169,-81.13986,,Port Congestion
54
+ 52,2823,UPDATE: High winds likely to disrupt Port of Algeciras,"According to sources on March 22, severe winds at the Port of Algeciras are likely to disrupt the port’s operation for the day.",Moderate,Severe Winds,Spain,20/3/19 13:11,2019,,,,Severe Winds
55
+ 53,2824,UPDATE: High winds still causing port disruption at container terminals in Jeddah,"Industry sources on April 23 indicate that high winds continue to impact maritime movements in the Port of Jeddah, Saudi Arabia, since April 20. The situation is expected to last until April 23, and likely to cause congestion at container terminals in the port.",Moderate,Weather Advisory,Saudi Arabia,18/4/19 13:31,2019,21.4625,39.16,,Weather Advisory
56
+ 54,2827,UPDATE: Inbound pilotage suspended due to strong winds; 0.5 days of waiting times reported,Sources indicate that strong winds have led to the suspension of inbound pilot services at the Port of Shanghai on January 25. The risk of the port’s closure is high. Current berthing times for vessels are 0.5 days.,Moderate,,China,22/1/19 10:08,2019,31.3201,121.65733,,
57
+ 55,2831,UPDATE: Intermittent port closures reported at Port of Xiamen,"According to local sources on April 10, Port of Xiamen was closed from the midnight of April 9 to noon. Previously the port was closed on April 7 until the morning due to dense fog. An average waiting for vessels to berth at the port is likely to be around 0.5 to 1 day at the moment.",Minor,Port Closure,China,10/4/19 2:16,2019,,,,Port Closure
58
+ 56,2842,UPDATE: No more congestion reported at Port of Hong Kong,"According to local sources on April 17, average waiting times for vessels to berth at the Port of Hong Kong were still around 1 day on April 16 but have decreased on April 17. No further delays are to be expected for the time being.",Minor,Port Congestion,Hong Kong,15/4/19 12:38,2019,,,,Port Congestion
59
+ 57,2849,UPDATE: Operations at Port of Shanghai affected due to Typhoon Mitag,"Shipping sources on October 2 indicate that port operations at the Port of Shanghai were affected due to Typhoon Mitag. A vessel evacuation plan has been in place since 10:00 local time on October 1. According to sources, pilot operations are expected to resume by 17:00 local time on October 2. Customers are advised to expect delays and congestion following the re-opening of the port.",Moderate,Maritime Advisory,China,30/9/19 11:38,2019,,,,Maritime Advisory
60
+ 58,2850,UPDATE: Operations resume at DP World Southampton terminal,"Updated industry sources indicate that shipside and landside operations at the DP World Southampton terminal have resumed after being suspended since 05:00 local time on September 10 due to fog. Landside operations resumed at 05:30, while shipside operations resumed at 07:30. VBS bookings will be slowly released into the system once the trucks currently waiting in line have been served.",Severe,Port Disruption,United Kingdom,10/9/19 5:37,2019,50.91186,-1.45732,,Port Disruption
61
+ 59,2854,UPDATE: Operations resume at Port of Southampton following suspension due to fog,"Shipping sources indicate that on February 22 that landside and shipside operations have resumed at 08:00 local time after a 9-hour suspension due to fog at container terminals in the Port of Southampton, United Kingdom.",Minor,Port Disruption,United Kingdom,22/2/19 9:06,2019,,,,Port Disruption
62
+ 60,2869,UPDATE: Port of Busan reopens after temporary closure,Updated sources indicate on October 4 that the Port of Busan has opened after a brief closure on October 2 during the passage of Typhoon Mitag.,Moderate,,Republic of Korea,30/9/19 11:41,2019,,,,
63
+ 61,2870,UPDATE: Port of Charleston is open for business following Hurricane Dorian's passage,Updated media sources indicate on September 6 that the Port of Charleston is open for business as of September 6 with normal hours on September 7-8 gate hours. The Coast Guard Captain of the Port previously placed Port Condition Zulu for Charleston terminal due to the anticipated arrival of sustained gale force winds from Hurricane Dorian within 12 hours.,Severe,,United States,3/9/19 5:28,2019,32.90473,-79.96455,,
64
+ 62,2871,UPDATE: Port of Chittagong reopens following former cyclone passage,"Sources indicate that the Port of Chittagong has reopened on the afternoon of May 4 following a 30-hour suspension following the passage of former Cyclone Fani last week. Normal cargo and containers handling started around 17:00 (local time). Heavy congestion can be expected as the backlogs from the previous days are likely to be given priority. Furthermore, as the holy week of Ramadan commences on May 5 until June 4, working operating hours are likely to be shifted. Customers with shipments to the port can expect vessels’ berthing time to be more than 24-hours at this time.",Moderate,,Bangladesh,2/5/19 8:49,2019,,,,
65
+ 63,2872,UPDATE: Port of Colombo faces berthing delays,"Sources on March 11 indicate that the Port of Colombo is facing berthing delays due to unspecified reasons. An average waiting time for the vessels is likely to be around 1 to 2 days. In addition, congestion is likely to be exacerbated by repair works on 4 gantry cranes which will start March 18 and last for two weeks. Out-of-window arrivals will likely face extended berthing times.",Moderate,Port Congestion,Sri Lanka,11/3/19 7:51,2019,6.94047,79.8464,,Port Congestion
66
+ 64,1591,Greenpeace Protest on Hartman Bridge on Thursday Temporarily Closed Portion of Houston Ship Channel,"On Thursday, September 12, 23 protesters associated with Greenpeace demonstrated along the Fred Hartman Bridge in Baytown, TX just outside of Houston. The protest began around 6:30 AM local time and included 11 of the protesters rappelling down the bridge to disrupt shipping traffic in the Houston Ship Channel. While the bridge stayed open during the protest to vehicular traffic, a half-mile portion of the ship channel was closed between Light 102A and Light 104 until reopening early Friday morning after protesters were arrested. The protest remained peaceful; however, the initial blocking of the bridge led to a minor motor vehicle accident which injured one person.
67
+
68
+ Assessment: The Greenpeace activists stated that their goal of the protest was to attempt to disrupt the oil and gas shipments that go through the Houston Ship Channel. The group timed their protest to attempt to get the attention of Democratic presidential candidates who were in Houston Thursday for a Democrat National Committee presidential debate. The Houston Ship Channel and Port of Houston are vital to U.S. oil and gas exports and the ship channel is the busiest in the country annually generating approximately $339 billion and providing over 1.35 million jobs to the state of Texas. The portion of the ship channel that was closed on Thursday normally sees approximately 300 vessels pass through, and according to media sources, at least seven were blocked during the temporary closure. The protest did not cause any significant disruptions to shipping interests, as many companies often build in an extra day to shipping schedules as a precaution.
69
+
70
+ An uptick in climate change-related protests has been seen in recent months, especially across Europe. The majority of protests are organized by groups such as Greenpeace or Extinction Rebellion and have been relatively peaceful, although some have been disruptive with protesters blocking bridges, and trains, similar to the Greenpeace protesters temporarily shutting down the Houston Ship Channel on Thursday. Additionally, a weeklong series of protests are being planned across the world beginning Friday, September 20 as part of a global climate strike action. The relative ease with which the Greenpeace protesters in Baytown were able to shut down a portion of the Houston Ship Channel using a small group of people and the increased focus on climate-related protests highlight the possibility of an increase in similar protests across the United States. As such, Resilience360 customers with cargo interests should anticipate the possibility of disruptions to supply chains due to climate-related protests.",Moderate,"Protest/Riot, Port Disruption, Cargo Disruption, Climate Change",United States,13/9/19 21:29,2019,29.71163,-95.00479,,Miscellaneous Events
71
+ 65,1661,Houston Ship Channel - Channel has partially reopened to ship traffic. Incident closed.,"Channel traffic has partially reopened from Tucker Bayou to Houston Ship Channel Light 116, as cleanup efforts continue related to pollutant runoff from the ITC facility fire. The runoff has been exacerbated by the partial collapse of a dike wall that took place on Friday, March 22 near the ITC facility. The dike wall has since been repaired. Updated sources indicate that the waterway may be reopened on Monday, March 25. Authorities are conducting cleanup operations and there appears to be no active health hazard. Ships are being able to traverse the channel if they have less than a 34-foot draft. All vessels are required to be inspected for chemical contaminates and are being spaced at approximately one-hour intervals. This incident is closed.",Moderate,"Chemical Spill, Maritime Accident, Port Disruption, Hazmat Response, Public Safety / Security",United States,22/3/19 19:30,2019,29.74453,-95.10194,,Miscellaneous Events
72
+ 66,1662,Houston Ship Channel - Ship channel has been reopened after protesters detained. Incident closed.,"The U.S. Coast Guard has reopened part of the Houston Ship Channel near Baytown. The closure was the result of Greenpeace protesters on the Fred Hartman Bridge, who have since been detained. This incident is closed.",Moderate,Maritime Advisory,United States,12/9/19 14:41,2019,29.70263,-95.01394,,Maritime Advisory
73
+ 67,1667,Hurricane Dorian Expected to Make Landfall on Florida Coast as Cat 3 Storm Over Labor Day Weekend,"Hurricane Dorian continues to move through the Atlantic Ocean as it passes Puerto Rico and heads toward the eastern Florida coast. The storm is expected to strengthen over the next days and is forecast to make landfall as a major Category 3 storm, on the Saffir-Simpson Hurricane Wind Scale, late Sunday night or early Monday morning. Significant uncertainty remains on the path of Dorian; however, as of Wednesday afternoon the projected path has the storm making landfall near Orlando, FL and the Florida Space Coast. Portions of Florida and other parts of the southeastern coast are expected to receive between four to eight inches of rain with some areas receiving upwards of ten inches. Tropical-storm-force winds will reach the Florida coast by Saturday. Governor Ron DeSantis has issued a state of emergency for the state of Florida in anticipation of the storm.
74
+
75
+ Assessment: The state of emergency declaration allows for preemptive planning coordination of resources across Florida to help with preparation and eventual recovery efforts. Governor DeSantis has also urged Florida residents to have seven days of supplies and an emergency plan in case of disaster as the hurricane continues to near the state. While the path of the storm remains uncertain, Dorian making landfall as a Category 3 storm will likely cause significant disruptions across Florida. These may include evacuations, widespread power outages, road closures, and life-threatening flooding conditions. The U.S. Coast Guard has set a number of Florida ports at port condition Whiskey including Key West, Miami, Port Canaveral, Tampa, St Petersburg, and Manatee. Port condition Whiskey means that ports remain open to all commercial and cargo operations; however, commercial vessels greater than 500 gross tons should begin making plans to depart the port. It is likely as the storm nears that a number of these ports will close due to the anticipated high winds.
76
+
77
+ Travelers should also anticipate air travel delays across the Southeast, especially for Florida airports as well as Hartsfield-Jackson Atlanta International Airport (ATL), a major hub for both domestic and international flights. Additionally, several projections have the storm either moving across Florida into the Gulf of Mexico, potentially creating disruptions for the Gulf Coast or have the storm moving up the southeast coast where disruptions would occur in Georgia, South Carolina, and North Carolina. Resilience360 customers are advised to heed all local weather warnings and evacuation notices. Customers with interests in Florida, the Southeast, and the Gulf Coast should continue monitoring the progress of Hurricane Dorian.",Severe,"Tropical Cyclone / Storm, Severe Winds, Flooding, Evacuation, Air Travel Disruption, Port Closure, Power Outage, Public Safety / Security, Weather Advisory, Travel Warning",United States,28/8/19 22:44,2019,28.53823,-81.37739,,Miscellaneous Events
78
+ 68,1670,Hyundai Heavy Industries Workers Vote to Strike over Daewoo Acquisition; Date Unspecified,"On Thursday, it was reported that workers at Hyundai Heavy Industries (HHI) voted to approve a strike against the acquisition of Daewoo Shipbuilding. Workers from Daewoo Shipbuilding and Marine Engineering (DSME) also voted to approve a strike earlier in the week. Nearly 60 percent of HHI workers voted in favor of the strike, along with 90 percent of DSME workers. A date for the strikes have not been set.
79
+
80
+
81
+ Assessment: HHI signed a conditional agreement last month to acquire DSME from the government, with a formal agreement expected in March. The two shipbuilders cover around 20 percent of the global shipbuilding market share. The unrest among workers in South Korea s shipbuilding sector are tied to mounting financial pressures caused by a decrease in global demand for new vessels and increased competition from Chinese shipbuilders. A coordinated strike between HHI and DSME workers would cause significant disruptions in the shipbuilding industry. Resilience360 customers with interests in the sector are advised to monitor reports regarding a specific date for a strike. Workers may also decide to hold protests or marches, which should be avoided due to the potential for clashes with police. Protests would likely be held in Ulsan or on Geoje Island, where the HHI and DSME are headquartered, respectively.",Moderate,"Industrial Action, Maritime Advisory, Miscellaneous Strikes, Public Safety / Security",Republic of Korea,21/2/19 22:22,2019,,,,Miscellaneous Events
82
+ 69,1672,IED Detonated Near Police in Hong Kong; Could Represent Escalation If It Becomes a Regular Tactic,"On Sunday, an explosion was reported near the intersection of Nathan Rd and Fife St in the Mong Kok area of Kowloon. The incident took place near a parked police vehicle after police officers had disembarked and were clearing roadblocks following another evening of violent protests across Hong Kong that resulted in over 200 arrests. The explosive was reportedly detonated remotely by a cell phone and was placed in a flower pot around six feet from the police van. No injuries were reported, although police said that the device was meant to injure or kill officers. Police have said that the intensity of the explosion was relatively low and was likely comprised of homemade materials.
83
+
84
+ Assessment: The use of an IED by protesters was not completely unexpected, as police carried out two raids on warehouses in July and August where explosive materials were found and suspects from pro-independence groups were arrested. The raid on the Lung Shing Factory Building in Tusen Wan in July found two pounds of the chemical triacetone triperoxide (TATP), which is a powerful explosive that can be made from common household ingredients, along with incendiary devices, acids, and sharp weapons. The raid on an industrial building in Fo Tan in August found over 30 smoke bombs and a significant amount of cash. If the use of explosives becomes a regular tactic by the protesters, it will seriously deteriorate the security situation in Hong Kong, particularly if they result in any casualties. The use of a cell phone as a remote detonator could also give police justification to suspend mobile phone services in certain areas when protests are taking place. Resilience360 customers are advised to continue to avoid all areas where protests are occurring and should be aware of the risk of restrictions on telecommunications services.",Severe,"Protest / Riot, Public Safety / Security, Public Transportation Disruption, Police Operations, Roadway Closure / Disruption, Hazmat Response, Bombing",China,14/10/19 18:01,2019,,,,Miscellaneous Events
85
+ 70,1685,"Incheon and Changwon Production losses of 20,000 vehicles due to strike. Incident closed.","Media sources indicate that partial and general strikes had resulted in a production loss of 20,000 vehicles. The GM Korea union announced plans to continue the strike at GM facilities in Incheon and Changwon after the Chuseok holiday, although there were no initial reports that the strike resumed. Over 10,000 General Motors (GM) Korea workers were participating in the action. Workers held a full-scale walkout on September 9, 10, and 11. Media sources indicated workers also held an overtime ban during the Chuseok holiday, which was observed Thursday, September 12 to Saturday, September 14. GM Korea workers held two four-hour partial strikes on Friday, August 30, at their facilities in Incheon and Changwon, as well as a two-day partial strike on Tuesday, August 20 and Wednesday, August 21. The labor action was organized to protest wages. This incident is closed.",Moderate,Miscellaneous Strikes,Republic of Korea,20/8/19 9:58,2019,37.51119,126.7095,,Miscellaneous Strikes
86
+ 71,1733,Kocaeli and Tarsus - Izocam workers have called off the strikes. Incident closed.,"Izocam workers have called off the strikes at two factories across Turkey. The strikes were originally called in the factory in Kocaeli, near Kiplasma Cd and Refik Baydur Cd, and in a factory at an unspecified location in Tarsus, in Mersin Province. This incident is closed.",Minor,Miscellaneous Strikes,Turkey,16/1/19 23:33,2019,40.82164,29.55738,,Miscellaneous Strikes
87
+ 72,1775,Major Raids Target Opposition After Local Elections Inflict Losses to United Russia s Control,"On Thursday, authorities raided over 200 sites across more than 40 cities in Russia. The operation was targeting opposition activists and entities and has been denounced as a political crackdown in retaliation for President Vladimir Putin s party suffering losses in last Sunday s local elections. While the Kremlin maintains a strong grip across Russia, opponent Alexey Navalny s smart voting plan is believed to have contributed to the erosion of United Russia s control of local office seats. Combined with sustained summer protests and increasing discontent with the status quo, the Kremlin will likely take further measures trying to thwart growth and unification of opposing forces, though activists continue to show resilience to such efforts. As well as possible protests over the crackdown and disputed election results, demonstrations over an array of other grievances may be met by crackdowns and other efforts by authorities to quash expressions of opposition and discontent.
88
+
89
+ Recent Developments
90
+
91
+ From early Thursday morning, police carried out raids in 43 cities across the country in a sweeping crackdown on opposition politicians and their supporters. The raids happened four days after local elections around Russia, which saw President Vladimir Putin s United Russia party take serious hits. During the operation Thursday, offices of opposition leader Alexey Navalny s Anti-Corruption Foundation (FBK) had equipment seized as part of an investigation launched in August for alleged money laundering, with homes searched as well. According to the FBK chief of staff, both employees and volunteers with the foundation had equipment, documents, mobile phones, and funds seized by authorities. As a result of a raid in Chelyabinsk, multiple staff at the targeted office received medical treatment on site but were not hospitalized. During searches of FBK offices in Saransk, an activist was struck and injured by a police vehicle. Election monitoring non-governmental organization Golos also reported raids Thursday targeting the homes of its activists. More than 1,000 officers were involved in the raids, and Navalny claimed more than 200 locations were searched.
92
+
93
+ The highest-profile battle over local elections occurred in Moscow, with election officials preventing or disqualifying an array of candidates for local posts, sparking sustained protests frequently marred by clashes and heavy crackdowns. However, Navalny advocated a system of smart voting intended to encourage people to vote for the candidate in each race considered most likely to beat United Russia or other Kremlin-backed candidates. United Russia lost more than a third of the Moscow city council seats it had previously held, with the result largely attributed to tactical voting. In addition to reported voting irregularities on Sunday, there were reports of violence and other forms of intimidation linked to the elections. A poll monitor at a station in St Petersburg who had filed a formal complaint over a voter registration matter was punched by a man who then left, while police on scene made no effort to respond. Another observer had been punched in the face several times heading into the same polling station that morning.
94
+
95
+ Election results have spurred additional protest activity in some locations around Russia, including sustained protests in Siberia s Buryatia region. At least 17 activists have been detained by authorities in Ulan-Ude while disputing the mayoral election results for the regional capital. Police contended the activists had thrown a tear gas canister at officers, while media outlets have reported police threw the tear gas canister inside a bus of activists. Potentially as an effort to defuse tensions, a rally has been authorized by Ulan-Ude officials for Sunday evening, though unauthorized protests remain possible.
96
+
97
+ Background
98
+
99
+ The refusal to register an array of opposition candidates for Moscow s local elections sparked some of the largest sustained protests in Russia in recent years. The largest demonstration drew about 60,000 participants, while thousands frequently turned out to protests in the run-up to elections, even despite major crackdowns on unauthorized gatherings. More than 2,000 people were detained during election-related protests over the summer, with some facing brief jail terms while others facing charges of mass unrest could receive lengthy jail sentences. Controversy over several issues, including pension reform, poverty and other economic concerns, as well as topics such as wildfires and waste management continue to drive discontent with the ruling powers in the country. Overt and aggressive crackdowns on protests, censorship and internet restrictions, and blatant election rigging continue to be sources of potential protest activity over perceived injustices.Assessment
100
+
101
+ Navalny supporters contend that the raids and money laundering allegations are being used to strike back at opponents of Putin and the ruling elite, particularly targeting those who backed smart voting tactics, protests, and other measures to combat Putin and United Russia s grasp on power around the country. The smart voting tactics have been invoked in other elections around the world, and could be used in future Russian elections. The method of concentrating votes with any single opposing candidate to defeat a Kremlin-supported candidate could remain more challenging to thwart. While United Russia secured victory in many regional elections, the party had substantial losses in local elections around the country.
102
+
103
+ Despite the ousting of an array of Kremlin-backed candidates with the tactic of smart voting, Communists and candidates from other smaller parties who were the primary victors from such methods generally remain at least somewhat influenced by the Kremlin. Nonetheless, in Moscow, no candidate from United Russia was on the ballot, with candidates previously with the party or otherwise pro-Kremlin opting to run as independent due to perceived discontent in the capital with the ruling party. Such a development highlights the growing challenges to the Kremlin s grasp on power amidst increasing disapproval of the status quo in Russia.
104
+
105
+ A heavy-handed approach to opposition forces may deter some supporters and damage the networks and resources of Navalny s FBK. However, crackdowns can also spur resistance to such tactics and opposition activists have shown resilience and innovation to authorities efforts to stifle them. While the wave of protests during the summer has tapered off, additional demonstrations over the latest election, crackdowns, and other efforts to repress opposition supporters are possible. In conjunction, any unauthorized demonstration in Russia may face a swift crackdown by police and the Kremlin may pursue additional actions to combat any suspected erosion of support and power in the country. Resilience360 customers are advised to continue monitoring associated developments in the post-election period and to avoid any demonstration activity in Russia due to the risk of mass detentions and clashes with authorities.",Moderate,Political Crackdown / Opposition Movement,Russia,14/9/19 0:16,2019,,,,Miscellaneous Events
106
+ 73,1777,Malaysia and Singapore De-Escalate Maritime Dispute; Should Prevent Additional Incidents,"On Thursday, Malaysia and Singapore agreed to de-escalate their maritime dispute by reverting their port limits. Malaysia agreed to return Johor Baru port limits to their pre-October 2018 boundaries, while Singapore reverted its port limits to pre-December 2018 lines. The extensions had caused the port limits to overlap. Both countries have said that they will start negotiations over the disputed maritime border within a month. Singapore and Malaysia also agreed to not authorize commercial activities or anchor government vessels in the disputed area, as well as to follow international maritime law to avoid any incidents.
107
+
108
+
109
+ Assessment: The maritime boundary extensions caused the relationship between the two countries to deteriorate and also resulted in confusion for international shippers. There was a minor incident in February after a Malaysian vessel collided with a Greek ship in waters claimed by Singapore that highlighted the dispute but did not result in major shipping disruptions. The return to the status quo and an adherence to international law should prevent any further maritime incidents. The negotiations will also seek to resolve disputes regarding the price Singapore pays for Malaysian water and Singapore s management of a small part of Malaysian airspace over southern Johor. Resilience360 customers with interests in bilateral relations between the two countries are advised to monitor the progress of negotiations.",Moderate,Maritime Advisory,Malaysia,16/3/19 0:22,2019,,,,Maritime Advisory
110
+ 74,1778,Malaysia Detained Crew After Greek Ship Collided with Malaysian Vessel near Johor Baru Port,"On Saturday, a Greece-registered ship collided with the Malaysia-registered Polaris, a vessel that lays buoys, near Johor Baru Port in waters claimed by Singapore. The collision occurred while the Greek ship was headed to Tanjung Pelepas in Malaysia. There were no reports of any oil leaks or injuries associated with the collision, or any impacts to maritime shipping. The crew of the Greek ship was detained by the Malaysian Marine Department (Mardep) after the collision. Following the incident, Singapore called on Malaysia to withdraw its ships from Singapore s waters.
111
+
112
+ Assessment: Saturday s incident highlights the disputes over airspace and sea territory between Malaysia and Singapore that began last year. In 2018, the Malaysian government extended its port limits into Johor, and Malaysian vessels started entering waters that are claimed by Singapore. Singapore disputed the port limit extension, and its foreign minister has called on Malaysia to comply with international law. Bilateral talks held last month between the nations proved unsuccessful. The ongoing territorial dispute can cause confusion for vessels entering the Johor area, and increase the risk of safety hazards such as collisions. Although the likelihood of direct conflict between Singapore and Malaysia is low, Resilience360 customers are advised to exercise caution if travelling in the Johor area.",Moderate,Maritime Accident/Ground Transportation Advisory,Singapore,11/2/19 23:10,2019,1.44703,103.76346,,Miscellaneous Events
113
+ 75,1784,Malta - Negotiations on Saturday reportedly ended with agreement; vote to be held on Monday.,"Fuel station owners affiliated with the General Retailers and Traders Union (GRTU) have suspended the nationwide strike across Malta during a meeting with Energy Ministry officials on Saturday. Updated sources stated that the negotiations on Saturday were positive and ended with an agreement; a vote on accepting the agreement will be held on Monday.
114
+
115
+ The strike began on Tuesday, January 22, following an unsuccessful meeting with Energy Ministry officials to discuss the possibility of the government funding expensive renovations that most fuel stations are required to complete per a directive issued by the European Union. Fuel stations across Malta have been shutting down their pumps beginning at 6:00 PM local time during the strike, not allowing motorists to purchase fuel past that time.",Moderate,Miscellaneous Strikes,Malta,22/1/19 13:42,2019,35.89564,14.50828,,Miscellaneous Strikes
116
+ 76,1815,Metro Manila and Rizal Province to Experience Water Interruptions Due to Insufficient Supply,"On Wednesday, Manila Water announced that it was implementing a revised water interruption program in the Metro Manila area and Rizal Province to deal with insufficient water supplies. Customers may experience between six and 21 hours of service interruptions, while water pressure may be lower than usual. The water interruptions will be first impacting the East Zone of Metro Manila, including the Makati, Mandaluyong, Pasig, Pateros, San Juan, Taguig, and Marikina areas, parts of Quezon City and Manila, as well as the Angono and Antipolo areas of Rizal Province.
117
+
118
+
119
+ Assessment: The water restriction program is expected to last for the next three months or until the rainy season begins. The dry season typically ends in May, but has been extended due to the El Nino weather phenomenon. El Nino is one of the causes of the recent shortage, but another main cause is a significant increase in demand. Manila Water has said that it will prioritize hospitals and school areas, while water tankers would be provided to households and commercial establishments. Updates from Manila Water regarding specific areas, dates, and times of service interruptions can be found at https://www.manilawater.com/customer/advisories/service-advisories , https://www.facebook.com/manilawater/ , and https://twitter.com/ManilaWaterPH . Resilience360 customers are advised to expect water service disruptions, which could intensify in the coming months, until the rainy season begins.",Moderate,"Public Utilities Disruption, Water Restriction Program",Philippines,13/3/19 21:28,2019,,,,Miscellaneous Events
120
+ 77,1824,"Minor At Tangiers' Tanger-Med port, Tanger-Tetouan-Al Hoceima Region,...","At Tangiers' Tanger-Med port, Tanger-Tetouan-Al Hoceima Region, security forces foiled an attempt to smuggle 2.200 tonnes of drugs, according to an official statement.",Minor,Maritime Advisory,Morocco,16/10/19 11:24,2019,,,,Maritime Advisory
121
+ 78,1828,"Minor In Barcelona, striking port stevedores attempted to block access to...","In Barcelona, striking port stevedores attempted to block access to the cruise ship terminal; local Mossos d'Esquadra police physically removed them.",Minor,Maritime Accident/Ground Transportation Advisory,Spain,21/10/19 14:44,2019,,,,Miscellaneous Events
122
+ 79,1848,Moll de Llevant - Fire on Marina Barcelona 92 ship brought under control. Incident closed.,Updated reports indicate that firefighters have brought under control a fire that broke out in pallets on a Marina Barcelona 92 ship located near Moll de Llevant. No injuries or damage to ships were reported. There were no reports of disruptions to port operations. This incident is closed.,Moderate,Maritime Accident,Spain,6/9/19 13:04,2019,41.36601,2.18598,,Maritime Accident
123
+ 80,1855,MQM Worker Killed in Overnight Shooting,"Pakistani media sources report that a worker from the Muttahida Qaumi Movement (MQM) was killed in a gun attack in Karachi late Monday. Another MQM worker was injured in the incident, which involved six gunmen on motorcycles who opened fire on the MQM-P union council (UC) office in the New Karachi area of the city. The assailants fled the scene and reportedly remain at large.
124
+
125
+ Assessment: No group immediately claimed credit for the attack, and the motivation behind it remains unclear. In the past, secular-minded parties such as MQM have been targeted by Islamist militant groups, including in Karachi. The MQM has also come under pressure from the Pakistani security establishment, which has waged a crackdown against the party in recent years. From a security standpoint, demonstrations and labor strikes are common in association with acts of political violence in Pakistan, most of which are accompanied by rioting and other forms of civil unrest. Although no specific details have been announced in this regard, Resilience360 customers in Karachi should monitor local media outlets for associated security developments.",Moderate,"Death / Injury, Individuals in Focus, Public Safety / Security, Public Transportation Disruption, Roadway Closure / Disruption",Pakistan,12/2/19 21:40,2019,,,,Miscellaneous Events
126
+ 81,1858,Mundra and Kandla Ports in Gujarat Put on Alert Due to Threat; Similar Alerts Issued Previously,"On Thursday, it was reported that the Mundra Port and Kandla Port in Gujarat State have been put on high alert due to a potential terror threat. The alert originated from intelligence agencies regarding the possibility that Pakistan-trained commandos had infiltrated the Gulf of Kutch after two single-engine Pakistani boats were found in the Harami Nala area. The ports have instructed shipping agents and vessels to report any suspicious activity to the Coast Guard or other authorities at the ports. Security at the ports has also been increased, although there were no initial reports of disruptions to maritime shipping. Around 60 personnel have been deployed at checkpoints at ports, who are also equipped with devices to puncture the tires of vehicles that may attempt to break through barriers. Around 100 Central Industrial Security Force (CISF) commandos have also been deployed to the Nayara Energy oil refinery in the Vadinagar area of Gujarat.
127
+
128
+ Assessment: The alert on Thursday followed reports earlier in the week from Navy Chief Admiral Karambir Singh, who said that the Pakistan-based Jaish-e-Mohammad (JeM) militant group was training individuals to carry out underwater attacks. Admiral Singh said that the navy was fully prepared to foil such attacks. Reports about Pakistan s military training JeM divers to carry out attacks are not new and have been mentioned last year and the year before, although the targets were reportedly Indian Navy vessels. It remains questionable that JeM has the capabilities to carry out that kind of underwater attack, as they have not displayed similar capabilities in the past. In addition, there are a multitude of easier methods to carry out an attack on port facilities that do not involve underwater diving training and the transportation and use of more advanced explosives. It is also important to note that Indian intelligence agencies issue hundreds of alerts every year, with the vast majority not resulting in an attack. Resilience360 customers are advised to follow instructions issued by port authorities to maintain an elevated level of vigilance and expect an increased security presence at ports, which could result in maritime shipping delays.",Moderate,Maritime Advisory,India,29/8/19 22:43,2019,22.83827,69.72853,,Maritime Advisory
129
+ 82,1922,Operation Brock Initiated on M20 in Kent as Preparation for Possible No-Deal Brexit Congestion,"On Monday, authorities initiated Operation Brock on the M20 in Kent as part of the government s plan to manage gridlock in the event of a no-deal Brexit. The system to manage truck and passenger vehicle traffic to and from the Kentish coast, including the port of Dover, is being coordinated with Kent police and local authorities along the motorway. The operation includes the coast-bound side of the M20 between Junctions 8 (Maidstone) and 9 (Ashford) being solely for truck traffic heading to Dover, serving as a holding space for trucks during congestion periods, though truck traffic remained free-flowing Monday. The dedicated 14-mile stretch will enable trucks to move along based on truck congestion levels, while all other traffic moving in both coast- and London-bound directions travels on the London-bound side of the motorway. The London-bound side in the affected stretch is thus divided with barriers for two lanes of traffic to the coast and two lanes of traffic to London. The anticipated duration of Operation Brock was not immediately announced by authorities.
130
+
131
+ Assessment: With a potential Brexit date recently pushed back to at least April 12, questions have been raised about the purpose of continuing with the no-deal contingency scenario at this time. Operation Brock is a replacement of the previous M20 traffic management system called Operation Stack. In the new system, up to 11,000 trucks are expected to be able to fit into the M20 queuing procedure. Should further space be required, the government has backup provisions for directing trucks to the disused Manston airport as well as the coast bound M26. Although government officials have said checks would not be carried out at Dover in the short term following a no-deal Brexit to avoid heavy disruption, the Dover Harbour Board warned last week that an increase of two minutes per vehicle bound for France undergoing checks could result in 17-mile queues. Resilience360 customers are advised to anticipate possible disruptions while Operation Brock remains in effect and to continue monitoring associated developments that may impact cross-Channel traffic and the United Kingdom s planned separation from the European Union.",Moderate,Ground Transportation Advisory / Brexit Contingency / Government Plan / Traffic Management / Border Control / Cross-Channel Traffic,United Kingdom,25/3/19 20:56,2019,51.14663,0.87603,,Miscellaneous Events
132
+ 83,1950,Over 100 Protesters Detained at Anti-Government Demonstration in Managua on Saturday,"On Saturday, hundreds of supporters of the Civic Alliance opposition coalition gathered for a demonstration in downtown Managua. The action was intended to protest against the administration of incumbent President Daniel Ortega, and to demand the release of political prisoners. As Ortega s government had previously outlawed anti-government demonstrations, security forces rapidly descended on the scene and forcibly dispersed the crowd with truncheons, tear gas, and rubber bullets. Nicaraguan authorities claimed that 107 protesters were detained for violating public order. The opposition claimed that 164 demonstrators were detained, and that six had been wounded by rubber bullets. Multiple news outlets and non-governmental organizations have claimed that several journalists that were covering the demonstration were assaulted by police and/or robbed of their cellphones. There were no reports of injuries among law enforcement personnel.
133
+
134
+ Assessment: Political leaders from the United States, Uruguay, and multiple European countries condemned the actions taken by Nicaraguan authorities on Saturday. Representatives of the European Union called on the Ortega administration to respect the principles of freedom of peaceful assembly and freedom of the press. Nicaragua s opposition movement claims that 770 people have been imprisoned on spurious, politically motivated charges since civil unrest broke out across Nicaragua last April. The government freed 112 detainees in late February, and 50 more were transferred to house arrest on March 15th. Nevertheless, members of the Civic Alliance have deemed the concessions to be inadequate, and the issue remains one of the major sticking points preventing the two sides from resuming negotiations.
135
+
136
+ As no solution to Nicaragua s ongoing political crisis appears to be within sight, similar bouts of anti-government protest activity and ensuing clashes with security forces will likely continue to sporadically crop up in the coming weeks and months. Resilience360 continues to advise customers to avoid non-essential travel to the country, due to the risks posed by civil unrest and the government s arbitrary enforcement of laws.",Moderate,Protest / Riot,Nicaragua,18/3/19 23:49,2019,,,,Miscellaneous Events
137
+ 84,1975,Philippines Warns China over Thitu (Pag-asa) Island in the South China Sea; Protest Held in Manila,"On Saturday, President Rodrigo Duterte warned China that occupying Thitu (Pag-asa) Island in the South China Sea would risk starting a war. His statements were in response the presence of around 200 Chinese fishing vessels around the Sandy Cay area, which the Philippine government has called illegal. The Philippine Navy has monitored around 600 Chinese vessels coming and going in the first quarter of the year. A protest was also held on Tuesday outside the Chinese Embassy in Manila, where around 1,000 demonstrators demanded that President Duterte take a stronger stance towards China.
138
+
139
+
140
+ Assessment: Thitu Island is occupied by the Philippines but is also claimed by China, Taiwan, and Vietnam. Despite the strong rhetoric from President Duterte, it is unlikely that China or the Philippines would risk a major military conflict over the presence of fishing boats near Thitu Island. President Duterte has sought a closer alliance with China, especially in economic matters, and China is prepared to offer the Philippines large loans towards infrastructure projects. However, accidents or minor skirmishes involving vessels from the two countries could lead to a deterioration in relations and increase the risk of additional protests against Chinese interests. Resilience360 customers are advised to monitor the situation and avoid all areas where protests are taking place.",Moderate,Maritime Advisory,Philippines,9/4/19 20:19,2019,,,,Maritime Advisory
141
+ 85,1997,Pipeline Leak in Yvelines Raises Prospect of Grandpuits Refinery Shutdown,"At about 10:35 PM local time Sunday, an alarm was set off indicating a pressure drop along the Ile-de-France pipeline (PLIF) due to a crude oil leak in an area of fields in Autouillet, Yvelines department. Several rivers in Vicq, Boissy-sans-Avoir, and Autouillet (R le Lieutel, R de Breuil, and R de la Coquerie) were also impacted by the underground hydrocarbon spill. The prefecture said up to about 17 acres of fields were affected by the leak, with gendarmerie reporting up to 30 acres impacted overall. The leak has been halted and the pipeline depressurized. The company said that the exact cause of the leak was under investigation, and that the affected stretch of pipeline was being excavated as part of that process. Pumping trucks have been deployed to recover oil and the impacted land is being excavated and removed with the use of construction equipment, with the cleanup process expected to take multiple months.
142
+
143
+ Assessment: The approximately 166-mile pipeline connected the port of Le Havre to the Grandpuits refinery, and it is operated by Total to transport primarily crude oil. The Grandpuits refinery is planned to reduce operations gradually this week as reserves decrease, though the exact timing and duration for a prospective shutdown of the refinery was not yet announced. The PLIF had suffered a leak in May 2014 near Le Havre, and there have been calls for increased monitoring and upgrading of underground pipeline, particularly with regard to aging infrastructure. The 2014 spill caused the refinery to shut down for three weeks. However, Total insisted that there is not a shortage risk for fuel supplies in Ile-de-France. Resilience360 customers are advised to continue monitoring associated developments that may impact refinery operations, fuel supply, and fuel prices while the pipeline remains out of operation and the Grandpuits refinery has reduced or halted operations.",Moderate,Hazmat Response,France,27/2/19 0:13,2019,48.84937,1.80379,,Hazmat Response
144
+ 86,10,14 miles NE of Jakarta - A magnitude 4.5 earthquake was detected in the region. Incident closed.,"A magnitude 4.5 earthquake was detected 14 miles northeast of Jakarta, Indonesia. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Indonesia,24/9/18 18:33,2018,-6.1,107.02,,Earthquake
145
+ 87,11,17 miles SW of Batangas - A magnitude 5.5 earthquake was detected in Batangas Bay. Incident closed.,"Multiple sources report that a magnitude 5.5 earthquake was detected in the Batangas Bay, approximately 17 miles southwest of Batangas, Philippines. There have been no reports of associated injuries or structural damage. This incident is closed.",,Earthquake,Philippines,31/8/18 15:04,2018,13.556,120.903,,Earthquake
146
+ 88,16,23 miles ESE of Taichung City- A magnitude 4.5 earthquake struck in central Taiwan. Incident closed.,"A magnitude 4.5 earthquake was detected in central Taiwan, approximately 23 miles east-southeast of Taichung City. There were no initial reports of associated injuries or structural damage. This incident is closed.",Moderate,Earthquake,Taiwan,17/8/18 10:40,2018,24.02,121.03,,Earthquake
147
+ 89,20,33 miles SE of Valencia A magnitude 4.0 earthquake struck in the Mediterranean Sea. Incident closed.,The European-Mediterranean Seismological Centre reported that a magnitude 4.0 earthquake struck approximately 33 miles southeast of Valencia in the Mediterranean Sea. There were no reports of injuries or major structural damage. This incident is closed.,Moderate,Earthquake,Spain,17/10/18 6:06,2018,39.23,0.16,,Earthquake
148
+ 90,1981,Philippines: Magnitude 6.2 earthquake recorded south of Davao Oriental Province,"The United States Geological Survey (USGS) has recorded a magnitude 6.2 earthquake today, 29 September, south of Davao Oriental Province. The quake occurred at a depth of 76.1 kilometers at 10:02 local time. Preliminary reports do not indicate if any damage or injuries have resulted.",Severe,Earthquake,Philippines,29/9/19 3:35,2019,6.35667,126.18441,,Earthquake
149
+ 91,1982,"Philippines: Magnitude 6.5 earthquake strikes near Makilala, Cotabato Province; damages reported","The United States Geological Survey (USGS) has recorded a magnitude 6.5 earthquake today (31 October) near Makilala. The quake was recorded at a depth of 10 kilometers or less at approximately 09:11 local time. Initial reports show Eva's Hotel in Kidapawan City partially collapsed, with injuries unconfirmed. Additionally, a multi-story structure in Davao City has sustained damage as well. Further reports of damages are likely to emerge, as this is the second earthquake over 6.0 magnitude to strike the area in recent days and infrastructure may be weakened.",Severe,,Philippines,31/10/19 1:50,2019,6.92343,125.08286,,
150
+ 92,2587,"UPDATE - Philippines: Casualties confirmed following earthquake near Tulunan, Cotabato Province","Recent reports confirm that casualties have occurred today (29 October) following a magnitude 6.6 earthquake near Tulunan. At least one person has died and more than 40 others are injured, with the majority in Kidapawan City and others in M'lang. Power outages have been recorded in areas of General Santos City, Polomok, Tacurong City, and Carmen. A number of structures have also sustained damage or have collapsed in several locations.",Severe,Earthquake,Philippines,29/10/19 6:20,2019,,,,Earthquake
151
+ 93,2589,"UPDATE - Philippines: Damages and injuries reported following magnitude 6.6 earthquake near Tulunan, Cotabato Province","Updated sources are reporting damages and injuries following a magnitude 6.6 earthquake that struck near Tulunan on Tuesday morning. The severity of injuries sustained has not been confirmed but media images depict a number of collapsed structures in Tulunan. Several local government units have reportedly cancelled classes across the island of Mindanao, including in North Cotabato, Davao City, Koronadal City, Digos City, and General Santos City, where government and private offices will also be closed. Evacuations have also been reported but specific details remain unconfirmed. The United States Geological Survey (USGS) has recorded at least two aftershock tremors at magnitudes of 5.0 and 5.8 in the region.",Severe,Earthquake,Philippines,29/10/19 3:25,2019,,,,Earthquake
152
+ 94,2593,UPDATE - Philippines: Several casualties and moderate damage reported following 6.3 magnitude earthquake in North Cotabato,"Updated reports state that a small number of casualties have occurred as a result of the earlier recorded 6.3 magnitude earthquake in North Cotabato. In addition, officials from Mindanao Island are reporting structural cracks to certain buildings and moderate infrastructure damage including power outages. The tremors were felt in Davao City, although the impact there is not believed to be extensive. Earthquakes are common in the region.",Severe,Earthquake,Philippines,16/10/19 15:55,2019,,,,Earthquake
153
+ 95,3124,178 Miles E of Taichung City - A magnitude 3.9 earthquake struck in the area. Incident closed.,"Government sources reported that a magnitude 3.9 earthquake struck approximately 178 miles east of Taichung City, Taiwan, in the Pacific Ocean. There were no immediate reports of injuries or major structural damage. This incident is closed.",Minor,Earthquake,Taiwan,22/1/20 3:43,2020,24.1,123.5,,Earthquake
154
+ 96,3135,42 miles N of San Antonio - A magnitude 4.3 earthquake struck in the region. Event closed.,"The European-Mediterranean Seismological Centre indicated that a magnitude 4.3 earthquake struck approximately 42 miles north of San Antonio, Puerto Rico. There were no reports of associated injuries or damage. This event is closed.",Moderate,Earthquake,Puerto Rico,19/2/20 0:48,2020,19.1,-67.22,,Earthquake
155
+ 97,3136,42 miles NW of San Antonio - The USGS reported a magnitude 4.5 earthquake. Incident closed.,"The U.S. Geological Survey reported a magnitude 4.5 earthquake located 42 miles northwest of San Antonio, Puerto Rico. There were no initial reports of associated injuries or damage. This incident is closed.",Moderate,Earthquake,Puerto Rico,12/2/20 8:21,2020,18.94,-67.56,,Earthquake
156
+ 98,3142,72 miles W of San Antonio de los Cobres - A magnitude 4.3 earthquake has struck in the area. Event closed.,"The European-Mediterranean Seismological Centre is reporting a magnitude 4.3 earthquake located 72 miles west of San Antonio de los Cobres, Argentina. There have been no initial reports of associated injuries or damage. Event closed.
157
+ EMSC (European Mediterranean Seismological Centre) is a scientific international organization, which aggregates and provides information generated by national seismological agencies worldwide. EMSC presents earthquake data across several magnitude scales including local magnitude (ML), surface-wave magnitude (Ms), body-wave magnitude (Mb), and moment magnitude (Mw). All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Argentina,18/8/20 6:06,2020,,,,Earthquake
158
+ 99,3755,"Magnitude 5.1 earthquake reported 11 kilometres southeast of Digos City, Davao del Sur Province","The United States Geological Survey (USGS) is reporting a magnitude 5.1 earthquake 11 kilometres southeast of Digos City. The quake occurred at a depth of 35.2 kilometres at 01:44 local time. There is no tsunami advisory being issued for the incident.
159
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Philippines,30/8/20 21:40,2020,6.75751,125.3524,,Earthquake
160
+ 100,3756,"Magnitude 5.1 earthquake reported 12 kilometers north of Hachijo, Tokyo Prefecture","The United States Geological Survey has confirmed that a magnitude 5.1 earthquake has been recorded 12 kilometers north of Hachijo, Tokyo Prefecture. The quake occurred at a depth of 118 kilometers and no tsunami warning has been issued.
161
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Japan,25/9/20 17:35,2020,33.12568,139.80898,,Earthquake
162
+ 101,3757,"Magnitude 5.2 earthquake recorded 30 kilometers south of Sarangani, Davao Occidental Province","The United States Geological Survey (USGS) has recorded a magnitude 5.2 earthquake 30 kilometers south of Sarangani on Monday, 6 January. The quake occurred at a depth of 55.9 kilometers at approximately 15:25 local time. No tsunami warning has been issued at this time.",Moderate,Earthquake,Philippines,6/1/20 8:03,2020,5.41372,125.40147,,Earthquake
163
+ 102,3758,"Magnitude 5.3 earthquake reported 17 km west of Nasugbu, Batangas Province","The United States Geological Survey (USGS) has confirmed that a 5.3 magnitude earthquake has occurred 17 km west of Nasugbu. The quake was reported at a depth of 86 km and no information on structural damage or injuries has been announced.
164
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Moderate,Earthquake,Philippines,9/5/20 20:09,2020,14.06667,120.63333,,Earthquake
165
+ 103,3759,Magnitude 6.2 earthquake reported north of Surabaya,"The US Geological Survey is reporting that a magnitude 6.2 earthquake, at a depth of 592.2 km, has occurred approximately 116 km north of Surbaya. There have been some reports of tremors having been felt although it is estimated that little or no population will be affected.",Severe,Earthquake,Indonesia,5/2/20 19:37,2020,-6.23324,112.93235,,Earthquake
166
+ 104,5715,"USGS reports magnitude 6.3 earthquake 4km southeast of Calatagan, Batangas Province","The United States Geological Survey (USGS) has recorded a magnitude 6.3 earthquake 4km southeast of Calatagan on Friday, 25 December. The quake has occurred at a depth of 114km at 07:43 local time. There has not been a tsunami warning issued and there are no immediate reports of damages, though they are possible due to the intensity of the tremor.
167
+ USGS (United States Geological Survey) is a scientific agency of the U.S. government which monitors earthquake activity worldwide. USGS earthquake alerts are assessed primarily using the moment magnitude (Mw)‚ÄØscale. However, local magnitude (ML), surface-wave magnitude (Ms) or body-wave magnitude (Mb) may be used in lieu of the Mw scale. All magnitude scales should yield approximately the same value for any given earthquake.",Severe,Earthquake,Philippines,25/12/20 0:25,2020,13.83333,120.6333,,Earthquake
IS424_Data_Mining/code/NER/Named_Entity_Recognition.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/NewsScraper/newsScraper.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/code/NewsScraper/scraped_data1.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:57abf4a381c4d2501e154cd23bd1ca3200e08c446bee2eee14abde93204fcdb6
3
+ size 18114548
IS424_Data_Mining/code/README.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # DM Project
2
+
3
+ The project consists of three parts: the classification, the GPT and its evaluation (GPT Evaluation) and the news scraper + LDA modelling.
4
+
5
+ all the files can be run independently without interference of others and pre-setup, except for the LDA folder.
6
+
7
+ For LDA,
8
+ the processed_data.parquet, processed the original data and is generated by the file basic_text_preprocessing, is used in topic_modelling_benchmark_using_headline;
9
+
10
+ the processed_data1.parquet, processed the scraped news content and is generated by the file basic_text_preprocessing_on_scraped_data, is used in files topic_modelling_minor, topic_modelling_severe and topic_modelling_moderate.
11
+
12
+ However, be careful when running the GPT and news scraper file, as you may need your own API key for GPT script to run properly. Also, it takes very long for the news scraper scirpt to finish.
IS424_Data_Mining/code/all_port_labelled.csv ADDED
The diff for this file is too large to render. See raw diff
 
IS424_Data_Mining/docs/Data Mining_A Star_updated.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c498448acec608afae65423f93ceb56b880e5d7714affb9b0da1a2761565db53
3
+ size 5754329
IS424_Data_Mining/docs/Data Mining_A Star_updated.pptx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c1fedd96301e6652b10297706e41eab94d4bb060b50b00c39e0b1cdeda5fa3db
3
+ size 9943950
IS424_Data_Mining/docs/Project Report.docx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:51f26836958c1554371470e0390508a12686628969c4258123f7e9174d9cd0f5
3
+ size 5120309
IS424_Data_Mining/docs/Project Report.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:291e781249e3692266fffea6d3cfced7005a4343a131854169b2c89dac7b1b37
3
+ size 4472213