fhudi commited on
Commit
aad46a9
Β·
1 Parent(s): 3f4a2cc

Initial commit

Browse files
This view is limited to 50 files because it contains too many changes. Β  See raw diff
Files changed (50) hide show
  1. play_helper.py +597 -0
  2. play_with_auth.py +175 -0
  3. problemsets/Anagram Scribble_1.json +0 -0
  4. problemsets/Anagram Scribble_2.json +0 -0
  5. problemsets/Anagram Scribble_3.json +0 -0
  6. problemsets/Bracket Game_1.json +0 -0
  7. problemsets/Bracket Game_2.json +0 -0
  8. problemsets/Bracket Game_3.json +0 -0
  9. problemsets/Crossword Arranger_1.json +0 -0
  10. problemsets/Crossword Arranger_2.json +0 -0
  11. problemsets/Crossword Arranger_3.json +0 -0
  12. problemsets/Islands_1.json +0 -0
  13. problemsets/Islands_2.json +0 -0
  14. problemsets/Islands_3.json +0 -0
  15. problemsets/Ordering Text_1.json +0 -0
  16. problemsets/Ordering Text_2.json +0 -0
  17. problemsets/Ordering Text_3.json +0 -0
  18. problemsets/Password Game_1.json +0 -0
  19. problemsets/Password Game_2.json +0 -0
  20. problemsets/Password Game_3.json +0 -0
  21. problemsets/String Search_1.json +0 -0
  22. problemsets/String Search_2.json +0 -0
  23. problemsets/String Search_3.json +0 -0
  24. problemsets/Text Sudoku_1.json +0 -0
  25. problemsets/Text Sudoku_2.json +0 -0
  26. problemsets/Text Sudoku_3.json +0 -0
  27. problemsets/log.txt +85 -0
  28. requirements.txt +16 -0
  29. session_email.csv +8 -0
  30. textgames-scrabble-black2-ss.png +0 -0
  31. textgames/__init__.py +224 -0
  32. textgames/anagram_scribble/__init__.py +0 -0
  33. textgames/anagram_scribble/anagram_scribble.py +85 -0
  34. textgames/assets/kb/country_capital_city.tsv +239 -0
  35. textgames/assets/kb/word_list.txt +0 -0
  36. textgames/assets/kb/words_by_length.json +0 -0
  37. textgames/assets/word_list.py +57 -0
  38. textgames/assets/word_list/nltk_data.words.en.txt +0 -0
  39. textgames/assets/word_list/oxford3k.txt +3307 -0
  40. textgames/assets/word_list/oxford5k_extra.txt +2015 -0
  41. textgames/assets/word_list/oxford_opal_written_single.txt +1199 -0
  42. textgames/assets/word_list/word_list.nltk_words.lower.txt +0 -0
  43. textgames/assets/word_list/word_list.oxford5k_opal.lower.txt +5060 -0
  44. textgames/base_game.py +118 -0
  45. textgames/bracket_game/__init__.py +0 -0
  46. textgames/bracket_game/bracket_game.py +190 -0
  47. textgames/crossword_arranger/__init__.py +0 -0
  48. textgames/crossword_arranger/crossword_arranger.py +150 -0
  49. textgames/islands/__init__.py +0 -0
  50. textgames/islands/islands.py +197 -0
play_helper.py ADDED
@@ -0,0 +1,597 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # %%
2
+ import os
3
+ import time
4
+ import pandas as pd
5
+ import gradio as gr
6
+
7
+ import google.auth
8
+ from googleapiclient.discovery import build
9
+ from googleapiclient.errors import HttpError
10
+ from googleapiclient.http import MediaFileUpload
11
+
12
+ from textgames import GAME_NAMES, LEVEL_IDS, LEVELS, new_game, preload_game, game_filename
13
+ from textgames.islands.islands import Islands
14
+ from textgames.sudoku.sudoku import Sudoku
15
+ from textgames.crossword_arranger.crossword_arranger import CrosswordArrangerGame
16
+ from textgames.ordering_text.ordering_text import OrderingTextGame
17
+
18
+
19
+ # %%
20
+ def declare_components():
21
+ with gr.Row():
22
+ with gr.Column(scale=1):
23
+ m = gr.Markdown("Welcome to TextGames!", elem_id="md-greeting")
24
+ logout_btn = gr.Button("Logout", link="/logout", variant='huggingface', size='sm', elem_id="btn-logout")
25
+ with gr.Column(scale=2):
26
+ solved_games_df = gr.DataFrame(headers=[g.split('\t', 1)[0] for g in GAME_NAMES], label="Finished Games",
27
+ interactive=False, elem_id="df-solved-games")
28
+ game_radio = gr.Radio(GAME_NAMES, label="Game", elem_id="radio-game-name")
29
+ level_radio = gr.Radio(LEVELS, label="Level", elem_id="radio-level-name")
30
+ new_game_btn = gr.Button("Start Game", elem_id="btn-start-game")
31
+ render_toggle = gr.Checkbox(False, visible=False, interactive=False)
32
+ return m, logout_btn, solved_games_df, game_radio, level_radio, new_game_btn, render_toggle
33
+
34
+
35
+ # %%
36
+ _creds, _ = google.auth.default()
37
+ _service = build("drive", "v3", credentials=_creds)
38
+ _files = _service.files()
39
+
40
+ # %%
41
+ js_remove_input_helper = """(s) => {
42
+ var el = document.getElementById('lintao-container');
43
+ if (el) el.remove();
44
+ return s;
45
+ }"""
46
+
47
+ # %%
48
+ js_solved_games_df_and_remove_footers = """() => {
49
+ var solvedGamesDf = document.getElementById("df-solved-games");
50
+ var tables = solvedGamesDf.getElementsByTagName("table");
51
+ for (let i = 0; i < tables.length; ++i) {
52
+ tables[i].style.overflowY = "clip";
53
+ tables[i].style.overflowX = "auto";
54
+ }
55
+ var footers = document.getElementsByTagName("footer");
56
+ for (let i = 0; i < footers.length; ++i) {
57
+ // footers[i].style.visibility = 'hidden';
58
+ footers[i].remove();
59
+ }
60
+ }"""
61
+
62
+
63
+ # %%
64
+ js_island = """
65
+ function island() {{
66
+ const grid_N = {N},
67
+ grid_px = 40;
68
+
69
+ const container = document.createElement('div');
70
+ container.style.display = 'grid';
71
+ container.style.gridTemplateColumns = container.style.gridTemplateRows = `repeat(${{grid_N}}, ${{grid_px}}px)`;
72
+ container.style.gap = '1px';
73
+ container.style.border = '2px solid black';
74
+ container.style.width = 'max-content';
75
+ container.style.margin = '5px 0px 5px 40px';
76
+ container.id = 'lintao-container';
77
+
78
+ for (let i = 0; i < grid_N; ++i) {{
79
+ for (let j = 0; j < grid_N; ++j) {{
80
+ const cell = document.createElement('div');
81
+ cell.textContent = '.';
82
+ cell.style.width = cell.style.height = `${{grid_px}}px`;
83
+ cell.style.display = 'flex';
84
+ cell.style.alignItems = 'center';
85
+ cell.style.justifyContent = 'center';
86
+ cell.style.fontSize = `${{grid_px/2}}px`;
87
+ cell.style.border = '1px solid gray';
88
+ cell.style.cursor = 'pointer';
89
+ cell.id = `lintao-cell-${{i}}-${{j}}`;
90
+
91
+ // Toggle between '#', 'o', and '.'
92
+ cell.addEventListener('click', () => {{
93
+ if (cell.textContent === '.') {{
94
+ cell.textContent = '#';
95
+ }} else if (cell.textContent === '#') {{
96
+ cell.textContent = 'o';
97
+ }} else if (cell.textContent === 'o') {{
98
+ cell.textContent = '.';
99
+ }} else {{
100
+ alert(`The clicked cell has unknown value of '${{cell.textContent}}'.`)
101
+ }}
102
+ }});
103
+
104
+ container.appendChild(cell);
105
+ }}
106
+ }}
107
+ // return container;
108
+
109
+ // var gradioContainer = document.querySelector('.gradio-container');
110
+ // gradioContainer.insertBefore(container, gradioContainer.firstChild);
111
+
112
+ var submitRow = document.getElementById("lintao-submit-row");
113
+ submitRow.parentElement.insertBefore(container, submitRow);
114
+ }}
115
+ """
116
+
117
+ js_island_submit = """
118
+ function island_submit(textarea, io_history) {{
119
+ const grid_N = {N};
120
+ var ret = "";
121
+ for (let i = 0; i < grid_N; ++i) {{
122
+ if (i > 0) ret += '\\n';
123
+ for (let j = 0; j < grid_N; ++j) {{
124
+ ret += document.getElementById(`lintao-cell-${{i}}-${{j}}`).textContent;
125
+ }}
126
+ }}
127
+ return [ret, io_history];
128
+ }}
129
+ """
130
+
131
+
132
+ # %%
133
+ js_sudoku = """
134
+ function sudoku() {{
135
+ const N = {N};
136
+ const grid_N = N*N,
137
+ grid_px = 50,
138
+ border_px = 3;
139
+ const mat = {mat};
140
+
141
+ let is_numeric_sudoku = false;
142
+ for (let i = 0; i < grid_N; ++i) {{
143
+ for (let j = 0; j < grid_N; ++j) {{
144
+ if (/^\\d$/.test(mat[i][j])) {{
145
+ is_numeric_sudoku = true;
146
+ break;
147
+ }}
148
+ }}
149
+ }}
150
+
151
+ const container = document.createElement('div');
152
+ container.style.display = 'grid';
153
+ container.style.gridTemplateColumns = container.style.gridTemplateRows = `repeat(${{grid_N}}, ${{grid_px}}px)`;
154
+ container.style.gap = '1px';
155
+ container.style.border = '${{border_px}}px solid white';
156
+ container.style.width = 'max-content';
157
+ container.style.margin = '5px 0px 5px 40px';
158
+ container.id = 'lintao-container';
159
+
160
+ // Generate the grid
161
+ for (let i = 0; i < grid_N; ++i) {{
162
+ for (let j = 0; j < grid_N; ++j) {{
163
+ const cell = document.createElement('input');
164
+ cell.type = 'text';
165
+ cell.maxLength = 1;
166
+ cell.style.width = cell.style.height = `${{grid_px}}px`;
167
+ cell.style.display = 'flex';
168
+ cell.style.alignItems = 'center';
169
+ cell.style.justifyContent = 'center';
170
+ cell.style.textAlign = 'center';
171
+ cell.style.fontSize = `${{grid_px/2}}px`;
172
+ cell.style.border = '1px solid #c0c0c0';
173
+ cell.style.backgroundColor = 'black'
174
+ cell.style.cursor = 'pointer';
175
+ cell.id = `lintao-cell-${{i}}-${{j}}`;
176
+
177
+ if (mat[i][j] != '_') {{
178
+ cell.value = mat[i][j];
179
+ cell.style.color = '#D0D0D0'
180
+ cell.disabled = true;
181
+ }}
182
+
183
+ //cell.style.color = 'black';
184
+ //cell.style.outline = 'none';
185
+
186
+ if (j % N === 0) cell.style.borderLeft = `${{border_px}}px solid white`;
187
+ if (j % N === (N-1)) cell.style.borderRight = `${{border_px}}px solid white`;
188
+ if (i % N === 0) cell.style.borderTop = `${{border_px}}px solid white`;
189
+ if (i % N === (N-1)) cell.style.borderBottom = `${{border_px}}px solid white`;
190
+
191
+ // Allow only numbers 1-9 or A-I
192
+ cell.addEventListener('input', (e) => {{
193
+ if ((N === 2 && (!(is_numeric_sudoku?/^[1-4]$/:/^[A-Da-d]$/).test(e.target.value))) ||
194
+ (N === 3 && (!(is_numeric_sudoku?/^[1-9]$/:/^[A-Ia-i]$/).test(e.target.value)))) {{
195
+ e.target.value = '';
196
+ }}
197
+ e.target.value = e.target.value.toUpperCase();
198
+ }});
199
+
200
+ container.appendChild(cell);
201
+ }}
202
+ }}
203
+
204
+ container.addEventListener('focusin', (e) => {{
205
+ const index = Array.from(container.children).indexOf(e.target);
206
+ if (index === -1) return;
207
+
208
+ const row = Math.floor(index / grid_N);
209
+ const col = index % grid_N;
210
+
211
+ for (let i = 0; i < grid_N * grid_N; ++i) {{
212
+ const cell = container.children[i];
213
+ const currentRow = Math.floor(i / grid_N);
214
+ const currentCol = i % grid_N;
215
+
216
+ if (currentRow === row || currentCol === col || (Math.floor(currentRow / N) === Math.floor(row / N) && Math.floor(currentCol / N) === Math.floor(col / N))) {{
217
+ cell.style.backgroundColor = '#303039';
218
+ }} else {{
219
+ cell.style.backgroundColor = 'black';
220
+ }}
221
+ }}
222
+ }});
223
+
224
+ container.addEventListener('focusout', () => {{
225
+ for (let i = 0; i < grid_N * grid_N; i++) {{
226
+ container.children[i].style.backgroundColor = 'black';
227
+ }}
228
+ }});
229
+
230
+ var submitRow = document.getElementById("lintao-submit-row");
231
+ submitRow.parentElement.insertBefore(container, submitRow);
232
+ }}
233
+ """
234
+
235
+ js_sudoku_submit = """
236
+ function sudoku_submit(textarea, io_history) {{
237
+ const N = {N};
238
+ const grid_N = N*N;
239
+ var ret = "";
240
+ for (let i = 0; i < grid_N; ++i) {{
241
+ if (i > 0) ret += '\\n';
242
+ for (let j = 0; j < grid_N; ++j) {{
243
+ ret += document.getElementById(`lintao-cell-${{i}}-${{j}}`).value;
244
+ }}
245
+ }}
246
+ return [ret, io_history];
247
+ }}
248
+ """
249
+
250
+
251
+ # %%
252
+ js_crossword = """
253
+ function crossword() {{
254
+ const grid_N = {N},
255
+ grid_px = 50;
256
+
257
+ const container = document.createElement('div');
258
+ container.style.display = 'grid';
259
+ container.style.gridTemplateColumns = container.style.gridTemplateRows = `repeat(${{grid_N}}, ${{grid_px}}px)`;
260
+ container.style.gap = '1px';
261
+ container.style.border = '2px solid white';
262
+ container.style.width = 'max-content';
263
+ container.style.margin = '5px 0px 5px 40px';
264
+ container.id = 'lintao-container';
265
+
266
+ // Generate the grid
267
+ for (let i = 0; i < grid_N; ++i) {{
268
+ for (let j = 0; j < grid_N; ++j) {{
269
+ const cell = document.createElement('input');
270
+ //cell.textContent = '';
271
+ cell.type = 'text';
272
+ cell.maxLength = 1;
273
+ cell.style.width = cell.style.height = `${{grid_px}}px`;
274
+ cell.style.display = 'flex';
275
+ cell.style.alignItems = 'center';
276
+ cell.style.justifyContent = 'center';
277
+ cell.style.textAlign = 'center';
278
+ cell.style.fontSize = `${{grid_px/2}}px`;
279
+ cell.style.border = '1px solid #c0c0c0';
280
+ cell.style.backgroundColor = 'black'
281
+ cell.style.cursor = 'pointer';
282
+ cell.id = `lintao-cell-${{i}}-${{j}}`;
283
+
284
+ // Allow only a-z
285
+ cell.addEventListener('input', (e) => {{
286
+ if (!/^[a-z]$/.test(e.target.value)) {{
287
+ e.target.value = '';
288
+ }}
289
+ }});
290
+
291
+ container.appendChild(cell);
292
+ }}
293
+ }}
294
+
295
+ var submitRow = document.getElementById("lintao-submit-row");
296
+ submitRow.parentElement.insertBefore(container, submitRow);
297
+ }}
298
+ """
299
+
300
+ js_crossword_submit = """
301
+ function crossword_submit(textarea, io_history) {{
302
+ const grid_N = {N};
303
+ var ret = "";
304
+ for (let i = 0; i < grid_N; ++i) {{
305
+ if (i > 0) ret += '\\n';
306
+ for (let j = 0; j < grid_N; ++j) {{
307
+ ret += document.getElementById(`lintao-cell-${{i}}-${{j}}`).value;
308
+ }}
309
+ }}
310
+ return [ret, io_history];
311
+ }}
312
+ """
313
+
314
+
315
+ # %%
316
+ js_ordering = """
317
+ function ordering() {{
318
+ const listContainer = document.createElement('ul');
319
+ listContainer.style.listStyle = 'none';
320
+ listContainer.style.padding = '0';
321
+ listContainer.style.width = '20em';
322
+ listContainer.style.border = '2px solid white';
323
+ listContainer.style.margin = '5px 0px 5px 40px';
324
+ listContainer.id = 'lintao-container';
325
+
326
+ document.body.appendChild(listContainer);
327
+
328
+ const items = {items};
329
+
330
+ items.forEach((itemText, index) => {{
331
+ const listItem = document.createElement('li');
332
+ listItem.textContent = itemText;
333
+ listItem.draggable = true;
334
+ listItem.style.padding = '10px';
335
+ listItem.style.border = '1px solid #c0c0c0';
336
+ listItem.style.margin = '3px';
337
+ listItem.style.backgroundColor = 'black';
338
+ listItem.style.cursor = 'grab';
339
+ listItem.id = `lintao-item-${{index}}`;
340
+
341
+ // Drag and drop events
342
+ listItem.addEventListener('dragstart', (e) => {{
343
+ const draggedIndex = Array.from(listContainer.children).indexOf(listItem);
344
+ e.dataTransfer.setData('text/plain', draggedIndex);
345
+ listItem.style.backgroundColor = '#1f1811';
346
+ }});
347
+
348
+ listItem.addEventListener('dragover', (e) => {{
349
+ e.preventDefault();
350
+ listItem.style.backgroundColor = '#303030';
351
+ }});
352
+
353
+ listItem.addEventListener('dragleave', () => {{
354
+ listItem.style.backgroundColor = 'black';
355
+ }});
356
+
357
+ listItem.addEventListener('drop', (e) => {{
358
+ e.preventDefault();
359
+ const draggedIndex = e.dataTransfer.getData('text/plain');
360
+ const draggedItem = listContainer.children[draggedIndex];
361
+ const targetIndex = Array.from(listContainer.children).indexOf(listItem);
362
+ console.log(draggedIndex, draggedItem, targetIndex);
363
+
364
+ if (draggedIndex !== targetIndex) {{
365
+ listContainer.insertBefore(draggedItem, targetIndex > draggedIndex ? listItem.nextSibling : listItem);
366
+ }}
367
+
368
+ listItem.style.backgroundColor = 'black';
369
+ }});
370
+
371
+ listItem.addEventListener('dragend', () => {{
372
+ listItem.style.backgroundColor = 'black';
373
+ }});
374
+
375
+ listContainer.appendChild(listItem);
376
+ }});
377
+
378
+ var submitRow = document.getElementById("lintao-submit-row");
379
+ submitRow.parentElement.insertBefore(listContainer, submitRow);
380
+ }}
381
+ """
382
+
383
+ js_ordering_submit = """
384
+ function ordering_submit(textarea, io_history) {{
385
+ var ret = "";
386
+ const container =
387
+ document.getElementById("lintao-container").childNodes.forEach(
388
+ (c, i) => {{
389
+ if (i>0) ret += '\\n';
390
+ ret += c.textContent;
391
+ }}
392
+ )
393
+ return [ret, io_history];
394
+ }}
395
+ """
396
+
397
+
398
+ # %%
399
+ def _calc_time_elapsed(start_time, cur_text, is_solved):
400
+ if not is_solved:
401
+ return f"Time Elapsed (sec): {time.time() - start_time:8.1f}"
402
+ else:
403
+ return cur_text
404
+
405
+
406
+ # %%
407
+ def _get_file_output(game_name, level_id, fn_prefix):
408
+ fd = os.getenv('TEXTGAMES_OUTPUT_DIR', '.')
409
+ os.makedirs(fd, exist_ok=True)
410
+ return f"{fd}/{fn_prefix}_-_{game_filename(game_name)}_{level_id}.pkl"
411
+
412
+
413
+ # %%
414
+ def start_new_game(game_name, level, session_state_component, is_solved_component, solved_games_component,
415
+ user=None, show_timer=False, uid=None):
416
+ # cur_game_id = GAME_IDS[GAME_NAMES.index(game_name)]
417
+ difficulty_level = LEVEL_IDS[LEVELS.index(level)]
418
+
419
+ # if show_timer:
420
+ # elapsed_text = gr.Textbox("N/A", label=f"{game_name}", info=f"{level}", )
421
+ # gr.Timer(.3).tick(_calc_time_elapsed, [cur_game_start, elapsed_text, is_solved_component], [elapsed_text])
422
+
423
+ fp_out = _get_file_output(game_name, difficulty_level, uid)
424
+ cur_game = (
425
+ new_game(game_name, difficulty_level)
426
+ if user is None else
427
+ preload_game(game_name, difficulty_level, user)
428
+ )
429
+ cur_game.attach_stats_output_(fp_out)
430
+ cur_game.flush_stats_(user=user)
431
+
432
+ def add_msg(new_msg, prev_msg):
433
+ user_input = '\n'.join(new_msg.split())
434
+ solved, val_msg = cur_game.validate(user_input)
435
+ response = ("Correct guess" if solved else "Bad guess (Wrong Answer)") + "\n" + val_msg
436
+ new_io_history = prev_msg + [f"Guess>\n{new_msg}", "Prompt>\n" + response]
437
+ return (
438
+ ("" if not solved else gr.Textbox("Thank you for playing!", interactive=False)),
439
+ new_io_history, "\n\n".join(new_io_history), (1 if solved else 0),
440
+ )
441
+
442
+ gr.Markdown(
443
+ """
444
+ > ### ‼️ Do ***NOT*** refresh this page. ‼️<br>
445
+ > #### ⚠️ Refreshing the page equals "Give-up 😭" ⚠️
446
+
447
+
448
+ """
449
+ )
450
+ showhide_helper_btn = gr.Button("Show Input Helper (disabling manual input)", elem_id="lintao-helper-btn")
451
+ io_history = gr.State(["Prompt>\n" + cur_game.get_prompt()])
452
+ io_textbox = gr.Textbox("\n\n".join(io_history.value), label="Prompt>", interactive=False)
453
+ textarea = gr.Textbox(label="Guess>", lines=5, info=f"(Shift + Enter to submit)")
454
+ textarea.submit(add_msg, [textarea, io_history], [textarea, io_history, io_textbox, is_solved_component])
455
+ js_submit = "(a,b) => [a,b]"
456
+ if any([isinstance(cur_game, cls) for cls in (Islands, Sudoku, CrosswordArrangerGame, OrderingTextGame)]):
457
+ if isinstance(cur_game, Islands):
458
+ js, js_submit = js_island.format(N=cur_game.N), js_island_submit.format(N=cur_game.N)
459
+ elif isinstance(cur_game, Sudoku):
460
+ sudoku_arr = str(list(map(lambda r: ''.join(map(str, r)), cur_game.mat)))
461
+ js, js_submit = js_sudoku.format(N=cur_game.srn, mat=sudoku_arr), js_sudoku_submit.format(N=cur_game.srn)
462
+ elif isinstance(cur_game, CrosswordArrangerGame):
463
+ js, js_submit = js_crossword.format(N=cur_game.board_size), js_crossword_submit.format(
464
+ N=cur_game.board_size)
465
+ elif isinstance(cur_game, OrderingTextGame):
466
+ js, js_submit = js_ordering.format(items=f"{cur_game.words}"), js_ordering_submit.format()
467
+ else:
468
+ raise NotImplementedError(cur_game)
469
+ showhide_helper_btn.click(lambda: (gr.update(interactive=False), gr.update(interactive=False)), None,
470
+ [textarea, showhide_helper_btn], js=js)
471
+ else:
472
+ showhide_helper_btn.interactive = showhide_helper_btn.visible = False
473
+
474
+ with gr.Row(elem_id="lintao-submit-row"):
475
+ submit_btn = gr.Button("Submit", elem_id="lintao-submit-btn", variant='primary', scale=3)
476
+ give_up_btn = gr.Button("Give-up 😭", variant='stop', scale=1)
477
+ finish_btn = gr.Button("πŸŽ‰πŸŽŠ ~ Finish Game ~ πŸŽŠπŸŽ‰", variant='primary', visible=False, interactive=False)
478
+
479
+ submit_btn.click(add_msg, [textarea, io_history], [textarea, io_history, io_textbox, is_solved_component],
480
+ js=js_submit)
481
+ give_up_checkbox = gr.Checkbox(False, visible=False, interactive=False)
482
+ give_up_btn.click(
483
+ lambda x: x, [give_up_checkbox], [give_up_checkbox],
484
+ js="(x) => confirm('πŸ₯Ή Give-up? πŸ’Έ')"
485
+ )
486
+
487
+ def _forfeiting(confirmed, _solved_games):
488
+ if confirmed:
489
+ cur_game.finish_stats_(forfeit=True)
490
+ if level in LEVELS[1:4] and level not in _solved_games[game_name]:
491
+ _solved_games[game_name].append(level)
492
+ return 0, _solved_games
493
+ return 1, _solved_games
494
+ give_up_checkbox.change(_forfeiting, [give_up_checkbox, solved_games_component],
495
+ [session_state_component, solved_games_component])
496
+
497
+ def game_is_solved(_is_solved, _session_state, _solved_games):
498
+ if _is_solved:
499
+ if level in LEVELS[1:4] and level not in _solved_games[game_name]:
500
+ _solved_games[game_name].append(level)
501
+ return (
502
+ 2,
503
+ gr.update(visible=False, interactive=False),
504
+ gr.update(visible=False, interactive=False),
505
+ gr.update(visible=True, interactive=True),
506
+ _solved_games,
507
+ )
508
+ else:
509
+ return (
510
+ _session_state, gr.update(), gr.update(), gr.update(), _solved_games
511
+ )
512
+
513
+ def upload_to_drive():
514
+ fn = fp_out.rsplit("/", 1)[-1]
515
+ file_metadata = {"name": fn, "parents": ["1qStKuVerAQPsXagngfzlNg8PdAR5hupA"]}
516
+ media = MediaFileUpload(fp_out)
517
+ # print(f"{file_metadata}\n{fn}")
518
+ try:
519
+ _files.create(body=file_metadata, media_body=media).execute()
520
+ except HttpError as error:
521
+ print(f"An error occurred: {error}")
522
+
523
+ is_solved_component.change(
524
+ game_is_solved,
525
+ [is_solved_component, session_state_component, solved_games_component],
526
+ [session_state_component, submit_btn, give_up_btn, finish_btn, solved_games_component],
527
+ )
528
+ finish_btn.click(
529
+ upload_to_drive, None, None,
530
+ ).then(
531
+ lambda: (0, 0), None, [session_state_component, is_solved_component]
532
+ )
533
+
534
+
535
+ # %%
536
+ def check_to_start_new_game(game_name, level, user=None, uid=None):
537
+ print(game_name, level)
538
+ if game_name is None or level is None:
539
+ raise gr.Error("please choose both Game & Level")
540
+ fp = _get_file_output(game_name, LEVEL_IDS[LEVELS.index(level)], uid)
541
+ if os.path.exists(fp):
542
+ raise gr.Error(f"You have done this game already.<br/>{game_name} - {level}")
543
+ if user is None:
544
+ gr.Warning("no user, game will be generated randomly")
545
+ else:
546
+ if not user['email_verified']:
547
+ gr.Warning("please verify your email address")
548
+ elif user['email_verified'] == "mockuser":
549
+ gr.Info("game will load with a mocked-up user")
550
+ return 1
551
+
552
+
553
+ # %%
554
+ def check_played_game(solved_games, uid):
555
+ ret = dict()
556
+ for game_name in solved_games.keys():
557
+ cur = []
558
+ for level, level_id in zip(LEVELS[1:4], LEVEL_IDS[1:4]):
559
+ if os.path.exists(_get_file_output(game_name, level_id, uid)):
560
+ cur.append(level)
561
+ ret[game_name] = cur
562
+ return ret
563
+
564
+
565
+ # %%
566
+ def session_state_change_fn(_session_state, cnt_return_with_val=2, cnt_negate_with_val=0, cnt_return=1, cnt_negate=0):
567
+ # print(f"Session state changed to {_session_state}")
568
+ ret = (_session_state not in [1, 2])
569
+
570
+ def up(positive, positive_reset_value=True):
571
+ return (
572
+ gr.update(interactive=True, value=None) if positive and positive_reset_value else
573
+ gr.update(interactive=True) if positive else gr.update(interactive=False)
574
+ )
575
+
576
+ return ([up(ret, True) for _ in range(cnt_return_with_val)] +
577
+ [up(not ret, True) for _ in range(cnt_negate_with_val)] +
578
+ [up(ret, False) for _ in range(cnt_return)] +
579
+ [up(not ret, False) for _ in range(cnt_negate)] +
580
+ [])
581
+
582
+
583
+ # %%
584
+ def solved_games_change_fn(solved_games):
585
+ def _icon(_):
586
+ return _.split('\t', 1)[0]
587
+ return pd.DataFrame({
588
+ _icon(g): [" ".join(map(_icon, l))]
589
+ for g, l in solved_games.items()
590
+ })
591
+
592
+
593
+ # %%
594
+
595
+
596
+ # %%
597
+
play_with_auth.py ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+
3
+ os.environ.setdefault("GRADIO_SERVER_PORT", "1080")
4
+ # os.environ.setdefault("TEXTGAMES_SHOW_HIDDEN_LEVEL", "1")
5
+ os.environ.setdefault("TEXTGAMES_LOADGAME_DIR", "problemsets")
6
+ os.environ.setdefault("TEXTGAMES_LOADGAME_ID", "42")
7
+ os.environ.setdefault("TEXTGAMES_MOCKUSER", "")
8
+ os.environ.setdefault("TEXTGAMES_OUTPUT_DIR", "user_outputs")
9
+ favicon_path = "textgames-scrabble-black2-ss.png"
10
+
11
+ #%%
12
+ from textgames import GAME_NAMES, LEVELS
13
+ from play_helper import declare_components, start_new_game, check_to_start_new_game,\
14
+ session_state_change_fn, js_solved_games_df_and_remove_footers, js_remove_input_helper, solved_games_change_fn, check_played_game
15
+ from typing import Optional
16
+ import hashlib
17
+
18
+
19
+ #%%
20
+ import uvicorn
21
+ from fastapi import FastAPI, Depends, Request
22
+ from starlette.config import Config
23
+ from starlette.responses import RedirectResponse, FileResponse
24
+ from starlette.middleware.sessions import SessionMiddleware
25
+ from authlib.integrations.starlette_client import OAuth, OAuthError
26
+ import gradio as gr
27
+
28
+ app = FastAPI()
29
+
30
+ # Replace these with your own OAuth settings
31
+ GOOGLE_CLIENT_ID = os.environ.get("GOOGLE_CLIENT_ID")
32
+ GOOGLE_CLIENT_SECRET = os.environ.get("GOOGLE_CLIENT_SECRET")
33
+ SECRET_KEY = os.environ.get("SECRET_KEY", "a_very_secret_key")
34
+
35
+ # Set up OAuth
36
+ config_data = {'GOOGLE_CLIENT_ID': GOOGLE_CLIENT_ID, 'GOOGLE_CLIENT_SECRET': GOOGLE_CLIENT_SECRET}
37
+ starlette_config = Config(environ=config_data)
38
+ oauth = OAuth(starlette_config)
39
+ oauth.register(
40
+ name='google',
41
+ server_metadata_url='https://accounts.google.com/.well-known/openid-configuration',
42
+ client_kwargs={'scope': 'openid email profile'},
43
+ )
44
+
45
+ app.add_middleware(SessionMiddleware, secret_key=SECRET_KEY)
46
+
47
+ _HASHER = (hashlib.blake2b, {"digest_size": 16, "key": SECRET_KEY.encode('utf-8')})
48
+
49
+
50
+ def _hash_msg(msg):
51
+ return msg
52
+ # if isinstance(msg, str):
53
+ # msg = msg.encode('utf-8')
54
+ # m = _HASHER[0](**_HASHER[1])
55
+ # m.update(msg)
56
+ # return m.hexdigest()
57
+
58
+
59
+ # Dependency to get the current user
60
+ def get_user(request: Request) -> Optional[dict]:
61
+ if user := request.session.get('user'):
62
+ return user
63
+ elif username := os.getenv("TEXTGAMES_MOCKUSER", ""):
64
+ return {'name': username, 'email': username, 'email_verified': False}
65
+ else:
66
+ return
67
+
68
+
69
+ def get_username(request: Request):
70
+ user = get_user(request)
71
+ if user:
72
+ return user['email']
73
+ return None
74
+
75
+
76
+ @app.get('/favicon.ico', include_in_schema=False)
77
+ async def favicon():
78
+ return FileResponse(favicon_path)
79
+
80
+
81
+ @app.get('/')
82
+ def public(user: str = Depends(get_username)):
83
+ if user:
84
+ return RedirectResponse(url='/TextGames')
85
+ else:
86
+ return RedirectResponse(url='/login')
87
+
88
+
89
+ @app.route('/logout')
90
+ async def logout(request: Request):
91
+ request.session.pop('user', None)
92
+ if os.getenv('TEXTGAMES_MOCKUSER', ''):
93
+ os.environ['TEXTGAMES_MOCKUSER'] = ''
94
+ return RedirectResponse(url='/')
95
+
96
+
97
+ @app.route('/do-login')
98
+ async def login(request: Request):
99
+ redirect_uri = request.url_for('auth')
100
+ # If your app is running on https, you should ensure that the
101
+ # `redirect_uri` is https, e.g. uncomment the following lines:
102
+ #
103
+ # from urllib.parse import urlparse, urlunparse
104
+ # redirect_uri = urlunparse(urlparse(str(redirect_uri))._replace(scheme='https'))
105
+ return await oauth.google.authorize_redirect(request, redirect_uri)
106
+
107
+
108
+ @app.route('/auth')
109
+ async def auth(request: Request):
110
+ try:
111
+ access_token = await oauth.google.authorize_access_token(request)
112
+ except OAuthError:
113
+ return RedirectResponse(url='/')
114
+ request.session['user'] = dict(access_token)["userinfo"]
115
+ return RedirectResponse(url='/')
116
+
117
+
118
+ def greet(request: gr.Request):
119
+ user = get_user(request.request)
120
+ # uid = ('1' if user['email_verified'] else '0') + f"{int(time.time()*10):x}_"[-8:] + _hash_msg(user['email'])
121
+ uid = _hash_msg(user['email'].encode('utf-8'))
122
+ return f"""
123
+ Welcome to TextGames, {user['name']}!<br />
124
+ <{user['email'].replace('@', '{at}')}> ({'' if user['email_verified'] else 'NON-'}verified email)
125
+ """, user, uid
126
+
127
+
128
+ with gr.Blocks(title="TextGames") as login_demo:
129
+ gr.Markdown("Welcome to TextGames!")
130
+ # gr.Button("Login", link="/do-login")
131
+ gr.Button("πŸšͺ\tLogin", link="/do-login", icon=None)
132
+
133
+ app = gr.mount_gradio_app(app, login_demo, path="/login")
134
+
135
+ with gr.Blocks(title="TextGames", delete_cache=(3600, 3600)) as demo:
136
+ m, logout_btn, solved_games_df, game_radio, level_radio, new_game_btn, render_toggle = declare_components()
137
+
138
+ # cur_game_start = gr.BrowserState()
139
+ session_state = gr.State(0) # 0: menu selection, 1: game is ongoing, 2: game is solved.
140
+ is_solved = gr.State(0)
141
+ solved_games = gr.State({g: [] for _, g in game_radio.choices})
142
+ user_state = gr.State()
143
+ uid_state = gr.State()
144
+
145
+ session_state.change(
146
+ lambda s: session_state_change_fn(s, 2, 0, 2, 0),
147
+ [session_state], [game_radio, level_radio, new_game_btn, logout_btn], js=js_remove_input_helper,
148
+ )
149
+ new_game_btn.click(check_to_start_new_game, [game_radio, level_radio, user_state, uid_state], [session_state])
150
+ solved_games.change(solved_games_change_fn, solved_games, solved_games_df)
151
+ session_state.change(lambda s, r: (not r if s in [0, 1] else r), [session_state, render_toggle], [render_toggle])
152
+
153
+ demo.load(
154
+ greet, None, [m, user_state, uid_state], js=js_solved_games_df_and_remove_footers
155
+ ).then(
156
+ check_played_game, [solved_games, uid_state], [solved_games]
157
+ )
158
+
159
+ @gr.render(inputs=[game_radio, level_radio, user_state, session_state, uid_state], triggers=[render_toggle.change])
160
+ def _start_new_game(game_name, level, user, _session_state, _uid_state):
161
+ if _session_state in [1, 2]:
162
+ start_new_game(game_name, level, session_state, is_solved, solved_games, user=user, uid=_uid_state)
163
+
164
+
165
+ app = gr.mount_gradio_app(app, demo, path="/TextGames", auth_dependency=get_username)
166
+
167
+ if __name__ == '__main__':
168
+ uvicorn.run(app, port=int(os.environ.get("GRADIO_SERVER_PORT", "8080")))
169
+
170
+
171
+ #%%
172
+
173
+
174
+ #%%
175
+
problemsets/Anagram Scribble_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Anagram Scribble_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Anagram Scribble_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Bracket Game_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Bracket Game_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Bracket Game_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Crossword Arranger_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Crossword Arranger_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Crossword Arranger_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Islands_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Islands_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Islands_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Ordering Text_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Ordering Text_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Ordering Text_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Password Game_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Password Game_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Password Game_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/String Search_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/String Search_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/String Search_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Text Sudoku_1.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Text Sudoku_2.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/Text Sudoku_3.json ADDED
The diff for this file is too large to render. See raw diff
 
problemsets/log.txt ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ πŸ“° Crossword Arranger_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:04<00:00, 206.56it/s]
2
+ [πŸ“° Crossword Arranger_1] Duplicate #: 0
3
+ πŸ“° Crossword Arranger_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:14<00:00, 69.60it/s]
4
+ [πŸ“° Crossword Arranger_2] Duplicate #: 0
5
+ πŸ“° Crossword Arranger_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [05:30<00:00, 3.02it/s]
6
+ [πŸ“° Crossword Arranger_3] Duplicate #: 0
7
+ 🧩 Text Sudoku_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 7546.89it/s]
8
+ [🧩 Text Sudoku_1] Duplicate #: 0
9
+ 🧩 Text Sudoku_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 6991.53it/s]
10
+ [🧩 Text Sudoku_2] Duplicate #: 0
11
+ 🧩 Text Sudoku_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:09<00:00, 107.71it/s]
12
+ [🧩 Text Sudoku_3] Duplicate #: 0
13
+ 🏝️ Islands_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 6561.67it/s]
14
+ 🏝️ Islands_2: 0%| | 0/1000 [00:00<?, ?it/s][🏝️ Islands_1] Duplicate #: 1689
15
+ [🏝️ Islands_2] Duplicate #: 1910
16
+ 🏝️ Islands_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 14037.63it/s]
17
+ 🏝️ Islands_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 8771.91it/s]
18
+ [🏝️ Islands_3] Duplicate #: 2813
19
+ πŸ”‘ Password Game_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [04:15<00:00, 3.91it/s]
20
+ [πŸ”‘ Password Game_1] Duplicate #: 3003
21
+ πŸ”‘ Password Game_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [03:47<00:00, 4.40it/s]
22
+ [πŸ”‘ Password Game_2] Duplicate #: 3004
23
+ πŸ”‘ Password Game_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [03:48<00:00, 4.37it/s]
24
+ [πŸ”‘ Password Game_3] Duplicate #: 3004
25
+ πŸ“ˆ Ordering Text_1: 0%| | 0/1000 [00:00<?, ?it/s]can't find matching word
26
+ can't find matching word
27
+ can't find matching word
28
+ can't find matching word
29
+ can't find matching word
30
+ can't find matching word
31
+ can't find matching word
32
+ πŸ“ˆ Ordering Text_1: 30%|β–ˆβ–ˆβ–ˆ | 303/1000 [00:00<00:00, 2988.99it/s]can't find matching word
33
+ can't find matching word
34
+ can't find matching word
35
+ can't find matching word
36
+ can't find matching word
37
+ can't find matching word
38
+ πŸ“ˆ Ordering Text_1: 67%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‹ | 669/1000 [00:00<00:00, 3373.69it/s]can't find matching word
39
+ can't find matching word
40
+ can't find matching word
41
+ can't find matching word
42
+ can't find matching word
43
+ can't find matching word
44
+ can't find matching word
45
+ can't find matching word
46
+ can't find matching word
47
+ can't find matching word
48
+ can't find matching word
49
+ can't find matching word
50
+ can't find matching word
51
+ can't find matching word
52
+ [πŸ“ˆ Ordering Text_1] Duplicate #: 3004
53
+ πŸ“ˆ Ordering Text_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 3012.38it/s]
54
+ πŸ“ˆ Ordering Text_2: 0%| | 0/1000 [00:00<?, ?it/s]can't find matching word
55
+ can't find matching word
56
+ can't find matching word
57
+ πŸ“ˆ Ordering Text_2: 32%|β–ˆβ–ˆβ–ˆβ– | 323/1000 [00:00<00:00, 3224.33it/s]can't find matching word
58
+ can't find matching word
59
+ can't find matching word
60
+ can't find matching word
61
+ πŸ“ˆ Ordering Text_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 2945.44it/s]
62
+ πŸ“ˆ Ordering Text_3: 0%| | 0/1000 [00:00<?, ?it/s][πŸ“ˆ Ordering Text_2] Duplicate #: 3004
63
+ πŸ“ˆ Ordering Text_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:00<00:00, 1941.32it/s]
64
+ πŸ”€ Anagram Scribble_1: 0%| | 0/1000 [00:00<?, ?it/s][πŸ“ˆ Ordering Text_3] Duplicate #: 3004
65
+ πŸ”€ Anagram Scribble_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [01:53<00:00, 8.84it/s]
66
+ πŸ”€ Anagram Scribble_2: 0%| | 0/1000 [00:00<?, ?it/s][πŸ”€ Anagram Scribble_1] Duplicate #: 3004
67
+ πŸ”€ Anagram Scribble_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [01:57<00:00, 8.54it/s]
68
+ [πŸ”€ Anagram Scribble_2] Duplicate #: 3004
69
+ πŸ”€ Anagram Scribble_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [01:50<00:00, 9.02it/s]
70
+ πŸ—³οΈ Bracket Game_1: 4%|▍ | 41/1000 [00:13<05:21, 2.98it/s][πŸ”€ Anagram Scribble_3] Duplicate #: 3004
71
+ πŸ—³οΈ Bracket Game_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [05:15<00:00, 3.17it/s]
72
+ [πŸ—³οΈ Bracket Game_1] Duplicate #: 3004
73
+ πŸ—³οΈ Bracket Game_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [05:17<00:00, 3.15it/s]
74
+ πŸ—³οΈ Bracket Game_3: 6%|β–Œ | 55/1000 [00:17<05:17, 2.98it/s][πŸ—³οΈ Bracket Game_2] Duplicate #: 3004
75
+ πŸ—³οΈ Bracket Game_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [05:20<00:00, 3.12it/s]
76
+ [πŸ—³οΈ Bracket Game_3] Duplicate #: 3004
77
+ πŸ”Ž String Search_1: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:54<00:00, 18.36it/s]
78
+ [πŸ”Ž String Search_1] Duplicate #: 3004
79
+ πŸ”Ž String Search_2: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:56<00:00, 17.85it/s]
80
+ πŸ”Ž String Search_3: 0%| | 0/1000 [00:00<?, ?it/s][πŸ”Ž String Search_2] Duplicate #: 3004
81
+ πŸ”Ž String Search_3: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1000/1000 [00:50<00:00, 19.63it/s]
82
+ [πŸ”Ž String Search_3] Duplicate #: 3004
83
+ duplicates:3004
84
+
85
+ Process finished with exit code 0
requirements.txt ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ sympy
2
+ numpy
3
+ pandas
4
+ termcolor
5
+ gradio
6
+ openai
7
+ cohere
8
+ transformers
9
+ torch
10
+ accelerate
11
+ bitsandbytes
12
+ itsdangerous
13
+ authlib
14
+ google-api-python-client
15
+ google-auth-httplib2
16
+ google-auth-oauthlib
session_email.csv ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ SID,EMAIL
2
+ session_0000,
3
+ session_0001,
4
+ session_0002,
5
+ session_0003,frederikus.hudi@gmail.com
6
+ session_0004,
7
+ session_0005,
8
+ session_0006,
textgames-scrabble-black2-ss.png ADDED
textgames/__init__.py ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from textgames.crossword_arranger.crossword_arranger import CrosswordArrangerGame
2
+ from textgames.password_game.password_game import PasswordGame
3
+ from textgames.sudoku.sudoku import Sudoku
4
+ from textgames.bracket_game.bracket_game import BracketGame
5
+ from textgames.ordering_text.ordering_text import OrderingTextGame
6
+ from textgames.islands.islands import Islands
7
+ from textgames.string_search.string_search import StringSearch
8
+ from textgames.anagram_scribble.anagram_scribble import AnagramScribble
9
+
10
+ import random
11
+ import os
12
+
13
+ from pandas import read_csv
14
+ import json
15
+
16
+
17
+ # ["πŸ”‘\tPassword Game", "🧩\tText Sudoku", "πŸ—³οΈ\tBracket Game", "πŸ“ˆ\tOrdering Text",
18
+ # "🏝️\tIslands", "πŸ”Ž\tString Search", "πŸ“°\tCrossword Arranger", "πŸ”€\tAnagram Scribble",]
19
+ THE_GAMES = {
20
+ k: v.get_game_name() for k, v in [
21
+ ("1", CrosswordArrangerGame),
22
+ ("2", Sudoku),
23
+ ("3", Islands),
24
+ ("4", PasswordGame),
25
+ ("5", OrderingTextGame),
26
+ ("6", AnagramScribble),
27
+ ("7", BracketGame),
28
+ ("8", StringSearch),
29
+ ]
30
+ }
31
+ GAME_IDS = list(THE_GAMES.keys())
32
+ GAME_NAMES = list(THE_GAMES.values())
33
+ SINGLE_LINE_GAME_IDS = list(map(lambda g: GAME_IDS[GAME_NAMES.index(g.get_game_name())],
34
+ [PasswordGame, BracketGame, StringSearch, AnagramScribble]
35
+ ))
36
+
37
+ LEVEL_IDS = ["0", "1", "2", "3", "4", "00"]
38
+ LEVELS = ["πŸ”°\tSample #1", "πŸš…\tEasy", "πŸš€\tMedium", "πŸ›Έ\tHard"]
39
+ LEVELS_HIDDEN = ["🌌\tInsane", "πŸ”°\tSample #2"]
40
+ _show_hidden_level_ = os.getenv("TEXTGAMES_SHOW_HIDDEN_LEVEL", False)
41
+ if _show_hidden_level_:
42
+ LEVELS, LEVELS_HIDDEN = LEVELS + LEVELS_HIDDEN, []
43
+
44
+
45
+ def _reload(prompt, game_cls):
46
+ game = game_cls()
47
+ game.load_game(prompt)
48
+ return game
49
+
50
+
51
+ def game_filename(_game_name):
52
+ return _game_name.split('\t', 1)[-1]
53
+
54
+
55
+ def _game_class_from_name(game_name):
56
+ for game_class in [PasswordGame, Sudoku, BracketGame, OrderingTextGame, Islands,
57
+ StringSearch, CrosswordArrangerGame, AnagramScribble]:
58
+ if game_name == game_class.get_game_name():
59
+ return game_class
60
+ return None
61
+
62
+
63
+ def preload_game(game_name, level_id, user):
64
+ game_cls = _game_class_from_name(game_name)
65
+ email_sid_dict = read_csv("session_email.csv").dropna().set_index("EMAIL").SID.to_dict()
66
+ sid = email_sid_dict.get(user["email"])
67
+ print(f"preload_game('{game_name}', '{level_id}', '{user['email']}')", game_cls, sid, sep="\n\t")
68
+
69
+ with open(f"problemsets/{game_filename(game_name)}_{level_id}.json", "r", encoding="utf8") as f:
70
+ sid_prompt_dict = json.load(f)
71
+ prompt = sid_prompt_dict.get(sid)
72
+ print("Loaded prompt:", prompt, sep="\n")
73
+
74
+ return _reload(prompt, game_cls)
75
+
76
+
77
+ def new_game(game_name, level_id):
78
+ not_available_game_level = NotImplementedError(
79
+ f"The difficulty level is not available for this game: {game_name} - {level_id}"
80
+ )
81
+
82
+ if game_name == PasswordGame.get_game_name():
83
+ game = PasswordGame()
84
+ if level_id == "1":
85
+ num_rules = 2
86
+ elif level_id == "2":
87
+ num_rules = 4
88
+ elif level_id == "3":
89
+ num_rules = 6
90
+ else:
91
+ raise not_available_game_level
92
+ game.generate_new_game(num_rules=num_rules)
93
+ if os.getenv("TEXTGAMES_NEWGAME_VERBOSE", False):
94
+ print(f"possible answer: {game.possible_ans}")
95
+
96
+ elif game_name == Sudoku.get_game_name():
97
+ game = Sudoku()
98
+ if level_id == "1":
99
+ setting = random.randint(0,1)
100
+ if setting == 0:
101
+ game.generate_new_game(size=4, characters=["1","2","3","4"], empty_character="_", empty_ratio=0.25)
102
+ elif setting == 1:
103
+ game.generate_new_game(size=4, characters=["A","B","C","D"], empty_character="_", empty_ratio=0.25)
104
+ elif level_id == "2":
105
+ setting = random.randint(0,1)
106
+ if setting == 0:
107
+ game.generate_new_game(size=4, characters=["1","2","3","4"], empty_character="_", empty_ratio=0.5)
108
+ elif setting == 1:
109
+ game.generate_new_game(size=4, characters=["A","B","C","D"], empty_character="_", empty_ratio=0.5)
110
+ elif level_id == "3":
111
+ setting = random.randint(0,1)
112
+ if setting == 0:
113
+ game.generate_new_game(size=9, characters=["1","2","3","4","5","6","7","8","9"], empty_character="_", empty_ratio=0.4)
114
+ elif setting == 1:
115
+ game.generate_new_game(size=9, characters=["A","B","C","D","E","F","G","H","I"], empty_character="_", empty_ratio=0.4)
116
+ else:
117
+ raise not_available_game_level
118
+ game.print_sudoku()
119
+
120
+ elif game_name == BracketGame.get_game_name():
121
+ game = BracketGame()
122
+ if level_id == "1":
123
+ game.generate_new_game(num_words=3, num_rules=3, depth=2, multi_word=False)
124
+ elif level_id == "2":
125
+ game.generate_new_game(num_words=5, num_rules=5, depth=2, multi_word=False)
126
+ elif level_id == "3":
127
+ game.generate_new_game(num_words=10, num_rules=7, depth=3, multi_word=True)
128
+ else:
129
+ raise not_available_game_level
130
+
131
+ elif game_name == OrderingTextGame.get_game_name():
132
+ game = OrderingTextGame()
133
+ if level_id == "0":
134
+ game.generate_new_game(preset_config=1)
135
+ elif level_id == "00":
136
+ game.generate_new_game(preset_config=2)
137
+ elif level_id == "1":
138
+ game.generate_new_game(num_rules=(2, 2), uniq_classrules=True, positive_only=False,
139
+ num_words=(3, 3), word_length=(3, 8), word_dic_only=True)
140
+ elif level_id == "2":
141
+ game.generate_new_game(num_rules=(2, 4), uniq_classrules=True, positive_only=False,
142
+ num_words=(4, 6), word_length=(3, 8), word_dic_only=True)
143
+ elif level_id == "3":
144
+ game.generate_new_game(num_rules=(4, 8), uniq_classrules=False, positive_only=False,
145
+ num_words=(5, 10), word_length=(3, 15), word_dic_only=True)
146
+ elif level_id == "4":
147
+ game.generate_new_game(num_rules=(8, 12), uniq_classrules=False, positive_only=False,
148
+ num_words=(10, 20), word_length=(6, 15), word_dic_only=False)
149
+ else:
150
+ game.generate_new_game(preset_config=1)
151
+
152
+ elif game_name == Islands.get_game_name():
153
+ game = Islands()
154
+ if level_id == "1":
155
+ game.generate_new_game(num_islands=1, island_with_coconut=0)
156
+ elif level_id == "2":
157
+ game.generate_new_game(num_islands=random.randint(1, 3))
158
+ elif level_id == "3":
159
+ game.generate_new_game(num_islands=random.randint(3, 6))
160
+ else:
161
+ raise not_available_game_level
162
+ assert game.is_game_reloadable(), \
163
+ "Game loader fails to load the correct game state"
164
+
165
+ elif game_name == StringSearch.get_game_name():
166
+ game = StringSearch()
167
+ game.generate_new_game(difficulty=int(level_id))
168
+ if os.getenv("TEXTGAMES_NEWGAME_VERBOSE", False):
169
+ print(f"possible answer: {game.answer}")
170
+ assert game.is_game_reloadable(), \
171
+ "Game loader fails to load the correct game state"
172
+
173
+ elif game_name == CrosswordArrangerGame.get_game_name():
174
+ game = CrosswordArrangerGame()
175
+ if level_id == "0":
176
+ game.generate_new_game(preset_config=1)
177
+ elif level_id == "1":
178
+ game.generate_new_game(board_size=3, noise_ratio=.25, no_ans_prob=.0, no_duplicate=True,)
179
+ elif level_id == "2":
180
+ game.generate_new_game(board_size=4, noise_ratio=.5, no_ans_prob=.0, no_duplicate=True,)
181
+ elif level_id == "3":
182
+ game.generate_new_game(board_size=5, noise_ratio=.5, no_ans_prob=.0, no_duplicate=True,)
183
+ elif level_id == "4":
184
+ game.generate_new_game(board_size=6, noise_ratio=.5, no_ans_prob=.0, no_duplicate=True,)
185
+ else:
186
+ raise not_available_game_level
187
+ if os.getenv("TEXTGAMES_NEWGAME_VERBOSE", False):
188
+ print(f"Possible Answer: {game.possible_ans}")
189
+
190
+ elif game_name == AnagramScribble.get_game_name():
191
+ game = AnagramScribble()
192
+ if level_id == "1":
193
+ game.generate_new_game(low_num_chars=3, high_num_chars=5, allow_repeat=True)
194
+ elif level_id == "2":
195
+ game.generate_new_game(low_num_chars=6, high_num_chars=7, allow_repeat=True)
196
+ elif level_id == "3":
197
+ game.generate_new_game(low_num_chars=8, high_num_chars=10, allow_repeat=False)
198
+ else:
199
+ raise not_available_game_level
200
+ if os.getenv("TEXTGAMES_NEWGAME_VERBOSE", False):
201
+ print(f"Possible Answer: {game.possible_ans}")
202
+
203
+ else:
204
+ raise not_available_game_level
205
+
206
+ if game.is_game_reloadable():
207
+ if os.getenv("TEXTGAMES_NEWGAME_VERBOSE", False):
208
+ print("reloading the game ..")
209
+ game = _reload(game.get_prompt(), game.__class__) # Let's use the reloaded state
210
+ else:
211
+ _out_str_ =(
212
+ "!! game is NOT reloaded.. !!\n"
213
+ + f"[{game_name}_{level_id}]\n"
214
+ + game.get_prompt()
215
+ )
216
+ outpath = os.getenv("TEXTGAMES_NEWGAME_ERRFILE", "")
217
+ if outpath:
218
+ with open(outpath, "a") as f:
219
+ f.write(_out_str_)
220
+ else:
221
+ print(_out_str_)
222
+
223
+ return game
224
+
textgames/anagram_scribble/__init__.py ADDED
File without changes
textgames/anagram_scribble/anagram_scribble.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import random
2
+ from pathlib import Path
3
+ from textgames.base_game import BaseGame
4
+ import json
5
+ import string
6
+ import re
7
+
8
+ class AnagramScribble(BaseGame):
9
+ @staticmethod
10
+ def get_game_name() -> str:
11
+ return "πŸ”€\tAnagram Scribble"
12
+
13
+ def __init__(self):
14
+ super().__init__()
15
+ self.WORD_LIST_BIN = {}
16
+ with open(str(Path(__file__).absolute()).replace("anagram_scribble/anagram_scribble.py","") + "assets/kb/words_by_length.json") as f:
17
+ self.WORD_LIST_BIN = json.load(f)
18
+ self.low_num_chars = None
19
+ self.high_num_chars = None
20
+ self.num_chars = None
21
+ self.allow_repeat = True
22
+ self.all_chars = list(string.ascii_lowercase)
23
+ self.total_chars_num = 10
24
+ self.total_chars = []
25
+ self.possible_ans = ""
26
+ self.exclude_states = ["low_num_chars", "high_num_chars", "possible_ans"]
27
+
28
+ def _load_game(self, state_string) -> None:
29
+ num_chars_pattern = re.compile(r'Construct a valid (\d+)-character English word')
30
+ repeat_pattern = r'Each character can be used multiple times\.'
31
+ letters_pattern = re.compile(r'from the following letters:\n\[(.*)\]')
32
+ def extract_variable(pattern, input_string):
33
+ match = pattern.search(input_string)
34
+ if match:
35
+ return match.group(1)
36
+ else:
37
+ return "Error loading game state."
38
+
39
+ self.num_chars = int(extract_variable(num_chars_pattern, state_string))
40
+ self.allow_repeat = bool(re.search(repeat_pattern, state_string))
41
+ self.total_chars = []
42
+ total_chars_extraction = extract_variable(letters_pattern, state_string)
43
+ if total_chars_extraction != "Error loading game state.":
44
+ characters = total_chars_extraction.split(",")
45
+ self.total_chars = [char.strip().strip("'") for char in characters]
46
+
47
+ def _generate_new_game(self, *args, **kwargs) -> None:
48
+ self.low_num_chars = kwargs['low_num_chars']
49
+ self.high_num_chars = kwargs['high_num_chars']
50
+ self.num_chars = random.randint(self.low_num_chars, self.high_num_chars)
51
+ self.allow_repeat = kwargs['allow_repeat']
52
+ self.possible_ans = random.choice(self.WORD_LIST_BIN[str(self.num_chars)])
53
+ remaining_chars_num = self.total_chars_num - self.num_chars
54
+ available_characters = [char for char in self.all_chars if char not in self.possible_ans]
55
+ self.total_chars = list(self.possible_ans) + random.sample(available_characters, remaining_chars_num)
56
+ random.shuffle(self.total_chars)
57
+
58
+ def _get_prompt(self) -> str:
59
+ if self.allow_repeat:
60
+ prompt = f"Construct a valid {self.num_chars}-character English word from the following letters:\n{self.total_chars}.\nEach character can be used multiple times. Please write None if there is no valid combination."
61
+ else:
62
+ prompt = f"Construct a valid {self.num_chars}-character English word from the following letters:\n{self.total_chars}.\nEach character can only be used once. Please write None if there is no valid combination."
63
+ return prompt
64
+
65
+ def _validate(self, answer: str) -> (bool, str):
66
+ answer = answer.lower()
67
+ if self.possible_ans != "" and answer == "none":
68
+ val_msg = "There is a valid answer."
69
+ return False, val_msg
70
+ if len(answer) != self.num_chars:
71
+ val_msg = f"Your answer must be exactly {self.num_chars} characters long"
72
+ return False, val_msg
73
+ for char in answer:
74
+ if char not in self.total_chars:
75
+ val_msg = "Your answer must only contain the characters provided"
76
+ return False, val_msg
77
+ if (not self.allow_repeat and (len(set(answer)) != len(answer))
78
+ and (len(self.possible_ans) == len(set(self.possible_ans)))):
79
+ val_msg = "Your answer must not contain repeated characters"
80
+ return False, val_msg
81
+ if answer not in self.WORD_LIST_BIN[str(self.num_chars)]:
82
+ val_msg = "Your answer is not a valid English word"
83
+ return False, val_msg
84
+
85
+ return True, ""
textgames/assets/kb/country_capital_city.tsv ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ country capital city continent
2
+ Abkhazia Sukhumi
3
+ Afghanistan Kabul Asia
4
+ Γ…land Islands Mariehamn Europe
5
+ Albania Tirana Europe
6
+ Algeria Algiers Africa
7
+ America Samoa Pago Pago Oceania
8
+ Andorra Andorra la Vella Europe
9
+ Angola Luanda Africa
10
+ Anguilla The Valley
11
+ Antigua and Barbuda Saint John's North America
12
+ Argentina Buenos Aires South America
13
+ Armenia Yerevan Asia
14
+ Aruba Oranjestad South America
15
+ Ascension Island Georgetown
16
+ Australia Canberra Oceania
17
+ Austria Vienna Europe
18
+ Azerbaijan Baku Asia
19
+ Bahamas Nassau North America
20
+ Bahrain Manama Asia
21
+ Bangladesh Dhaka Asia
22
+ Barbados Bridgetown North America
23
+ Belarus Minsk Europe
24
+ Belgium Brussels Europe
25
+ Belize Belmopan North America
26
+ Benin Porto Novo Africa
27
+ Bermuda Hamilton North America
28
+ Bhutan Thimphu Asia
29
+ Bolivia La Paz South America
30
+ Bosnia and Herzegovina Sarajevo Europe
31
+ Botswana Gaborone Africa
32
+ Brazil Brasilia South America
33
+ British Antarctic Territory Rothera
34
+ British Indian Ocean Territory Diego Garcia Asia
35
+ British Virgin Islands Road Town
36
+ Brunei Bandar Seri Begawan Asia
37
+ Bulgaria Sofia Europe
38
+ Burkina Faso Ouagadougou Africa
39
+ Burundi Bujumbura Africa
40
+ Cambodia Phnom Penh Asia
41
+ Cameroon YaoundΓ© Africa
42
+ Canada Ottawa North America
43
+ Cape Verde Praia Africa
44
+ Cayman Islands George Town North America
45
+ Central African Republic Bangui Africa
46
+ Chad N'Djamena Africa
47
+ Chile Santiago South America
48
+ China Beijing Asia
49
+ Christmas Island Flying Fish Cove Oceania
50
+ Cocos Islands West Island
51
+ Colombia Bogota South America
52
+ Comoros Moroni Africa
53
+ Congo Brazzaville Africa
54
+ Costa Rica San Jose North America
55
+ Croatia Zagreb Europe
56
+ Cuba Havana North America
57
+ Curaçao Willemstad
58
+ Cyprus Nicosia Asia
59
+ Czech Republic Prague Europe
60
+ Democratic Republic of the Congo Kinshasa Africa
61
+ Denmark Copenhagen Europe
62
+ Djibouti Djibouti Africa
63
+ Dominica Roseau North America
64
+ Dominican Republic Santo Domingo North America
65
+ East Timor Dili Asia
66
+ Ecuador Quito South America
67
+ Egypt Cairo Africa
68
+ El Salvador San Salvador North America
69
+ Equatorial Guinea Malabo Africa
70
+ Eritrea Asmara Africa
71
+ Estonia Tallinn Europe
72
+ Eswatini Mbabane Africa
73
+ Ethiopia Addis Ababa Africa
74
+ Falkland Islands Stanley South America
75
+ Faroe Islands TΓ³rshavn Europe
76
+ Fiji Suva Oceania
77
+ Finland Helsinki Europe
78
+ France Paris Europe
79
+ French Polynesia Papeete
80
+ Gabon Libreville Africa
81
+ Gambia Banjul Africa
82
+ Georgia Tbilisi
83
+ Germany Berlin Europe
84
+ Ghana Accra Africa
85
+ Gibraltar Gibraltar Europe
86
+ Greece Athens Europe
87
+ Greenland Nuuk North America
88
+ Grenada Saint George's North America
89
+ Guam HagΓ₯tΓ±a Oceania
90
+ Guatemala Guatemala City North America
91
+ Guernsey Saint Peter Port
92
+ Guinea Conakry Africa
93
+ Guinea-Bissau Bissau Africa
94
+ Guyana Georgetown South America
95
+ Haiti Port au Prince North America
96
+ Honduras Tegucigalpa North America
97
+ Hungary Budapest Europe
98
+ Iceland Reykjavik Europe
99
+ India New Delhi Asia
100
+ Indonesia Jakarta Asia
101
+ Iran Tehran Asia
102
+ Iraq Baghdad Asia
103
+ Ireland Dublin Europe
104
+ Isle of Man Douglas Europe
105
+ Israel Jerusalem Asia
106
+ Italy Rome Europe
107
+ Ivory Coast Yamoussoukro Africa
108
+ Jamaica Kingston North America
109
+ Japan Tokyo Asia
110
+ Jersey Saint Helier
111
+ Jordan Amman Asia
112
+ Kazakhstan Astana Asia
113
+ Kenya Nairobi Africa
114
+ Kiribati Tarawa Atoll Oceania
115
+ Kosovo Pristina Europe
116
+ Kuwait Kuwait City Asia
117
+ Kyrgyzstan Bishkek Asia
118
+ Laos Vientiane Asia
119
+ Latvia Riga Europe
120
+ Lebanon Beirut Asia
121
+ Lesotho Maseru Africa
122
+ Liberia Monrovia Africa
123
+ Libya Tripoli Africa
124
+ Liechtenstein Vaduz Europe
125
+ Lithuania Vilnius Europe
126
+ Luxembourg Luxembourg Europe
127
+ Madagascar Antananarivo Africa
128
+ Malawi Lilongwe Africa
129
+ Malaysia Kuala Lumpur Asia
130
+ Maldives MalΓ© Asia
131
+ Mali Bamako Africa
132
+ Malta Valletta Europe
133
+ Marshall Islands Majuro Oceania
134
+ Mauritania Nouakchott Africa
135
+ Mauritius Port Louis Africa
136
+ Mexico Mexico City North America
137
+ Micronesia Palikir Oceania
138
+ Moldova Chisinau Europe
139
+ Monaco Monaco Europe
140
+ Mongolia Ulaanbaatar Asia
141
+ Montenegro Podgorica Europe
142
+ Montserrat Plymouth North America
143
+ Morocco Rabat Africa
144
+ Mozambique Maputo Africa
145
+ Myanmar Naypyidaw Asia
146
+ Namibia Windhoek Africa
147
+ Nauru Yaren Oceania
148
+ Nepal Kathmandu Asia
149
+ Netherlands Amsterdam Europe
150
+ New Zealand Wellington Oceania
151
+ Nicaragua Managua North America
152
+ Niger Niamey Africa
153
+ Nigeria Abuja Africa
154
+ Niue Alofi Oceania
155
+ Norfolk Island Kingston Oceania
156
+ North Korea Pyongyang Asia
157
+ North Macedonia Skopje Europe
158
+ Northern Cyprus Nicosia Asia
159
+ Northern Mariana Islands Saipan
160
+ Norway Oslo Europe
161
+ Oman Muscat Asia
162
+ Pakistan Islamabad Asia
163
+ Palau Ngerulmud Oceania
164
+ Palestine Ramallah Asia
165
+ Panama Panama City North America
166
+ Papua New Guinea Port Moresby Oceania
167
+ Paraguay AsunciΓ³n South America
168
+ Peru Lima South America
169
+ Philippines Manila Asia
170
+ Pitcairn Islands Adamstown
171
+ Poland Warsaw Europe
172
+ Portugal Lisbon Europe
173
+ Puerto Rico San Juan North America
174
+ Qatar Doha Asia
175
+ Romania Bucharest Europe
176
+ Russia Moscow Europe
177
+ Rwanda Kigali Africa
178
+ Saint BarthΓ©lemy Gustavia
179
+ Saint Helena Jamestown
180
+ Saint Kitts and Nevis Basseterre North America
181
+ Saint Lucia Castries North America
182
+ Saint Martin Marigot
183
+ Saint Pierre and Miquelon Saint Pierre
184
+ Saint Vincent and the Grenadines Kingstown North America
185
+ Samoa Apia Oceania
186
+ San Marino San Marino Europe
187
+ Sao Tome and Principe Sao Tome Africa
188
+ Saudi Arabia Riyadh Asia
189
+ Senegal Dakar Africa
190
+ Serbia Belgrade Europe
191
+ Seychelles Victoria Africa
192
+ Sierra Leone Freetown Africa
193
+ Singapore Singapore Asia
194
+ Sint Maarten Philipsburg
195
+ Slovakia Bratislava Europe
196
+ Slovenia Ljubljana Europe
197
+ Solomon Islands Honiara Oceania
198
+ Somalia Mogadishu Africa
199
+ South Africa Pretoria Africa
200
+ South Georgia and the South Sandwich Islands King Edward Point
201
+ South Korea Seoul Asia
202
+ South Ossetia Tskhinvali
203
+ South Sudan Juba Africa
204
+ Spain Madrid Europe
205
+ Sri Lanka Sri Jayawardenapura Kotte Asia
206
+ Sudan Khartoum Africa
207
+ Suriname Paramaribo South America
208
+ Sweden Stockholm Europe
209
+ Switzerland Bern Europe
210
+ Syria Damascus Asia
211
+ Taiwan Taipei Asia
212
+ Tajikistan Dushanbe Asia
213
+ Tanzania Dodoma Africa
214
+ Thailand Bangkok Asia
215
+ Togo Lome Africa
216
+ Tonga Nuku'alofa Oceania
217
+ Transnistria Tiraspol Europe
218
+ Trinidad and Tobago Port of Spain South America
219
+ Tristan da Cunha Edinburgh of the Seven Seas
220
+ Tunisia Tunis Africa
221
+ Turkey Ankara Asia
222
+ Turkmenistan Ashgabat Asia
223
+ Turks and Caicos Islands Cockburn Town North America
224
+ Tuvalu Funafuti Oceania
225
+ Uganda Kampala Africa
226
+ Ukraine Kyiv Europe
227
+ United Arab Emirates Abu Dhabi Asia
228
+ United Kingdom London Europe
229
+ United States Washington North America
230
+ United States Virgin Islands Charlotte Amalie North America
231
+ Uruguay Montevideo South America
232
+ Uzbekistan Tashkent Asia
233
+ Vanuatu Port Vila Oceania
234
+ Vatican City Vatican City Europe
235
+ Venezuela Caracas South America
236
+ Vietnam Hanoi Asia
237
+ Yemen Sana'a Africa
238
+ Zambia Lusaka Africa
239
+ Zimbabwe Harare Africa
textgames/assets/kb/word_list.txt ADDED
The diff for this file is too large to render. See raw diff
 
textgames/assets/kb/words_by_length.json ADDED
The diff for this file is too large to render. See raw diff
 
textgames/assets/word_list.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from pathlib import Path
3
+
4
+ _FP_WORDS_ = {
5
+ "dwyl": Path(__file__).parent / "kb" / "word_list.txt",
6
+ "oxford5k_opal": Path(__file__).parent / "word_list" / "word_list.oxford5k_opal.lower.txt",
7
+ "nltk_words": Path(__file__).parent / "word_list" / "word_list.nltk_words.lower.txt",
8
+ }
9
+ WORDS_LISTS = {}
10
+
11
+
12
+ def get_word_list(corpus=None):
13
+ corpus = corpus or {"dwyl"}
14
+ word_list = set()
15
+ for c in corpus:
16
+ with open(_FP_WORDS_[c], 'r') as f:
17
+ for line in f:
18
+ word_list.add(line.strip().lower())
19
+ return sorted(word_list)
20
+
21
+
22
+ def get_word_list_by_length(corpus=None, min_length=0, max_length=20):
23
+ corpus = corpus or {"dwyl"}
24
+ word_list = get_word_list(corpus=corpus)
25
+ word_list_by_length = {}
26
+ for word in filter(lambda w: (min_length <= len(w) <= max_length), word_list):
27
+ word_list_by_length.setdefault(len(word), []).append(word)
28
+ return word_list_by_length
29
+
30
+
31
+ WORDS_LIST = get_word_list({"oxford5k_opal"})
32
+ WORDS_BY_LEN = get_word_list_by_length({"oxford5k_opal"})
33
+
34
+
35
+ class Node:
36
+ def __init__(self, word=None, depth=0, parent=None, capacity=np.inf):
37
+ self.word = word
38
+ self.depth = depth
39
+ self.parent = parent
40
+ self.capacity = capacity
41
+ self.children = {}
42
+
43
+
44
+ class PrefixTrie:
45
+ def __init__(self, word_set=None):
46
+ self.root = Node()
47
+ if word_set is not None:
48
+ for word in word_set:
49
+ self.insert(word)
50
+
51
+ def insert(self, word):
52
+ node = self.root
53
+ for depth, letter in enumerate(word, 1):
54
+ node = node.children.setdefault(letter, Node(depth=depth, parent=node, capacity=0))
55
+ node.capacity += 1
56
+ node.word = word # the full word is saved only in the leaves
57
+
textgames/assets/word_list/nltk_data.words.en.txt ADDED
The diff for this file is too large to render. See raw diff
 
textgames/assets/word_list/oxford3k.txt ADDED
@@ -0,0 +1,3307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ a indefinite article
2
+ an indefinite article
3
+ about prep., adv.
4
+ above prep., adv.
5
+ across prep., adv.
6
+ action n.
7
+ activity n.
8
+ actor n.
9
+ actress n.
10
+ add v.
11
+ address n.
12
+ adult n.
13
+ advice n.
14
+ afraid adj.
15
+ after prep.
16
+ afternoon n.
17
+ again adv.
18
+ age n.
19
+ ago adv.
20
+ agree v.
21
+ air n.
22
+ airport n.
23
+ all det., pron.
24
+ also adv.
25
+ always adv.
26
+ amazing adj.
27
+ and conj.
28
+ angry adj.
29
+ animal n.
30
+ another det./pron.
31
+ answer n., v.
32
+ any det., pron.
33
+ anyone pron.
34
+ anything pron.
35
+ apartment n.
36
+ apple n.
37
+ April n.
38
+ area n.
39
+ arm n.
40
+ around prep., adv.
41
+ arrive v.
42
+ art n.
43
+ article n.
44
+ artist n.
45
+ as prep.
46
+ ask v.
47
+ at prep.
48
+ August n.
49
+ aunt n.
50
+ autumn n.
51
+ away adv.
52
+ baby n.
53
+ back n., adv.
54
+ bad adj.
55
+ bag n.
56
+ ball n.
57
+ banana n.
58
+ band n.
59
+ bank n.
60
+ bath n.
61
+ bathroom n.
62
+ be v., auxiliary v.
63
+ beach n.
64
+ beautiful adj.
65
+ because conj.
66
+ become v.
67
+ bed n.
68
+ bedroom n.
69
+ beer n.
70
+ before prep.
71
+ begin v.
72
+ beginning n.
73
+ behind prep., adv.
74
+ believe v.
75
+ below adv., prep.
76
+ best adj.
77
+ better adj.
78
+ between prep.
79
+ bicycle n.
80
+ big adj.
81
+ bike n.
82
+ bill n.
83
+ bird n.
84
+ birthday n.
85
+ black adj., n.
86
+ blog n.
87
+ blonde adj.
88
+ blue adj., n.
89
+ boat n.
90
+ body n.
91
+ book n.
92
+ boot n.
93
+ bored adj.
94
+ boring adj.
95
+ born v.
96
+ both det./pron.
97
+ bottle n.
98
+ box n.
99
+ boy n.
100
+ boyfriend n.
101
+ bread n.
102
+ break v., n.
103
+ breakfast n.
104
+ bring v.
105
+ brother n.
106
+ brown adj., n.
107
+ build v.
108
+ building n.
109
+ bus n.
110
+ business n.
111
+ busy adj.
112
+ but conj.
113
+ butter n.
114
+ buy v.
115
+ by prep.
116
+ bye exclam.
117
+ cafe n.
118
+ cake n.
119
+ call v., n.
120
+ camera n.
121
+ can modal v.
122
+ cannot modal v.
123
+ capital n., adj.
124
+ car n.
125
+ card n.
126
+ career n.
127
+ carrot n.
128
+ carry v.
129
+ cat n.
130
+ CD n.
131
+ cent n.
132
+ centre n.
133
+ century n.
134
+ chair n.
135
+ change v., n.
136
+ chart n.
137
+ cheap adj.
138
+ check v.
139
+ cheese n.
140
+ chicken n.
141
+ child n.
142
+ chocolate n.
143
+ choose v.
144
+ cinema n.
145
+ city n.
146
+ class n.
147
+ classroom n.
148
+ clean adj., v.
149
+ climb v.
150
+ clock n.
151
+ close v.
152
+ clothes n.
153
+ club n.
154
+ coat n.
155
+ coffee n.
156
+ cold adj., n.
157
+ college n.
158
+ colour n.
159
+ come v.
160
+ common adj.
161
+ company n.
162
+ compare v.
163
+ complete adj., v.
164
+ computer n.
165
+ concert n.
166
+ conversation n.
167
+ cook v.
168
+ cooking n.
169
+ cool adj.
170
+ correct adj., v.
171
+ cost n., v.
172
+ could modal v.
173
+ country n.
174
+ course n.
175
+ cousin n.
176
+ cow n.
177
+ cream n.
178
+ create v.
179
+ culture n.
180
+ cup n.
181
+ customer n.
182
+ cut v.
183
+ dad n.
184
+ dance n., v.
185
+ dancer n.
186
+ dancing n.
187
+ dangerous adj.
188
+ dark adj.
189
+ date n.
190
+ daughter n.
191
+ day n.
192
+ dear adj.
193
+ December n.
194
+ decide v.
195
+ delicious adj.
196
+ describe v.
197
+ description n.
198
+ design n., v.
199
+ desk n.
200
+ detail n.
201
+ dialogue n.
202
+ dictionary n.
203
+ die v.
204
+ diet n.
205
+ difference n.
206
+ different adj.
207
+ difficult adj.
208
+ dinner n.
209
+ dirty adj.
210
+ discuss v.
211
+ dish n.
212
+ do v., auxiliary v.
213
+ doctor n.
214
+ dog n.
215
+ dollar n.
216
+ door n.
217
+ down adv., prep.
218
+ downstairs adv.
219
+ draw v.
220
+ dress n., v.
221
+ drink n., v.
222
+ drive v.
223
+ driver n.
224
+ during prep.
225
+ DVD n.
226
+ each det./pron./adv.
227
+ ear n.
228
+ early adj., adv.
229
+ east n., adj., adv.
230
+ easy adj.
231
+ eat v.
232
+ egg n.
233
+ eight number
234
+ eighteen number
235
+ eighty number
236
+ elephant n.
237
+ eleven number
238
+ else adv.
239
+ email n., v.
240
+ end n., v.
241
+ enjoy v.
242
+ enough det., pron., adv.
243
+ euro n.
244
+ even adv.
245
+ evening n.
246
+ event n.
247
+ ever adv.
248
+ every det.
249
+ everybody pron.
250
+ everyone pron.
251
+ everything pron.
252
+ exam n.
253
+ example n.
254
+ excited adj.
255
+ exciting adj.
256
+ exercise n., v.
257
+ expensive adj.
258
+ explain v.
259
+ extra adj.
260
+ eye n.
261
+ face n.
262
+ fact n.
263
+ fall v.
264
+ false adj.
265
+ family n., adj.
266
+ famous adj.
267
+ fantastic adj.
268
+ far adv.
269
+ farm n.
270
+ farmer n.
271
+ fast adj., adv.
272
+ fat adj.
273
+ father n.
274
+ favourite adj., n.
275
+ February n.
276
+ feel v.
277
+ feeling n.
278
+ festival n.
279
+ few det./adj., pron.
280
+ fifteen number
281
+ fifth number
282
+ fifty number
283
+ fill v.
284
+ film n.
285
+ final adj.
286
+ find v.
287
+ fine adj.
288
+ finish v.
289
+ fire n.
290
+ first det./number, adv.
291
+ fish n.
292
+ five number
293
+ flat n.
294
+ flight n.
295
+ floor n.
296
+ flower n.
297
+ fly v.
298
+ follow v.
299
+ food n.
300
+ foot n.
301
+ football n.
302
+ for prep.
303
+ forget v.
304
+ form n., v.
305
+ forty number
306
+ four number
307
+ fourteen number
308
+ fourth number
309
+ free adj.
310
+ Friday n.
311
+ friend n.
312
+ friendly adj.
313
+ from prep.
314
+ front n., adj.
315
+ fruit n.
316
+ full adj.
317
+ fun n.
318
+ funny adj.
319
+ future n.
320
+ game n.
321
+ garden n.
322
+ geography n.
323
+ get v.
324
+ girl n.
325
+ girlfriend n.
326
+ give v.
327
+ glass n.
328
+ go v.
329
+ good adj.
330
+ goodbye exclam./n.
331
+ grandfather n.
332
+ grandmother n.
333
+ grandparent n.
334
+ great adj.
335
+ green adj., n.
336
+ grey adj., n.
337
+ group n.
338
+ grow v.
339
+ guess v., n.
340
+ guitar n.
341
+ gym n.
342
+ hair n.
343
+ half n., det./pron.
344
+ hand n.
345
+ happen v.
346
+ happy adj.
347
+ hard adj., adv.
348
+ hat n.
349
+ hate v.
350
+ have v.
351
+ have to modal v.
352
+ he pron.
353
+ head n.
354
+ health n.
355
+ healthy adj.
356
+ hear v.
357
+ hello exclam./n.
358
+ help v., n.
359
+ her pron., det.
360
+ here adv.
361
+ hey exclam.
362
+ hi exclam.
363
+ high adj.
364
+ him pron.
365
+ his det.
366
+ history n.
367
+ hobby n.
368
+ holiday n.
369
+ home n., adv.
370
+ homework n.
371
+ hope v.
372
+ horse n.
373
+ hospital n.
374
+ hot adj.
375
+ hotel n.
376
+ hour n.
377
+ house n.
378
+ how adv.
379
+ however adv.
380
+ hundred number
381
+ hungry adj.
382
+ husband n.
383
+ I pron.
384
+ ice n.
385
+ ice cream n.
386
+ idea n.
387
+ if conj.
388
+ imagine v.
389
+ important adj.
390
+ improve v.
391
+ in prep., adv.
392
+ include v.
393
+ information n.
394
+ interest n., v.
395
+ interested adj.
396
+ interesting adj.
397
+ internet n.
398
+ interview n., v.
399
+ into prep.
400
+ introduce v.
401
+ island n.
402
+ it pron.
403
+ its det.
404
+ jacket n.
405
+ January n.
406
+ jeans n.
407
+ job n.
408
+ join v.
409
+ journey n.
410
+ juice n.
411
+ July n.
412
+ June n.
413
+ just adv.
414
+ keep v.
415
+ key n., adj.
416
+ kilometre n.
417
+ kind n.
418
+ kitchen n.
419
+ know v.
420
+ land n.
421
+ language n.
422
+ large adj.
423
+ last det.
424
+ late adj., adv.
425
+ later adv.
426
+ laugh v., n.
427
+ learn v.
428
+ leave v.
429
+ left adj., adv., n.
430
+ leg n.
431
+ lesson n.
432
+ let v.
433
+ letter n.
434
+ library n.
435
+ lie v.
436
+ life n.
437
+ light n., adj.
438
+ like prep.
439
+ like v.
440
+ line n.
441
+ lion n.
442
+ list n., v.
443
+ listen v.
444
+ little adj., det./pron.
445
+ live v.
446
+ local adj.
447
+ long adj., adv.
448
+ look v.
449
+ lose v.
450
+ lot pron., det., adv.
451
+ love n., v.
452
+ lunch n.
453
+ machine n.
454
+ magazine n.
455
+ main adj.
456
+ make v.
457
+ man n.
458
+ many det./pron.
459
+ map n.
460
+ March n.
461
+ market n.
462
+ married adj.
463
+ match n., v.
464
+ May n.
465
+ maybe adv.
466
+ me pron.
467
+ meal n.
468
+ mean v.
469
+ meaning n.
470
+ meat n.
471
+ meet v.
472
+ meeting n.
473
+ member n.
474
+ menu n.
475
+ message n.
476
+ metre n.
477
+ midnight n.
478
+ mile n.
479
+ milk n.
480
+ million number
481
+ minute n.
482
+ miss v.
483
+ mistake n.
484
+ model n.
485
+ modern adj.
486
+ moment n.
487
+ Monday n.
488
+ money n.
489
+ month n.
490
+ more det./pron., adv.
491
+ morning n.
492
+ most det./pron., adv.
493
+ mother n.
494
+ mountain n.
495
+ mouse n.
496
+ mouth n.
497
+ move v.
498
+ movie n.
499
+ much det./pron., adv.
500
+ mum n.
501
+ museum n.
502
+ music n.
503
+ must modal v.
504
+ my det.
505
+ name n., v.
506
+ natural adj.
507
+ near prep., adj., adv.
508
+ need v.
509
+ negative adj.
510
+ neighbour n.
511
+ never adv.
512
+ new adj.
513
+ news n.
514
+ newspaper n.
515
+ next adj., adv.
516
+ next to prep.
517
+ nice adj.
518
+ night n.
519
+ nine number
520
+ nineteen number
521
+ ninety number
522
+ no exclam., det.
523
+ no one pron.
524
+ nobody pron.
525
+ north n., adj., adv.
526
+ nose n.
527
+ not adv.
528
+ note n.
529
+ nothing pron.
530
+ November n.
531
+ now adv.
532
+ number n.
533
+ nurse n.
534
+ object n.
535
+ o’clock adv.
536
+ October n.
537
+ of prep.
538
+ off adv., prep.
539
+ office n.
540
+ often adv.
541
+ oh exclam.
542
+ OK exclam., adj./adv.
543
+ old adj.
544
+ on prep., adv.
545
+ once adv.
546
+ one number/det., pron.
547
+ onion n.
548
+ online adj., adv.
549
+ only adj., adv.
550
+ open adj., v.
551
+ opinion n.
552
+ opposite adj., n., prep., adv.
553
+ or conj.
554
+ orange n., adj.
555
+ order n., v.
556
+ other adj./pron.
557
+ our det.
558
+ out adv./prep.
559
+ outside adv.
560
+ over prep., adv.
561
+ own adj./pron.
562
+ page n.
563
+ paint v., n.
564
+ painting n.
565
+ pair n.
566
+ paper n.
567
+ paragraph n.
568
+ parent n.
569
+ park n., v.
570
+ part n.
571
+ partner n.
572
+ party n.
573
+ passport n.
574
+ past adj., n., prep.
575
+ pay v.
576
+ pen n.
577
+ pencil n.
578
+ people n.
579
+ pepper n.
580
+ perfect adj.
581
+ period n.
582
+ person n.
583
+ personal adj.
584
+ phone n., v.
585
+ photo n.
586
+ photograph n.
587
+ phrase n.
588
+ piano n.
589
+ picture n.
590
+ piece n.
591
+ pig n.
592
+ pink adj., n.
593
+ place n.
594
+ plan n., v.
595
+ plane n.
596
+ plant n.
597
+ play v., n.
598
+ player n.
599
+ please exclam.
600
+ point n.
601
+ police n.
602
+ policeman n.
603
+ pool n.
604
+ poor adj.
605
+ popular adj.
606
+ positive adj.
607
+ possible adj.
608
+ post n., v.
609
+ potato n.
610
+ pound n.
611
+ practice n.
612
+ practise v.
613
+ prefer v.
614
+ prepare v.
615
+ present adj., n.
616
+ pretty adj., adv.
617
+ price n.
618
+ probably adv.
619
+ problem n.
620
+ product n.
621
+ programme n.
622
+ project n.
623
+ purple adj., n.
624
+ put v.
625
+ quarter n.
626
+ question n.
627
+ quick adj.
628
+ quickly adv.
629
+ quiet adj.
630
+ quite adv.
631
+ radio n.
632
+ rain n., v.
633
+ read v.
634
+ reader n.
635
+ reading n.
636
+ ready adj.
637
+ real adj.
638
+ really adv.
639
+ reason n.
640
+ red adj., n.
641
+ relax v.
642
+ remember v.
643
+ repeat v.
644
+ report n.
645
+ restaurant n.
646
+ result n.
647
+ return v., n.
648
+ rice n.
649
+ rich adj.
650
+ ride v.
651
+ right adj., adv., n.
652
+ river n.
653
+ road n.
654
+ room n.
655
+ routine n.
656
+ rule n.
657
+ run v.
658
+ sad adj.
659
+ salad n.
660
+ salt n.
661
+ same adj., pron., adv.
662
+ sandwich n.
663
+ Saturday n.
664
+ say v.
665
+ school n.
666
+ science n.
667
+ scientist n.
668
+ sea n.
669
+ second det./number
670
+ second n.
671
+ section n.
672
+ see v.
673
+ sell v.
674
+ send v.
675
+ sentence n.
676
+ September n.
677
+ seven number
678
+ seventeen number
679
+ seventy number
680
+ share v.
681
+ she pron.
682
+ sheep n.
683
+ shirt n.
684
+ shoe n.
685
+ shop n., v.
686
+ shopping n.
687
+ short adj.
688
+ should modal v.
689
+ show v., n.
690
+ shower n.
691
+ sick adj.
692
+ similar adj.
693
+ sing v.
694
+ singer n.
695
+ sister n.
696
+ sit v.
697
+ situation n.
698
+ six number
699
+ sixteen number
700
+ sixty number
701
+ skill n.
702
+ skirt n.
703
+ sleep v.
704
+ slow adj.
705
+ small adj.
706
+ snake n.
707
+ snow n., v.
708
+ so adv., conj.
709
+ some det., pron.
710
+ somebody pron.
711
+ someone pron.
712
+ something pron.
713
+ sometimes adv.
714
+ son n.
715
+ song n.
716
+ soon adv.
717
+ sorry adj., exclam.
718
+ sound n., v.
719
+ soup n.
720
+ south n., adj., adv.
721
+ space n.
722
+ speak v.
723
+ special adj.
724
+ spell v.
725
+ spelling n.
726
+ spend v.
727
+ sport n.
728
+ spring n.
729
+ stand v.
730
+ star n.
731
+ start v.
732
+ statement n.
733
+ station n.
734
+ stay v.
735
+ still adv.
736
+ stop v., n.
737
+ story n.
738
+ street n.
739
+ strong adj.
740
+ student n.
741
+ study n., v.
742
+ style n.
743
+ subject n.
744
+ success n.
745
+ sugar n.
746
+ summer n.
747
+ sun n.
748
+ Sunday n.
749
+ supermarket n.
750
+ sure adj.
751
+ sweater n.
752
+ swim v.
753
+ swimming n.
754
+ table n.
755
+ take v.
756
+ talk v.
757
+ tall adj.
758
+ taxi n.
759
+ tea n.
760
+ teach v.
761
+ teacher n.
762
+ team n.
763
+ teenager n.
764
+ telephone n., v.
765
+ television n.
766
+ tell v.
767
+ ten number
768
+ tennis n.
769
+ terrible adj.
770
+ test n., v.
771
+ text n.
772
+ than conj.
773
+ thank v.
774
+ thanks exclam., n.
775
+ that det., pron., conj.
776
+ the definite article
777
+ theatre n.
778
+ their det.
779
+ them pron.
780
+ then adv.
781
+ there adv.
782
+ they pron.
783
+ thing n.
784
+ think v.
785
+ third number
786
+ thirsty adj.
787
+ thirteen number
788
+ thirty number
789
+ this det./pron.
790
+ thousand number
791
+ three number
792
+ through prep., adv.
793
+ Thursday n.
794
+ ticket n.
795
+ time n.
796
+ tired adj.
797
+ title n.
798
+ to prep., infinitive marker
799
+ today adv., n.
800
+ together adv.
801
+ toilet n.
802
+ tomato n.
803
+ tomorrow adv., n.
804
+ tonight adv., n.
805
+ too adv.
806
+ tooth n.
807
+ topic n.
808
+ tourist n.
809
+ town n.
810
+ traffic n.
811
+ train n.
812
+ travel v., n.
813
+ tree n.
814
+ trip n.
815
+ trousers n.
816
+ true adj.
817
+ try v.
818
+ T-shirt n.
819
+ Tuesday n.
820
+ turn v., n.
821
+ TV n.
822
+ twelve number
823
+ twenty number
824
+ twice adv.
825
+ two number
826
+ type n.
827
+ umbrella n.
828
+ uncle n.
829
+ under prep., adv.
830
+ understand v.
831
+ university n.
832
+ until conj./prep.
833
+ up adv., prep.
834
+ upstairs adv.
835
+ us pron.
836
+ use v.
837
+ useful adj.
838
+ usually adv.
839
+ vacation n.
840
+ vegetable n.
841
+ very adv.
842
+ video n.
843
+ village n.
844
+ visit v., n.
845
+ visitor n.
846
+ wait v.
847
+ waiter n.
848
+ wake v.
849
+ walk v., n.
850
+ wall n.
851
+ want v.
852
+ warm adj.
853
+ wash v.
854
+ watch v., n.
855
+ water n.
856
+ way n.
857
+ we pron.
858
+ wear v.
859
+ weather n.
860
+ website n.
861
+ Wednesday n.
862
+ week n.
863
+ weekend n.
864
+ welcome exclam., v., adj.
865
+ well adv., adj., exclam.
866
+ west n., adj., adv.
867
+ what pron./det.
868
+ when adv., pron., conj.
869
+ where adv., conj.
870
+ which pron./det.
871
+ white adj., n.
872
+ who pron.
873
+ why adv.
874
+ wife n.
875
+ will modal v.
876
+ win v.
877
+ window n.
878
+ wine n.
879
+ winter n.
880
+ with prep.
881
+ without prep.
882
+ woman n.
883
+ wonderful adj.
884
+ word n.
885
+ work v., n.
886
+ worker n.
887
+ world n.
888
+ would modal v.
889
+ write v.
890
+ writer n.
891
+ writing n.
892
+ wrong adj.
893
+ yeah exclam.
894
+ year n.
895
+ yellow adj., n.
896
+ yes exclam.
897
+ yesterday adv., n.
898
+ you pron.
899
+ young adj.
900
+ your det.
901
+ yourself pron.
902
+ ability n.
903
+ able adj.
904
+ abroad adv.
905
+ accept v.
906
+ accident n.
907
+ according to prep.
908
+ achieve v.
909
+ act v.
910
+ active adj.
911
+ actually adv.
912
+ adult adj.
913
+ advantage n.
914
+ adventure n.
915
+ advertise v.
916
+ advertisement n.
917
+ advertising n.
918
+ affect v.
919
+ after conj., adv.
920
+ against prep.
921
+ ah exclam.
922
+ airline n.
923
+ alive adj.
924
+ all adv.
925
+ all right adj./adv., exclam.
926
+ allow v.
927
+ almost adv.
928
+ alone adj./adv.
929
+ along prep., adv.
930
+ already adv.
931
+ alternative n.
932
+ although conj.
933
+ among prep.
934
+ amount n.
935
+ ancient adj.
936
+ ankle n.
937
+ any adv.
938
+ anybody pron.
939
+ any more adv.
940
+ anyway adv.
941
+ anywhere adv., pron.
942
+ app n.
943
+ appear v.
944
+ appearance n.
945
+ apply v.
946
+ architect n.
947
+ architecture n.
948
+ argue v.
949
+ argument n.
950
+ army n.
951
+ arrange v.
952
+ arrangement n.
953
+ as adv., conj.
954
+ asleep adj.
955
+ assistant n., adj.
956
+ athlete n.
957
+ attack n., v.
958
+ attend v.
959
+ attention n., exclam.
960
+ attractive adj.
961
+ audience n.
962
+ author n.
963
+ available adj.
964
+ average adj., n.
965
+ avoid v.
966
+ award n.
967
+ awful adj.
968
+ back adj.
969
+ background n.
970
+ badly adv.
971
+ bar n.
972
+ baseball n.
973
+ based adj.
974
+ basketball n.
975
+ bean n.
976
+ bear n.
977
+ beat v.
978
+ beef n.
979
+ before conj., adv.
980
+ behave v.
981
+ behaviour n.
982
+ belong v.
983
+ belt n.
984
+ benefit n.
985
+ best adv., n.
986
+ better adv.
987
+ between adv.
988
+ billion number
989
+ bin n.
990
+ biology n.
991
+ birth n.
992
+ biscuit n.
993
+ bit n.
994
+ blank adj., n.
995
+ blood n.
996
+ blow v.
997
+ board n.
998
+ boil v.
999
+ bone n.
1000
+ book v.
1001
+ borrow v.
1002
+ boss n.
1003
+ bottom n., adj.
1004
+ bowl n.
1005
+ brain n.
1006
+ bridge n.
1007
+ bright adj.
1008
+ brilliant adj.
1009
+ broken adj.
1010
+ brush v., n.
1011
+ burn v.
1012
+ businessman n.
1013
+ button n.
1014
+ camp n., v.
1015
+ camping n.
1016
+ can n.
1017
+ care n., v.
1018
+ careful adj.
1019
+ carefully adv.
1020
+ carpet n.
1021
+ cartoon n.
1022
+ case n.
1023
+ cash n.
1024
+ castle n.
1025
+ catch v.
1026
+ cause n., v.
1027
+ celebrate v.
1028
+ celebrity n.
1029
+ certain adj.
1030
+ certainly adv.
1031
+ chance n.
1032
+ character n.
1033
+ charity n.
1034
+ chat v., n.
1035
+ check n.
1036
+ chef n.
1037
+ chemistry n.
1038
+ chip n.
1039
+ choice n.
1040
+ church n.
1041
+ cigarette n.
1042
+ circle n., v.
1043
+ classical adj.
1044
+ clear adj.
1045
+ clearly adv.
1046
+ clever adj.
1047
+ climate n.
1048
+ close adj.
1049
+ closed adj.
1050
+ clothing n.
1051
+ cloud n.
1052
+ coach n.
1053
+ coast n.
1054
+ code n.
1055
+ colleague n.
1056
+ collect v.
1057
+ column n.
1058
+ comedy n.
1059
+ comfortable adj.
1060
+ comment n.
1061
+ communicate v.
1062
+ community n.
1063
+ compete v.
1064
+ competition n.
1065
+ complain v.
1066
+ completely adv.
1067
+ condition n.
1068
+ conference n.
1069
+ connect v.
1070
+ connected adj.
1071
+ consider v.
1072
+ contain v.
1073
+ context n.
1074
+ continent n.
1075
+ continue v.
1076
+ control n., v.
1077
+ cook n.
1078
+ cooker n.
1079
+ copy n., v.
1080
+ corner n.
1081
+ correctly adv.
1082
+ count v.
1083
+ couple n.
1084
+ cover v.
1085
+ crazy adj.
1086
+ creative adj.
1087
+ credit n.
1088
+ crime n.
1089
+ criminal n.
1090
+ cross v., n.
1091
+ crowd n.
1092
+ crowded adj.
1093
+ cry v.
1094
+ cupboard n.
1095
+ curly adj.
1096
+ cycle n., v.
1097
+ daily adj.
1098
+ danger n.
1099
+ dark n.
1100
+ data n.
1101
+ dead adj.
1102
+ deal v.
1103
+ dear exclam.
1104
+ death n.
1105
+ decision n.
1106
+ deep adj.
1107
+ definitely adv.
1108
+ degree n.
1109
+ dentist n.
1110
+ department n.
1111
+ depend v.
1112
+ desert n.
1113
+ designer n.
1114
+ destroy v.
1115
+ detective n.
1116
+ develop v.
1117
+ device n.
1118
+ diary n.
1119
+ differently adv.
1120
+ digital adj.
1121
+ direct adj.
1122
+ direction n.
1123
+ director n.
1124
+ disagree v.
1125
+ disappear v.
1126
+ disaster n.
1127
+ discover v.
1128
+ discovery n.
1129
+ discussion n.
1130
+ disease n.
1131
+ distance n.
1132
+ divorced adj.
1133
+ document n.
1134
+ double adj., det., pron., v.
1135
+ download v., n.
1136
+ downstairs adj.
1137
+ drama n.
1138
+ drawing n.
1139
+ dream n., v.
1140
+ drive n.
1141
+ driving n.
1142
+ drop v.
1143
+ drug n.
1144
+ dry adj., v.
1145
+ earn v.
1146
+ earth n.
1147
+ easily adv.
1148
+ education n.
1149
+ effect n.
1150
+ either det./pron., adv.
1151
+ electric adj.
1152
+ electrical adj.
1153
+ electricity n.
1154
+ electronic adj.
1155
+ employ v.
1156
+ employee n.
1157
+ employer n.
1158
+ empty adj.
1159
+ ending n.
1160
+ energy n.
1161
+ engine n.
1162
+ engineer n.
1163
+ enormous adj.
1164
+ enter v.
1165
+ environment n.
1166
+ equipment n.
1167
+ error n.
1168
+ especially adv.
1169
+ essay n.
1170
+ everyday adj.
1171
+ everywhere adv.
1172
+ evidence n.
1173
+ exact adj.
1174
+ exactly adv.
1175
+ excellent adj.
1176
+ except prep.
1177
+ exist v.
1178
+ expect v.
1179
+ experience n.
1180
+ experiment n.
1181
+ expert n.,adj.
1182
+ explanation n.
1183
+ express v.
1184
+ expression n.
1185
+ extreme adj.
1186
+ extremely adv.
1187
+ factor n.
1188
+ factory n.
1189
+ fail v.
1190
+ fair adj.
1191
+ fall n.
1192
+ fan n.
1193
+ farm v.
1194
+ farming n.
1195
+ fashion n.
1196
+ fat n.
1197
+ fear n.
1198
+ feature n.
1199
+ feed v.
1200
+ female adj., n.
1201
+ fiction n.
1202
+ field n.
1203
+ fight v., n.
1204
+ figure n.
1205
+ film v.
1206
+ final n.
1207
+ finally adv.
1208
+ finger n.
1209
+ finish n.
1210
+ first n.
1211
+ firstly adv.
1212
+ fish v.
1213
+ fishing n.
1214
+ fit v., adj.
1215
+ fix v.
1216
+ flat adj.
1217
+ flu n.
1218
+ fly n.
1219
+ flying n., adj.
1220
+ focus v., n.
1221
+ following adj.
1222
+ foreign adj.
1223
+ forest n.
1224
+ fork n.
1225
+ formal adj.
1226
+ fortunately adv.
1227
+ forward adv.
1228
+ free adv.
1229
+ fresh adj.
1230
+ fridge n.
1231
+ frog n.
1232
+ fun adj.
1233
+ furniture n.
1234
+ further adj.
1235
+ future adj.
1236
+ gallery n.
1237
+ gap n.
1238
+ gas n.
1239
+ gate n.
1240
+ general adj.
1241
+ gift n.
1242
+ goal n.
1243
+ god n.
1244
+ gold n., adj.
1245
+ golf n.
1246
+ good n.
1247
+ government n.
1248
+ grass n.
1249
+ greet v.
1250
+ ground n.
1251
+ guest n.
1252
+ guide n., v.
1253
+ gun n.
1254
+ guy n.
1255
+ habit n.
1256
+ half adv.
1257
+ hall n.
1258
+ happily adv.
1259
+ have auxiliary v.
1260
+ headache n.
1261
+ heart n.
1262
+ heat n., v.
1263
+ heavy adj.
1264
+ height n.
1265
+ helpful adj.
1266
+ hero n.
1267
+ hers pron.
1268
+ herself pron.
1269
+ hide v.
1270
+ high adv.
1271
+ hill n.
1272
+ himself pron.
1273
+ his pron.
1274
+ hit v., n.
1275
+ hockey n.
1276
+ hold v.
1277
+ hole n.
1278
+ home adj.
1279
+ hope n.
1280
+ huge adj.
1281
+ human adj., n.
1282
+ hurt v., adj.
1283
+ ideal adj.
1284
+ identify v.
1285
+ ill adj.
1286
+ illness n.
1287
+ image n.
1288
+ immediately adv.
1289
+ impossible adj.
1290
+ included adj.
1291
+ including prep.
1292
+ increase v., n.
1293
+ incredible adj.
1294
+ independent adj.
1295
+ individual n., adj.
1296
+ industry n.
1297
+ informal adj.
1298
+ injury n.
1299
+ insect n.
1300
+ inside prep., adv., n., adj.
1301
+ instead adv.
1302
+ instruction n.
1303
+ instructor n.
1304
+ instrument n.
1305
+ intelligent adj.
1306
+ international adj.
1307
+ introduction n.
1308
+ invent v.
1309
+ invention n.
1310
+ invitation n.
1311
+ invite v.
1312
+ involve v.
1313
+ item n.
1314
+ itself pron.
1315
+ jam n.
1316
+ jazz n.
1317
+ jewellery n.
1318
+ joke n., v.
1319
+ journalist n.
1320
+ jump v., n.
1321
+ kid n.
1322
+ kill v.
1323
+ king n.
1324
+ knee n.
1325
+ knife n.
1326
+ knock v.
1327
+ knowledge n.
1328
+ lab n.
1329
+ lady n.
1330
+ lake n.
1331
+ lamp n.
1332
+ land v.
1333
+ laptop n.
1334
+ last adv., n., v.
1335
+ later adj.
1336
+ laughter n.
1337
+ law n.
1338
+ lawyer n.
1339
+ lazy adj.
1340
+ lead v.
1341
+ leader n.
1342
+ learning n.
1343
+ least det./pron., adv.
1344
+ lecture n., v.
1345
+ lemon n.
1346
+ lend v.
1347
+ less det./pron., adv.
1348
+ level n.
1349
+ lifestyle n.
1350
+ lift v., n.
1351
+ light v.
1352
+ light adj.
1353
+ likely adj.
1354
+ link n., v.
1355
+ listener n.
1356
+ little adv.
1357
+ lock v., n.
1358
+ look n.
1359
+ lorry n.
1360
+ lost adj.
1361
+ loud adj., adv.
1362
+ loudly adv.
1363
+ lovely adj.
1364
+ low adj., adv.
1365
+ luck n.
1366
+ lucky adj.
1367
+ mail n., v.
1368
+ major adj.
1369
+ male adj., n.
1370
+ manage v.
1371
+ manager n.
1372
+ manner n.
1373
+ mark v., n.
1374
+ marry v.
1375
+ material n.
1376
+ mathematics n.
1377
+ maths n.
1378
+ matter n., v.
1379
+ may modal v.
1380
+ media n.
1381
+ medical adj.
1382
+ medicine n.
1383
+ memory n.
1384
+ mention v.
1385
+ metal n.
1386
+ method n.
1387
+ middle n., adj.
1388
+ might modal v.
1389
+ mind n., v.
1390
+ mine pron.
1391
+ mirror n.
1392
+ missing adj.
1393
+ mobile adj., n.
1394
+ monkey n.
1395
+ moon n.
1396
+ mostly adv.
1397
+ motorcycle n.
1398
+ movement n.
1399
+ musical adj.
1400
+ musician n.
1401
+ myself pron.
1402
+ narrow adj.
1403
+ national adj.
1404
+ nature n.
1405
+ nearly adv.
1406
+ necessary adj.
1407
+ neck n.
1408
+ need n.
1409
+ neither det./pron.
1410
+ nervous adj.
1411
+ network n.
1412
+ noise n.
1413
+ noisy adj.
1414
+ none pron.
1415
+ normal adj.
1416
+ normally adv.
1417
+ notice v., n.
1418
+ novel n.
1419
+ nowhere adv.
1420
+ number v.
1421
+ nut n.
1422
+ ocean n.
1423
+ offer v., n.
1424
+ officer n.
1425
+ oil n.
1426
+ onto prep.
1427
+ opportunity n.
1428
+ option n.
1429
+ ordinary adj.
1430
+ organization n.
1431
+ organize v.
1432
+ original adj.
1433
+ ourselves pron.
1434
+ outside prep., n., adj.
1435
+ oven n.
1436
+ own v.
1437
+ owner n.
1438
+ pack v.
1439
+ pain n.
1440
+ painter n.
1441
+ palace n.
1442
+ pants n.
1443
+ parking n.
1444
+ particular adj.
1445
+ pass v.
1446
+ passenger n.
1447
+ past adv.
1448
+ patient n.
1449
+ pattern n.
1450
+ pay n.
1451
+ peace n.
1452
+ penny n.
1453
+ per prep.
1454
+ per cent n., adj./adv.
1455
+ perform v.
1456
+ perhaps adv.
1457
+ permission n.
1458
+ personality n.
1459
+ pet n.
1460
+ petrol n.
1461
+ photograph v.
1462
+ physical adj.
1463
+ physics n.
1464
+ pick v.
1465
+ pilot n.
1466
+ planet n.
1467
+ plant v.
1468
+ plastic n., adj.
1469
+ plate n.
1470
+ platform n.
1471
+ please v.
1472
+ pleased adj.
1473
+ pocket n.
1474
+ polite adj.
1475
+ pollution n.
1476
+ pop n., adj.
1477
+ population n.
1478
+ position n.
1479
+ possession n.
1480
+ possibility n.
1481
+ poster n.
1482
+ power n.
1483
+ predict v.
1484
+ present v.
1485
+ president n.
1486
+ prevent v.
1487
+ print v.
1488
+ printer n.
1489
+ prison n.
1490
+ prize n.
1491
+ process n.
1492
+ produce v.
1493
+ professional adj.
1494
+ professor n.
1495
+ profile n.
1496
+ program n.
1497
+ progress n.
1498
+ promise v., n.
1499
+ pronounce v.
1500
+ protect v.
1501
+ provide v.
1502
+ pub n.
1503
+ public adj., n.
1504
+ publish v.
1505
+ pull v.
1506
+ purpose n.
1507
+ push v.
1508
+ quality n.
1509
+ quantity n.
1510
+ queen n.
1511
+ question v.
1512
+ quietly adv.
1513
+ race n., v.
1514
+ railway n.
1515
+ raise v.
1516
+ rate n.
1517
+ rather adv.
1518
+ reach v.
1519
+ react v.
1520
+ realize v.
1521
+ receive v.
1522
+ recent adj.
1523
+ recently adv.
1524
+ reception n.
1525
+ recipe n.
1526
+ recognize v.
1527
+ recommend v.
1528
+ record n., v.
1529
+ recording n.
1530
+ recycle v.
1531
+ reduce v.
1532
+ refer v.
1533
+ refuse v.
1534
+ region n.
1535
+ regular adj.
1536
+ relationship n.
1537
+ remove v.
1538
+ repair v.
1539
+ replace v.
1540
+ reply v., n.
1541
+ report v.
1542
+ reporter n.
1543
+ request n.
1544
+ research n., v.
1545
+ researcher n.
1546
+ respond v.
1547
+ response n.
1548
+ rest n.
1549
+ rest n., v.
1550
+ review n., v.
1551
+ ride n.
1552
+ ring n., v.
1553
+ rise v.
1554
+ rock n.
1555
+ rock n.
1556
+ role n.
1557
+ roof n.
1558
+ round adj., adv., prep.
1559
+ route n.
1560
+ rubbish n.
1561
+ rude adj.
1562
+ run n.
1563
+ runner n.
1564
+ running n.
1565
+ sadly adv.
1566
+ safe adj.
1567
+ sail v.
1568
+ sailing n.
1569
+ salary n.
1570
+ sale n.
1571
+ sauce n.
1572
+ save v.
1573
+ scared adj.
1574
+ scary adj.
1575
+ scene n.
1576
+ schedule n.
1577
+ score v., n.
1578
+ screen n.
1579
+ search n., v.
1580
+ season n.
1581
+ seat n.
1582
+ second adv.
1583
+ secondly adv.
1584
+ secret adj., n.
1585
+ secretary n.
1586
+ seem v.
1587
+ sense n.
1588
+ separate adj.
1589
+ series n.
1590
+ serious adj.
1591
+ serve v.
1592
+ service n.
1593
+ several det./pron.
1594
+ shake v.
1595
+ shall modal v.
1596
+ shape n.
1597
+ sheet n.
1598
+ ship n.
1599
+ shoulder n.
1600
+ shout v., n.
1601
+ shut v., adj.
1602
+ side n.
1603
+ sign n., v.
1604
+ silver n., adj.
1605
+ simple adj.
1606
+ since prep., conj.
1607
+ singing n.
1608
+ single adj., n.
1609
+ sir n.
1610
+ site n.
1611
+ size n.
1612
+ ski v., adj., n.
1613
+ skiing n.
1614
+ skin n.
1615
+ sky n.
1616
+ sleep n.
1617
+ slowly adv.
1618
+ smartphone n.
1619
+ smell v., n.
1620
+ smile v., n.
1621
+ smoke n., v.
1622
+ smoking n.
1623
+ soap n.
1624
+ soccer n.
1625
+ social adj.
1626
+ society n.
1627
+ sock n.
1628
+ soft adj.
1629
+ soldier n.
1630
+ solution n.
1631
+ solve v.
1632
+ somewhere adv., pron.
1633
+ sort n.
1634
+ source n.
1635
+ speaker n.
1636
+ specific adj.
1637
+ speech n.
1638
+ speed n.
1639
+ spider n.
1640
+ spoon n.
1641
+ square adj., n.
1642
+ stage n.
1643
+ stair n.
1644
+ stamp n.
1645
+ star v.
1646
+ start n.
1647
+ state n.
1648
+ stay n.
1649
+ steal v.
1650
+ step n.
1651
+ stomach n.
1652
+ stone n.
1653
+ store n.
1654
+ storm n.
1655
+ straight adv., adj.
1656
+ strange adj.
1657
+ strategy n.
1658
+ stress n., v.
1659
+ structure n.
1660
+ stupid adj.
1661
+ succeed v.
1662
+ successful adj.
1663
+ such det./pron.
1664
+ suddenly adv.
1665
+ suggest v.
1666
+ suggestion n.
1667
+ suit n.
1668
+ support v., n.
1669
+ suppose v.
1670
+ sure adv.
1671
+ surprise n., v.
1672
+ surprised adj.
1673
+ surprising adj.
1674
+ survey n.
1675
+ sweet adj., n.
1676
+ symbol n.
1677
+ system n.
1678
+ tablet n.
1679
+ talk n.
1680
+ target n.
1681
+ task n.
1682
+ taste n., v.
1683
+ teaching n.
1684
+ technology n.
1685
+ teenage adj.
1686
+ temperature n.
1687
+ term n.
1688
+ text v.
1689
+ themselves pron.
1690
+ thick adj.
1691
+ thief n.
1692
+ thin adj.
1693
+ thinking n.
1694
+ third n.
1695
+ thought n.
1696
+ throw v.
1697
+ tidy adj., v.
1698
+ tie v., n.
1699
+ tip n.
1700
+ tool n.
1701
+ top n., adj.
1702
+ touch v.
1703
+ tour n.
1704
+ tourism n.
1705
+ towards prep.
1706
+ towel n.
1707
+ tower n.
1708
+ toy n., adj.
1709
+ track n.
1710
+ tradition n.
1711
+ traditional adj.
1712
+ train v.
1713
+ trainer n.
1714
+ training n.
1715
+ transport n.
1716
+ traveller n.
1717
+ trouble n.
1718
+ truck n.
1719
+ twin n., adj.
1720
+ typical adj.
1721
+ underground adj., adv.
1722
+ understanding n.
1723
+ unfortunately adv.
1724
+ unhappy adj.
1725
+ uniform n.
1726
+ unit n.
1727
+ united adj.
1728
+ unusual adj.
1729
+ upstairs adj.
1730
+ use n.
1731
+ used to modal v.
1732
+ user n.
1733
+ usual adj.
1734
+ valley n.
1735
+ van n.
1736
+ variety n.
1737
+ vehicle n.
1738
+ view n.
1739
+ virus n.
1740
+ voice n.
1741
+ wait n.
1742
+ war n.
1743
+ wash n.
1744
+ washing n.
1745
+ wave n.
1746
+ weak adj.
1747
+ web n.
1748
+ wedding n.
1749
+ weight n.
1750
+ welcome n.
1751
+ wet adj.
1752
+ wheel n.
1753
+ while conj.
1754
+ whole adj.
1755
+ whose det./pron.
1756
+ wide adj.
1757
+ wild adj.
1758
+ wind n.
1759
+ winner n.
1760
+ wish v., n.
1761
+ wood n.
1762
+ wooden adj.
1763
+ working adj.
1764
+ worried adj.
1765
+ worry v.
1766
+ worse adj.
1767
+ worst adj.
1768
+ wow exclam.
1769
+ yet adv.
1770
+ yours pron.
1771
+ zero number
1772
+ absolutely adv.
1773
+ academic adj.
1774
+ access n., v.
1775
+ accommodation n.
1776
+ account n.
1777
+ achievement n.
1778
+ act n.
1779
+ ad n.
1780
+ addition n.
1781
+ admire v.
1782
+ admit v.
1783
+ advanced adj.
1784
+ advise v.
1785
+ afford v.
1786
+ age v.
1787
+ aged adj.
1788
+ agent n.
1789
+ agreement n.
1790
+ ahead adv.
1791
+ aim v., n.
1792
+ alarm n.
1793
+ album n.
1794
+ alcohol n.
1795
+ alcoholic adj.
1796
+ alternative adj.
1797
+ amazed adj.
1798
+ ambition n.
1799
+ ambitious adj.
1800
+ analyse v.
1801
+ analysis n.
1802
+ announce v.
1803
+ announcement n.
1804
+ annoy v.
1805
+ annoyed adj.
1806
+ annoying adj.
1807
+ apart adv.
1808
+ apologize v.
1809
+ application n.
1810
+ appointment n.
1811
+ appreciate v.
1812
+ approximately adv.
1813
+ arrest v., n.
1814
+ arrival n.
1815
+ assignment n.
1816
+ assist v.
1817
+ atmosphere n.
1818
+ attach v.
1819
+ attitude n.
1820
+ attract v.
1821
+ attraction n.
1822
+ authority n.
1823
+ average v.
1824
+ award v.
1825
+ aware adj.
1826
+ backwards adv.
1827
+ bake v.
1828
+ balance n., v.
1829
+ ban v., n.
1830
+ bank n.
1831
+ base n., v.
1832
+ basic adj.
1833
+ basis n.
1834
+ battery n.
1835
+ battle n.
1836
+ beauty n.
1837
+ bee n.
1838
+ belief n.
1839
+ bell n.
1840
+ bend v., n.
1841
+ benefit v.
1842
+ better n.
1843
+ bite v., n.
1844
+ block n., v.
1845
+ board v.
1846
+ bomb n., v.
1847
+ border n.
1848
+ bother v.
1849
+ branch n.
1850
+ brand n., v.
1851
+ brave adj.
1852
+ breath n.
1853
+ breathe v.
1854
+ breathing n.
1855
+ bride n.
1856
+ bubble n.
1857
+ bury v.
1858
+ by adv.
1859
+ calm adj., v., n.
1860
+ campaign n., v.
1861
+ campus n.
1862
+ candidate n.
1863
+ cap n.
1864
+ captain n.
1865
+ careless adj.
1866
+ category n.
1867
+ ceiling n.
1868
+ celebration n.
1869
+ central adj.
1870
+ centre v.
1871
+ ceremony n.
1872
+ chain n.
1873
+ challenge n.
1874
+ champion n.
1875
+ channel n.
1876
+ chapter n.
1877
+ charge n., v.
1878
+ cheap adv.
1879
+ cheat v., n.
1880
+ cheerful adj.
1881
+ chemical adj., n.
1882
+ chest n.
1883
+ childhood n.
1884
+ claim v., n.
1885
+ clause n.
1886
+ clear v.
1887
+ click v., n.
1888
+ client n.
1889
+ climb n.
1890
+ close adv.
1891
+ cloth n.
1892
+ clue n.
1893
+ coach v.
1894
+ coal n.
1895
+ coin n.
1896
+ collection n.
1897
+ coloured adj.
1898
+ combine v.
1899
+ comment v.
1900
+ commercial adj., n.
1901
+ commit v.
1902
+ communication n.
1903
+ comparison n.
1904
+ competitor n.
1905
+ competitive adj.
1906
+ complaint n.
1907
+ complex adj.
1908
+ concentrate v.
1909
+ conclude v.
1910
+ conclusion n.
1911
+ confident adj.
1912
+ confirm v.
1913
+ confuse v.
1914
+ confused adj.
1915
+ connection n.
1916
+ consequence n.
1917
+ consist v.
1918
+ consume v.
1919
+ consumer n.
1920
+ contact n., v.
1921
+ container n.
1922
+ content n.
1923
+ continuous adj.
1924
+ contrast n., v.
1925
+ convenient adj.
1926
+ convince v.
1927
+ cool v.
1928
+ costume n.
1929
+ cottage n.
1930
+ cotton n.
1931
+ count n.
1932
+ countryside n.
1933
+ court n.
1934
+ cover n.
1935
+ covered adj.
1936
+ cream adj.
1937
+ criminal adj.
1938
+ cruel adj.
1939
+ cultural adj.
1940
+ currency n.
1941
+ current adj.
1942
+ currently adv.
1943
+ curtain n.
1944
+ custom n.
1945
+ cut n.
1946
+ daily adv.
1947
+ damage n., v.
1948
+ deal n.
1949
+ decade n.
1950
+ decorate v.
1951
+ deep adv.
1952
+ define v.
1953
+ definite adj.
1954
+ definition n.
1955
+ deliver v.
1956
+ departure n.
1957
+ despite prep.
1958
+ destination n.
1959
+ determine v.
1960
+ determined adj.
1961
+ development n.
1962
+ diagram n.
1963
+ diamond n.
1964
+ difficulty n.
1965
+ direct v., adv.
1966
+ directly adv.
1967
+ dirt n.
1968
+ disadvantage n.
1969
+ disappointed adj.
1970
+ disappointing adj.
1971
+ discount n.
1972
+ dislike v., n.
1973
+ divide v.
1974
+ documentary n.
1975
+ donate v.
1976
+ double adv.
1977
+ doubt n., v.
1978
+ dressed adj.
1979
+ drop n.
1980
+ drum n.
1981
+ drunk adj.
1982
+ due adj.
1983
+ dust n.
1984
+ duty n.
1985
+ earthquake n.
1986
+ eastern adj.
1987
+ economic adj.
1988
+ economy n.
1989
+ edge n.
1990
+ editor n.
1991
+ educate v.
1992
+ educated adj.
1993
+ educational adj.
1994
+ effective adj.
1995
+ effectively adv.
1996
+ effort n.
1997
+ election n.
1998
+ element n.
1999
+ embarrassed adj.
2000
+ embarrassing adj.
2001
+ emergency n.
2002
+ emotion n.
2003
+ employment n.
2004
+ empty v.
2005
+ encourage v.
2006
+ enemy n.
2007
+ engaged adj.
2008
+ engineering n.
2009
+ entertain v.
2010
+ entertainment n.
2011
+ entrance n.
2012
+ entry n.
2013
+ environmental adj.
2014
+ episode n.
2015
+ equal adj., v.
2016
+ equally adv.
2017
+ escape v., n.
2018
+ essential adj.
2019
+ eventually adv.
2020
+ examine v.
2021
+ except conj.
2022
+ exchange n., v.
2023
+ excitement n.
2024
+ exhibition n.
2025
+ expand v.
2026
+ expected adj.
2027
+ expedition n.
2028
+ experience v.
2029
+ experienced adj.
2030
+ experiment v.
2031
+ explode v.
2032
+ explore v.
2033
+ explosion n.
2034
+ export n., v.
2035
+ extra n., adv.
2036
+ face v.
2037
+ fairly adv.
2038
+ familiar adj.
2039
+ fancy v., adj.
2040
+ far adj.
2041
+ fascinating adj.
2042
+ fashionable adj.
2043
+ fasten v.
2044
+ favour n.
2045
+ fear v.
2046
+ feature v.
2047
+ fence n.
2048
+ fighting n.
2049
+ file n.
2050
+ financial adj.
2051
+ fire v.
2052
+ fitness n.
2053
+ fixed adj.
2054
+ flag n.
2055
+ flood n., v.
2056
+ flour n.
2057
+ flow v., n.
2058
+ fold v.
2059
+ folk n., adj.
2060
+ following n.
2061
+ force n., v.
2062
+ forever adv.
2063
+ frame n., v.
2064
+ freeze v.
2065
+ frequently adv.
2066
+ friendship n.
2067
+ frighten v.
2068
+ frightened adj.
2069
+ frightening adj.
2070
+ frozen adj.
2071
+ fry v.
2072
+ fuel n.
2073
+ function n.
2074
+ fur n.
2075
+ further adv.
2076
+ garage n.
2077
+ gather v.
2078
+ generally adv.
2079
+ generation n.
2080
+ generous adj.
2081
+ gentle adj.
2082
+ gentleman n.
2083
+ ghost n.
2084
+ giant adj., n.
2085
+ glad adj.
2086
+ global adj.
2087
+ glove n.
2088
+ go n.
2089
+ goods n.
2090
+ grade n.
2091
+ graduate n., v.
2092
+ grain n.
2093
+ grateful adj.
2094
+ growth n.
2095
+ guard n., v.
2096
+ guilty adj.
2097
+ hand v.
2098
+ hang v.
2099
+ happiness n.
2100
+ hardly adv.
2101
+ hate n.
2102
+ head v.
2103
+ headline n.
2104
+ heating n.
2105
+ heavily adv.
2106
+ helicopter n.
2107
+ highlight v., n.
2108
+ highly adv.
2109
+ hire v.
2110
+ historic adj.
2111
+ historical adj.
2112
+ honest adj.
2113
+ horrible adj.
2114
+ horror n.
2115
+ host n.
2116
+ hunt v.
2117
+ hurricane n.
2118
+ hurry n., v.
2119
+ identity n.
2120
+ ignore v.
2121
+ illegal adj.
2122
+ imaginary adj.
2123
+ immediate adj.
2124
+ immigrant n.
2125
+ impact n., v.
2126
+ import n., v.
2127
+ importance n.
2128
+ impression n.
2129
+ impressive adj.
2130
+ improvement n.
2131
+ incredibly adv.
2132
+ indeed adv.
2133
+ indicate v.
2134
+ indirect adj.
2135
+ indoor adj.
2136
+ indoors adv.
2137
+ influence n., v.
2138
+ ingredient n.
2139
+ injure v.
2140
+ injured adj.
2141
+ innocent adj.
2142
+ intelligence n.
2143
+ intend v.
2144
+ intention n.
2145
+ invest v.
2146
+ investigate v.
2147
+ involved adj.
2148
+ iron n., v.
2149
+ issue n.
2150
+ IT n.
2151
+ journal n.
2152
+ judge n., v.
2153
+ keen adj.
2154
+ key v.
2155
+ keyboard n.
2156
+ kick v., n.
2157
+ killing n.
2158
+ kind adj.
2159
+ kiss v., n.
2160
+ knock n.
2161
+ label n., v.
2162
+ laboratory n.
2163
+ lack n., v.
2164
+ latest adj.
2165
+ lay v.
2166
+ layer n.
2167
+ lead n.
2168
+ leading adj.
2169
+ leaf n.
2170
+ leather n.
2171
+ legal adj.
2172
+ leisure n.
2173
+ length n.
2174
+ level adj.
2175
+ lie v., n.
2176
+ like n.
2177
+ limit n., v.
2178
+ lip n.
2179
+ liquid n., adj.
2180
+ literature n.
2181
+ live adj., adv.
2182
+ living adj., n.
2183
+ local n.
2184
+ locate v.
2185
+ located adj.
2186
+ location n.
2187
+ lonely adj.
2188
+ loss n.
2189
+ luxury n.
2190
+ mad adj.
2191
+ magic n., adj.
2192
+ mainly adv.
2193
+ mall n.
2194
+ management n.
2195
+ market v.
2196
+ marketing n.
2197
+ marriage n.
2198
+ meanwhile adv.
2199
+ measure v., n.
2200
+ medium adj.
2201
+ mental adj.
2202
+ mention n.
2203
+ mess n.
2204
+ mild adj.
2205
+ mine n.
2206
+ mix v., n.
2207
+ mixture n.
2208
+ mood n.
2209
+ move n.
2210
+ mud n.
2211
+ murder n., v.
2212
+ muscle n.
2213
+ musical n.
2214
+ mystery n.
2215
+ nail n.
2216
+ narrative n., adj.
2217
+ nation n.
2218
+ native adj., n.
2219
+ naturally adv.
2220
+ necessarily adv.
2221
+ need modal v.
2222
+ needle n.
2223
+ neighbourhood n.
2224
+ neither adv.
2225
+ net n.
2226
+ next n.
2227
+ nor conj./adv.
2228
+ normal n.
2229
+ northern adj.
2230
+ note v.
2231
+ now conj.
2232
+ nuclear adj.
2233
+ obvious adj.
2234
+ obviously adv.
2235
+ occasion n.
2236
+ occur v.
2237
+ odd adj.
2238
+ official adj.
2239
+ old-fashioned adj.
2240
+ once conj.
2241
+ operation n.
2242
+ organized adj.
2243
+ organizer n.
2244
+ original n.
2245
+ originally adv.
2246
+ ought modal v.
2247
+ ours pron.
2248
+ outdoor adj.
2249
+ outdoors adv.
2250
+ pack n.
2251
+ package n.
2252
+ painful adj.
2253
+ pale adj.
2254
+ pan n.
2255
+ participate v.
2256
+ particularly adv.
2257
+ pass n.
2258
+ passion n.
2259
+ path n.
2260
+ payment n.
2261
+ peaceful adj.
2262
+ percentage n.
2263
+ perfectly adv.
2264
+ performance n.
2265
+ personally adv.
2266
+ persuade v.
2267
+ photographer n.
2268
+ photography n.
2269
+ pin n., v.
2270
+ pipe n.
2271
+ place v.
2272
+ planning n.
2273
+ pleasant adj.
2274
+ pleasure n.
2275
+ plenty pron.
2276
+ plot n.
2277
+ plus prep.
2278
+ poem n.
2279
+ poet n.
2280
+ poetry n.
2281
+ point v.
2282
+ poison n., v.
2283
+ poisonous adj.
2284
+ policy n.
2285
+ political adj.
2286
+ politician n.
2287
+ politics n.
2288
+ port n.
2289
+ portrait n.
2290
+ possibly adv.
2291
+ pot n.
2292
+ pour v.
2293
+ poverty n.
2294
+ powder n.
2295
+ powerful adj.
2296
+ practical adj.
2297
+ pray v.
2298
+ prayer n.
2299
+ prediction n.
2300
+ prepared adj.
2301
+ presentation n.
2302
+ press n., v.
2303
+ pressure n.
2304
+ pretend v.
2305
+ previous adj.
2306
+ previously adv.
2307
+ priest n.
2308
+ primary adj.
2309
+ prince n.
2310
+ princess n.
2311
+ printing n.
2312
+ prisoner n.
2313
+ private adj.
2314
+ producer n.
2315
+ production n.
2316
+ profession n.
2317
+ profit n.
2318
+ program v.
2319
+ promote v.
2320
+ proper adj.
2321
+ properly adv.
2322
+ property n.
2323
+ protest n., v.
2324
+ proud adj.
2325
+ prove v.
2326
+ pull n.
2327
+ punish v.
2328
+ punishment n.
2329
+ push n.
2330
+ qualification n.
2331
+ qualified adj.
2332
+ qualify v.
2333
+ queue n., v.
2334
+ quit v.
2335
+ quotation n.
2336
+ quote v., n.
2337
+ race n.
2338
+ racing n.
2339
+ range n.
2340
+ rare adj.
2341
+ rarely adv.
2342
+ reaction n.
2343
+ reality n.
2344
+ receipt n.
2345
+ recommendation n.
2346
+ reference n.
2347
+ reflect v.
2348
+ regularly adv.
2349
+ reject v.
2350
+ relate v.
2351
+ related adj.
2352
+ relation n.
2353
+ relative adj., n.
2354
+ relaxed adj.
2355
+ relaxing adj.
2356
+ release v., n.
2357
+ reliable adj.
2358
+ religion n.
2359
+ religious adj.
2360
+ remain v.
2361
+ remind v.
2362
+ remote adj.
2363
+ rent n., v.
2364
+ repair n.
2365
+ repeat n.
2366
+ repeated adj.
2367
+ represent v.
2368
+ request v.
2369
+ require v.
2370
+ reservation n.
2371
+ resource n.
2372
+ respect n., v.
2373
+ responsibility n.
2374
+ responsible adj.
2375
+ result v.
2376
+ retire v.
2377
+ retired adj.
2378
+ revise v.
2379
+ ring n.
2380
+ rise n.
2381
+ risk n., v.
2382
+ robot n.
2383
+ roll v., n.
2384
+ romantic adj.
2385
+ rope n.
2386
+ rough adj.
2387
+ row n.
2388
+ royal adj.
2389
+ rugby n.
2390
+ rule v.
2391
+ safety n.
2392
+ sail n.
2393
+ sailor n.
2394
+ sample n.
2395
+ sand n.
2396
+ scan v.
2397
+ scientific adj.
2398
+ script n.
2399
+ sculpture n.
2400
+ secondary adj.
2401
+ security n.
2402
+ seed n.
2403
+ sensible adj.
2404
+ separate v.
2405
+ seriously adv.
2406
+ servant n.
2407
+ set v.
2408
+ set n.
2409
+ setting n.
2410
+ sex n.
2411
+ sexual adj.
2412
+ shake n.
2413
+ share n.
2414
+ sharp adj.
2415
+ shelf n.
2416
+ shell n.
2417
+ shift n.
2418
+ shine v.
2419
+ shiny adj.
2420
+ shoot v.
2421
+ shy adj.
2422
+ sight n.
2423
+ signal n., v.
2424
+ silent adj.
2425
+ silly adj.
2426
+ similarity n.
2427
+ similarly adv.
2428
+ simply adv.
2429
+ since adv.
2430
+ sink v.
2431
+ slice n., v.
2432
+ slightly adv.
2433
+ slow v.
2434
+ smart adj.
2435
+ smooth adj.
2436
+ software n.
2437
+ soil n.
2438
+ solid adj., n.
2439
+ sort v.
2440
+ southern adj.
2441
+ specifically adv.
2442
+ spending n.
2443
+ spicy adj.
2444
+ spirit n.
2445
+ spoken adj.
2446
+ spot n.
2447
+ spread v.
2448
+ spring v.
2449
+ stadium n.
2450
+ staff n.
2451
+ standard n., adj.
2452
+ state adj., v.
2453
+ statistic n.
2454
+ statue n.
2455
+ stick v.
2456
+ stick n.
2457
+ still adj.
2458
+ store v.
2459
+ stranger n.
2460
+ strength n.
2461
+ string n.
2462
+ strongly adv.
2463
+ studio n.
2464
+ stuff n.
2465
+ substance n.
2466
+ successfully adv.
2467
+ sudden adj.
2468
+ suffer v.
2469
+ suit v.
2470
+ suitable adj.
2471
+ summarize v.
2472
+ summary n.
2473
+ supply n., v.
2474
+ supporter n.
2475
+ surely adv.
2476
+ surface n.
2477
+ survive v.
2478
+ swim n.
2479
+ switch v.
2480
+ symptom n.
2481
+ tail n.
2482
+ talent n.
2483
+ talented adj.
2484
+ tape n.
2485
+ tax n., v.
2486
+ technical adj.
2487
+ technique n.
2488
+ tend v.
2489
+ tent n.
2490
+ that adv.
2491
+ theirs pron.
2492
+ theme n.
2493
+ theory n.
2494
+ therefore adv.
2495
+ this adv.
2496
+ though conj., adv.
2497
+ throat n.
2498
+ throughout prep./adv.
2499
+ tight adj.
2500
+ till conj./prep.
2501
+ tin n.
2502
+ tiny adj.
2503
+ tip v.
2504
+ toe n.
2505
+ tongue n.
2506
+ total adj., n.
2507
+ totally adv.
2508
+ touch n.
2509
+ tour v.
2510
+ trade n., v.
2511
+ translate v.
2512
+ translation n.
2513
+ transport v.
2514
+ treat v.
2515
+ treatment n.
2516
+ trend n.
2517
+ trick n., v.
2518
+ truth n.
2519
+ tube n.
2520
+ type v.
2521
+ typically adv.
2522
+ tyre n.
2523
+ ugly adj.
2524
+ unable adj.
2525
+ uncomfortable adj.
2526
+ underwear n.
2527
+ unemployed adj.
2528
+ unemployment n.
2529
+ unfair adj.
2530
+ union n.
2531
+ unless conj.
2532
+ unlike prep.
2533
+ unlikely adj.
2534
+ unnecessary adj.
2535
+ unpleasant adj.
2536
+ update v., n.
2537
+ upon prep.
2538
+ upset adj., v.
2539
+ used adj.
2540
+ used adj.
2541
+ valuable adj.
2542
+ value n.
2543
+ various adj.
2544
+ version n.
2545
+ victim n.
2546
+ view v.
2547
+ viewer n.
2548
+ violent adj.
2549
+ volunteer n., v.
2550
+ vote n., v.
2551
+ warm v.
2552
+ warn v.
2553
+ warning n.
2554
+ waste n., v., adj.
2555
+ water v.
2556
+ wave v.
2557
+ weapon n.
2558
+ weigh v.
2559
+ western adj.
2560
+ whatever det./pron.
2561
+ whenever conj.
2562
+ whether conj.
2563
+ while n.
2564
+ whole n.
2565
+ will n.
2566
+ win n.
2567
+ wing n.
2568
+ within prep.
2569
+ wonder v., n.
2570
+ wool n.
2571
+ worldwide adj., adv.
2572
+ worry n.
2573
+ worse adv.
2574
+ worst adv.
2575
+ worth adj.
2576
+ written adj.
2577
+ wrong adv.
2578
+ yard n.
2579
+ young n.
2580
+ youth n.
2581
+ abandon v.
2582
+ absolute adj.
2583
+ academic n.
2584
+ acceptable adj.
2585
+ accompany v.
2586
+ account v.
2587
+ accurate adj.
2588
+ accuse v.
2589
+ acknowledge v.
2590
+ acquire v.
2591
+ actual adj.
2592
+ adapt v.
2593
+ additional adj.
2594
+ address v.
2595
+ administration n.
2596
+ adopt v.
2597
+ advance n., v., adj.
2598
+ affair n.
2599
+ afterwards adv.
2600
+ agency n.
2601
+ agenda n.
2602
+ aggressive adj.
2603
+ aid n., v.
2604
+ aircraft n.
2605
+ alarm v.
2606
+ alter v.
2607
+ amount v.
2608
+ anger n.
2609
+ angle n.
2610
+ anniversary n.
2611
+ annual adj.
2612
+ anxious adj.
2613
+ apparent adj.
2614
+ apparently adv.
2615
+ appeal n., v.
2616
+ approach n., v.
2617
+ appropriate adj.
2618
+ approval n.
2619
+ approve v.
2620
+ arise v.
2621
+ armed adj.
2622
+ arms n.
2623
+ artificial adj.
2624
+ artistic adj.
2625
+ ashamed adj.
2626
+ aspect n.
2627
+ assess v.
2628
+ assessment n.
2629
+ associate v.
2630
+ associated adj.
2631
+ association n.
2632
+ assume v.
2633
+ attempt n., v.
2634
+ back v.
2635
+ bacteria n.
2636
+ bar v.
2637
+ barrier n.
2638
+ basically adv.
2639
+ battle v.
2640
+ bear v.
2641
+ beat n.
2642
+ beg v.
2643
+ being n.
2644
+ bent adj.
2645
+ bet v., n.
2646
+ beyond prep., adv.
2647
+ bill v.
2648
+ bitter adj.
2649
+ blame v., n.
2650
+ blind adj.
2651
+ bond n.
2652
+ border v.
2653
+ breast n.
2654
+ brief adj.
2655
+ broad adj.
2656
+ broadcast v., n.
2657
+ budget n.
2658
+ bullet n.
2659
+ bunch n.
2660
+ burn n.
2661
+ bush n.
2662
+ but prep.
2663
+ cable n.
2664
+ calculate v.
2665
+ cancel v.
2666
+ cancer n.
2667
+ capable adj.
2668
+ capacity n.
2669
+ capture v., n.
2670
+ cast n., v.
2671
+ catch n.
2672
+ cell n.
2673
+ chain v.
2674
+ chair v.
2675
+ chairman n.
2676
+ challenge v.
2677
+ characteristic n., adj.
2678
+ chart v.
2679
+ chief adj., n.
2680
+ circumstance n.
2681
+ cite v.
2682
+ citizen n.
2683
+ civil adj.
2684
+ classic adj., n.
2685
+ close n.
2686
+ closely adv.
2687
+ collapse v., n.
2688
+ combination n.
2689
+ comfort n., v.
2690
+ command n., v.
2691
+ commission n., v.
2692
+ commitment n.
2693
+ committee n.
2694
+ commonly adv.
2695
+ complex n.
2696
+ complicated adj.
2697
+ component n.
2698
+ concentration n.
2699
+ concept n.
2700
+ concern n., v.
2701
+ concerned adj.
2702
+ conduct v., n.
2703
+ confidence n.
2704
+ conflict n., v.
2705
+ confusing adj.
2706
+ conscious adj.
2707
+ conservative adj., n.
2708
+ consideration n.
2709
+ consistent adj.
2710
+ constant adj.
2711
+ constantly adv.
2712
+ construct v.
2713
+ construction n.
2714
+ contemporary adj.
2715
+ contest n., v.
2716
+ contract n., v.
2717
+ contribute v.
2718
+ contribution n.
2719
+ convert v.
2720
+ convinced adj.
2721
+ core n., adj.
2722
+ corporate adj.
2723
+ council n.
2724
+ county n.
2725
+ courage n.
2726
+ crash n., v.
2727
+ creation n.
2728
+ creature n.
2729
+ credit v.
2730
+ crew n.
2731
+ crisis n.
2732
+ criterion n.
2733
+ critic n.
2734
+ critical adj.
2735
+ criticism n.
2736
+ criticize v.
2737
+ crop n.
2738
+ crucial adj.
2739
+ cry n.
2740
+ cure v., n.
2741
+ current n.
2742
+ curve n., v.
2743
+ curved adj.
2744
+ date v.
2745
+ debate n., v.
2746
+ debt n.
2747
+ decent adj.
2748
+ declare v.
2749
+ decline v., n.
2750
+ decoration n.
2751
+ decrease v., n.
2752
+ deeply adv.
2753
+ defeat v., n.
2754
+ defence n.
2755
+ defend v.
2756
+ delay v., n.
2757
+ deliberate adj.
2758
+ deliberately adv.
2759
+ delight v., n.
2760
+ delighted adj.
2761
+ delivery n.
2762
+ demand n., v.
2763
+ demonstrate v.
2764
+ deny v.
2765
+ depressed adj.
2766
+ depressing adj.
2767
+ depth n.
2768
+ desert v.
2769
+ deserve v.
2770
+ desire n., v.
2771
+ desperate adj.
2772
+ detail v.
2773
+ detailed adj.
2774
+ detect v.
2775
+ dig v.
2776
+ disc n.
2777
+ discipline n.
2778
+ discount v.
2779
+ dishonest adj.
2780
+ dismiss v.
2781
+ display v., n.
2782
+ distribute v.
2783
+ distribution n.
2784
+ district n.
2785
+ divide n.
2786
+ division n.
2787
+ document v.
2788
+ domestic adj.
2789
+ dominate v.
2790
+ downwards adv.
2791
+ dozen n., det.
2792
+ draft n., v.
2793
+ drag v.
2794
+ dramatic adj.
2795
+ edit v.
2796
+ edition n.
2797
+ efficient adj.
2798
+ elderly adj.
2799
+ elect v.
2800
+ elsewhere adv.
2801
+ emerge v.
2802
+ emotional adj.
2803
+ emphasis n.
2804
+ emphasize v.
2805
+ enable v.
2806
+ encounter v., n.
2807
+ engage v.
2808
+ enhance v.
2809
+ enquiry n.
2810
+ ensure v.
2811
+ enthusiasm n.
2812
+ enthusiastic adj.
2813
+ entire adj.
2814
+ entirely adv.
2815
+ equal n.
2816
+ establish v.
2817
+ estate n.
2818
+ estimate v., n.
2819
+ ethical adj.
2820
+ evaluate v.
2821
+ even adj.
2822
+ evil adj., n.
2823
+ examination n.
2824
+ excuse n., v.
2825
+ executive n., adj.
2826
+ existence n.
2827
+ expectation n.
2828
+ expense n.
2829
+ exploration n.
2830
+ expose v.
2831
+ extend v.
2832
+ extent n.
2833
+ external adj.
2834
+ extraordinary adj.
2835
+ extreme n.
2836
+ facility n.
2837
+ failure n.
2838
+ faith n.
2839
+ fault n.
2840
+ favour v.
2841
+ feather n.
2842
+ fee n.
2843
+ feed n.
2844
+ feedback n.
2845
+ feel n.
2846
+ fellow adj.
2847
+ figure v.
2848
+ file v.
2849
+ finance n., v.
2850
+ finding n.
2851
+ firm n.
2852
+ fix n.
2853
+ flame n.
2854
+ flash n., v.
2855
+ flexible adj.
2856
+ float v.
2857
+ fold n.
2858
+ folding adj.
2859
+ following prep.
2860
+ forgive v.
2861
+ former adj.
2862
+ fortune n.
2863
+ forward adj.
2864
+ found v.
2865
+ free v.
2866
+ freedom n.
2867
+ frequency n.
2868
+ fuel v.
2869
+ fully adv.
2870
+ function v.
2871
+ fund n., v.
2872
+ fundamental adj.
2873
+ funding n.
2874
+ furthermore adv.
2875
+ gain v., n.
2876
+ gang n.
2877
+ generate v.
2878
+ genre n.
2879
+ govern v.
2880
+ grab v.
2881
+ grade v.
2882
+ gradually adv.
2883
+ grand adj.
2884
+ grant v., n.
2885
+ guarantee v., n.
2886
+ handle v., n.
2887
+ harm n., v.
2888
+ harmful adj.
2889
+ hearing n.
2890
+ heaven n.
2891
+ heel n.
2892
+ hell n.
2893
+ hesitate v.
2894
+ high n.
2895
+ hire n.
2896
+ hold n.
2897
+ hollow adj.
2898
+ holy adj.
2899
+ honour n., v.
2900
+ host v.
2901
+ house v.
2902
+ household n.
2903
+ housing n.
2904
+ humorous adj.
2905
+ humour n.
2906
+ hunt n.
2907
+ hunting n.
2908
+ hurt n.
2909
+ ideal n.
2910
+ illustrate v.
2911
+ illustration n.
2912
+ imagination n.
2913
+ impatient adj.
2914
+ imply v.
2915
+ impose v.
2916
+ impress v.
2917
+ impressed adj.
2918
+ inch n.
2919
+ incident n.
2920
+ income n.
2921
+ increasingly adv.
2922
+ industrial adj.
2923
+ infection n.
2924
+ inform v.
2925
+ initial adj.
2926
+ initially adv.
2927
+ initiative n.
2928
+ inner adj.
2929
+ insight n.
2930
+ insist v.
2931
+ inspire v.
2932
+ install v.
2933
+ instance n.
2934
+ institute n.
2935
+ institution n.
2936
+ insurance n.
2937
+ intended adj.
2938
+ intense adj.
2939
+ internal adj.
2940
+ interpret v.
2941
+ interrupt v.
2942
+ investigation n.
2943
+ investment n.
2944
+ issue v.
2945
+ joy n.
2946
+ judgement n.
2947
+ junior adj.
2948
+ justice n.
2949
+ justify v.
2950
+ labour n.
2951
+ landscape n.
2952
+ largely adv.
2953
+ latest n.
2954
+ launch v., n.
2955
+ leadership n.
2956
+ league n.
2957
+ lean v.
2958
+ leave n.
2959
+ level v.
2960
+ licence n.
2961
+ limited adj.
2962
+ line v.
2963
+ lively adj.
2964
+ load n., v.
2965
+ loan n.
2966
+ logical adj.
2967
+ long-term adj., adv.
2968
+ loose adj.
2969
+ lord n.
2970
+ low n.
2971
+ lower v.
2972
+ lung n.
2973
+ maintain v.
2974
+ majority n.
2975
+ make n.
2976
+ map v.
2977
+ mass n., adj.
2978
+ massive adj.
2979
+ master n., v.
2980
+ matching adj.
2981
+ material adj.
2982
+ maximum adj., n.
2983
+ means n.
2984
+ measurement n.
2985
+ medium n.
2986
+ melt v.
2987
+ military adj., n.
2988
+ mineral n.
2989
+ minimum adj., n.
2990
+ minister n.
2991
+ minor adj.
2992
+ minority n.
2993
+ mission n.
2994
+ mistake v.
2995
+ mixed adj.
2996
+ model v.
2997
+ modify v.
2998
+ monitor n., v.
2999
+ moral adj., n.
3000
+ motor n., adj.
3001
+ mount v.
3002
+ multiple adj.
3003
+ multiply v.
3004
+ mysterious adj.
3005
+ narrow v.
3006
+ national n.
3007
+ neat adj.
3008
+ negative n.
3009
+ nerve n.
3010
+ nevertheless adv.
3011
+ nightmare n.
3012
+ notion n.
3013
+ numerous adj.
3014
+ obey v.
3015
+ object v.
3016
+ objective n., adj.
3017
+ obligation n.
3018
+ observation n.
3019
+ observe v.
3020
+ obtain v.
3021
+ occasionally adv.
3022
+ offence n.
3023
+ offend v.
3024
+ offensive adj.
3025
+ official n.
3026
+ opening n.
3027
+ operate v.
3028
+ opponent n.
3029
+ oppose v.
3030
+ opposed adj.
3031
+ opposition n.
3032
+ organ n.
3033
+ origin n.
3034
+ otherwise adv.
3035
+ outcome n.
3036
+ outer adj.
3037
+ outline n., v.
3038
+ overall adj., adv.
3039
+ owe v.
3040
+ pace n., v.
3041
+ package v.
3042
+ panel n.
3043
+ parliament n.
3044
+ participant n.
3045
+ partly adv.
3046
+ passage n.
3047
+ patient adj.
3048
+ pension n.
3049
+ permanent adj.
3050
+ permit v., n.
3051
+ perspective n.
3052
+ phase n.
3053
+ phenomenon n.
3054
+ philosophy n.
3055
+ pick n.
3056
+ picture v.
3057
+ pile n., v.
3058
+ pitch n.
3059
+ plain adj.
3060
+ plot v.
3061
+ plus adj., n., conj.
3062
+ pointed adj.
3063
+ popularity n.
3064
+ pose v.
3065
+ position v.
3066
+ positive n.
3067
+ possess v.
3068
+ potential adj., n.
3069
+ power v.
3070
+ praise n., v.
3071
+ pregnant adj.
3072
+ preparation n.
3073
+ presence n.
3074
+ preserve v.
3075
+ price v.
3076
+ prime adj.
3077
+ principle n.
3078
+ print n.
3079
+ priority n.
3080
+ privacy n.
3081
+ procedure n.
3082
+ process v.
3083
+ produce n.
3084
+ professional n.
3085
+ progress v.
3086
+ project v.
3087
+ proof n.
3088
+ proposal n.
3089
+ propose v.
3090
+ prospect n.
3091
+ protection n.
3092
+ psychologist n.
3093
+ psychology n.
3094
+ publication n.
3095
+ pupil n.
3096
+ purchase n., v.
3097
+ pure adj.
3098
+ pursue v.
3099
+ range v.
3100
+ rank n., v.
3101
+ rapid adj.
3102
+ rapidly adv.
3103
+ rate v.
3104
+ raw adj.
3105
+ reach n.
3106
+ realistic adj.
3107
+ reasonable adj.
3108
+ recall v.
3109
+ recover v.
3110
+ reduction n.
3111
+ regard v., n.
3112
+ regional adj.
3113
+ register v., n.
3114
+ regret v., n.
3115
+ regulation n.
3116
+ relatively adv.
3117
+ relevant adj.
3118
+ relief n.
3119
+ rely v.
3120
+ remark n., v.
3121
+ representative n., adj.
3122
+ reputation n.
3123
+ requirement n.
3124
+ rescue v., n.
3125
+ reserve n., v.
3126
+ resident n., adj.
3127
+ resist v.
3128
+ resolve v.
3129
+ resort n.
3130
+ retain v.
3131
+ reveal v.
3132
+ revolution n.
3133
+ reward n., v.
3134
+ rhythm n.
3135
+ rid v.
3136
+ root n.
3137
+ round n.
3138
+ routine adj.
3139
+ rub v.
3140
+ rubber n., adj.
3141
+ rural adj.
3142
+ rush v., n.
3143
+ sample v.
3144
+ satellite n.
3145
+ satisfied adj.
3146
+ satisfy v.
3147
+ saving n.
3148
+ scale n.
3149
+ schedule v.
3150
+ scheme n.
3151
+ scream v., n.
3152
+ screen v.
3153
+ seat v.
3154
+ sector n.
3155
+ secure v., adj.
3156
+ seek v.
3157
+ select v.
3158
+ selection n.
3159
+ self n.
3160
+ senior adj.
3161
+ sense v.
3162
+ sensitive adj.
3163
+ sentence v.
3164
+ sequence n.
3165
+ session n.
3166
+ settle v.
3167
+ severe adj.
3168
+ shade n.
3169
+ shadow n.
3170
+ shallow adj.
3171
+ shame n.
3172
+ shape v.
3173
+ shelter n., v.
3174
+ shift v.
3175
+ ship v.
3176
+ shock n., v.
3177
+ shocked adj.
3178
+ shooting n.
3179
+ shot n.
3180
+ significant adj.
3181
+ significantly adv.
3182
+ silence n.
3183
+ silk n.
3184
+ sincere adj.
3185
+ slave n.
3186
+ slide v., n.
3187
+ slight adj.
3188
+ slip v.
3189
+ slope n., v.
3190
+ solar adj.
3191
+ somewhat adv.
3192
+ soul n.
3193
+ specialist n., adj.
3194
+ species n.
3195
+ speed v.
3196
+ spiritual adj.
3197
+ split v., n.
3198
+ sponsor v., n.
3199
+ spot v.
3200
+ spread n.
3201
+ stable adj.
3202
+ stage v.
3203
+ stand n.
3204
+ stare v.
3205
+ status n.
3206
+ steady adj.
3207
+ steel n.
3208
+ steep adj.
3209
+ step v.
3210
+ sticky adj.
3211
+ stiff adj.
3212
+ stock n.
3213
+ stream n.
3214
+ stretch v., n.
3215
+ strict adj.
3216
+ strike v., n.
3217
+ structure v.
3218
+ struggle v., n.
3219
+ stuff v.
3220
+ subject adj.
3221
+ submit v.
3222
+ sum n., v.
3223
+ surgery n.
3224
+ surround v.
3225
+ surrounding adj.
3226
+ survey v.
3227
+ suspect v., n.
3228
+ swear v.
3229
+ sweep v.
3230
+ switch n.
3231
+ sympathy n.
3232
+ tale n.
3233
+ tank n.
3234
+ target v.
3235
+ tear v., n.
3236
+ tear n.
3237
+ temporary adj.
3238
+ term v.
3239
+ therapy n.
3240
+ threat n.
3241
+ threaten v.
3242
+ thus adv.
3243
+ time v.
3244
+ title v.
3245
+ tone n.
3246
+ tough adj.
3247
+ track v.
3248
+ transfer v., n.
3249
+ transform v.
3250
+ transition n.
3251
+ trial n.
3252
+ trip v.
3253
+ tropical adj.
3254
+ trouble v.
3255
+ truly adv.
3256
+ trust n., v.
3257
+ try n.
3258
+ tune n.
3259
+ tunnel n.
3260
+ ultimately adv.
3261
+ unconscious adj.
3262
+ unexpected adj.
3263
+ unique adj.
3264
+ universe n.
3265
+ unknown adj.
3266
+ upper adj.
3267
+ upwards adv.
3268
+ urban adj.
3269
+ urge v.
3270
+ value v.
3271
+ vary v.
3272
+ vast adj.
3273
+ venue n.
3274
+ very adj.
3275
+ via prep.
3276
+ victory n.
3277
+ violence n.
3278
+ virtual adj.
3279
+ vision n.
3280
+ visual adj.
3281
+ vital adj.
3282
+ vitamin n.
3283
+ volume n.
3284
+ wage n.
3285
+ way adv.
3286
+ weakness n.
3287
+ wealth n.
3288
+ wealthy adj.
3289
+ whereas conj.
3290
+ wherever conj.
3291
+ whisper v., n.
3292
+ whom pron.
3293
+ widely adv.
3294
+ wildlife n.
3295
+ willing adj.
3296
+ wind v.
3297
+ wire n.
3298
+ wise adj.
3299
+ witness n., v.
3300
+ worse n.
3301
+ worst n.
3302
+ worth n.
3303
+ wound n., v.
3304
+ wrap v.
3305
+ wrong n.
3306
+ yet conj.
3307
+ zone n.
textgames/assets/word_list/oxford5k_extra.txt ADDED
@@ -0,0 +1,2015 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absorb v.
2
+ abstract adj.
3
+ accent n.
4
+ accidentally adv.
5
+ accommodate v.
6
+ accomplish v.
7
+ accountant n.
8
+ accuracy n.
9
+ accurately adv.
10
+ acid n.
11
+ activate v.
12
+ addiction n.
13
+ additionally adv.
14
+ adequate adj.
15
+ adequately adv.
16
+ adjust v.
17
+ affordable adj.
18
+ agriculture n.
19
+ AIDS n.
20
+ alien n.
21
+ alongside prep.
22
+ altogether adv.
23
+ ambulance n.
24
+ amusing adj.
25
+ analyst n.
26
+ ancestor n.
27
+ animation n.
28
+ annually adv.
29
+ anticipate v.
30
+ anxiety n.
31
+ apology n.
32
+ applicant n.
33
+ appropriately adv.
34
+ arrow n.
35
+ artwork n.
36
+ aside adv.
37
+ asset n.
38
+ assign v.
39
+ assistance n.
40
+ assumption n.
41
+ assure v.
42
+ astonishing adj.
43
+ attachment n.
44
+ auction n.
45
+ audio adj.
46
+ automatic adj.
47
+ automatically adv.
48
+ awareness n.
49
+ awkward adj.
50
+ badge n.
51
+ balanced adj.
52
+ ballet n.
53
+ balloon n.
54
+ barely adv.
55
+ bargain n.
56
+ basement n.
57
+ basket n.
58
+ bat n.
59
+ beneficial adj.
60
+ beside prep.
61
+ besides prep., adv.
62
+ bias n.
63
+ bid n., v.
64
+ biological adj.
65
+ blanket n.
66
+ blow n.
67
+ bold adj.
68
+ bombing n.
69
+ booking n.
70
+ boost v., n.
71
+ bound adj.
72
+ brick n.
73
+ briefly adv.
74
+ broadcaster n.
75
+ broadly adv.
76
+ bug n.
77
+ cabin n.
78
+ canal n.
79
+ candle n.
80
+ carbon n.
81
+ casual adj.
82
+ cave n.
83
+ certainty n.
84
+ certificate n.
85
+ challenging adj.
86
+ championship n.
87
+ charming adj.
88
+ chase v., n.
89
+ cheek n.
90
+ cheer v., n.
91
+ choir n.
92
+ chop v.
93
+ circuit n.
94
+ civilization n.
95
+ clarify v.
96
+ classify v.
97
+ clerk n.
98
+ cliff n.
99
+ clinic n.
100
+ clip n.
101
+ coincidence n.
102
+ collector n.
103
+ colony n.
104
+ colourful adj.
105
+ comic adj., n.
106
+ commander n.
107
+ comparative adj.
108
+ completion n.
109
+ compose v.
110
+ composer n.
111
+ compound n.
112
+ comprehensive adj.
113
+ comprise v.
114
+ compulsory adj.
115
+ concrete adj., n.
116
+ confess v.
117
+ confusion n.
118
+ consequently adv.
119
+ conservation n.
120
+ considerable adj.
121
+ considerably adv.
122
+ consistently adv.
123
+ conspiracy n.
124
+ consult v.
125
+ consultant n.
126
+ consumption n.
127
+ controversial adj.
128
+ controversy n.
129
+ convenience n.
130
+ convention n.
131
+ conventional adj.
132
+ convey v.
133
+ convincing adj.
134
+ cope v.
135
+ corporation n.
136
+ corridor n.
137
+ counter n.
138
+ coverage n.
139
+ crack v., n.
140
+ craft n.
141
+ creativity n.
142
+ critically adv.
143
+ cruise n., v.
144
+ cue n.
145
+ curious adj.
146
+ curriculum n.
147
+ cute adj.
148
+ dairy n., adj.
149
+ dare v.
150
+ darkness n.
151
+ database n.
152
+ deadline n.
153
+ deadly adj.
154
+ dealer n.
155
+ deck n.
156
+ defender n.
157
+ delete v.
158
+ democracy n.
159
+ democratic adj.
160
+ demonstration n.
161
+ depart v.
162
+ dependent adj.
163
+ deposit n.
164
+ depression n.
165
+ derive v.
166
+ desperately adv.
167
+ destruction n.
168
+ determination n.
169
+ devote v.
170
+ differ v.
171
+ disability n.
172
+ disabled adj.
173
+ disagreement n.
174
+ disappoint v.
175
+ disappointment n.
176
+ discourage v.
177
+ disorder n.
178
+ distant adj.
179
+ distinct adj.
180
+ distinguish v.
181
+ distract v.
182
+ disturb v.
183
+ dive v., n.
184
+ diverse adj.
185
+ diversity n.
186
+ divorce n., v.
187
+ dominant adj.
188
+ donation n.
189
+ dot n.
190
+ downtown n., adj., adv.
191
+ dramatically adv.
192
+ drought n.
193
+ dull adj.
194
+ dump v.
195
+ duration n.
196
+ dynamic adj.
197
+ economics n.
198
+ economist n.
199
+ editorial adj.
200
+ efficiently adv.
201
+ elbow n.
202
+ electronics n.
203
+ elegant adj.
204
+ elementary adj.
205
+ eliminate v.
206
+ embrace v.
207
+ emission n.
208
+ emotionally adv.
209
+ empire n.
210
+ enjoyable adj.
211
+ entertaining adj.
212
+ entrepreneur n.
213
+ envelope n.
214
+ equip v.
215
+ equivalent n., adj.
216
+ era n.
217
+ erupt v.
218
+ essentially adv.
219
+ ethic n.
220
+ ethnic adj.
221
+ evaluation n.
222
+ evident adj.
223
+ evolution n.
224
+ evolve v.
225
+ exceed v.
226
+ exception n.
227
+ excessive adj.
228
+ exclude v.
229
+ exhibit v., n.
230
+ exit n.
231
+ exotic adj.
232
+ expansion n.
233
+ expertise n.
234
+ exploit v.
235
+ exposure n.
236
+ extension n.
237
+ extensive adj.
238
+ extensively adv.
239
+ extract n.
240
+ fabric n.
241
+ fabulous adj.
242
+ failed adj.
243
+ fake adj.
244
+ fame n.
245
+ fantasy n.
246
+ fare n.
247
+ federal adj.
248
+ fever n.
249
+ firefighter n.
250
+ firework n.
251
+ firm adj.
252
+ firmly adv.
253
+ flavour n.
254
+ fond adj.
255
+ fool n.
256
+ forbid v.
257
+ forecast n., v.
258
+ format n.
259
+ formation n.
260
+ formerly adv.
261
+ fortunate adj.
262
+ forum n.
263
+ fossil n.
264
+ foundation n.
265
+ founder n.
266
+ fraction n.
267
+ fragment n.
268
+ framework n.
269
+ fraud n.
270
+ freely adv.
271
+ frequent adj.
272
+ fulfil v.
273
+ full-time adj./adv.
274
+ fundamentally adv.
275
+ furious adj.
276
+ gaming n.
277
+ gay adj.
278
+ gender n.
279
+ gene n.
280
+ genetic adj.
281
+ genius n.
282
+ genuine adj.
283
+ genuinely adv.
284
+ gesture n.
285
+ gig n.
286
+ globalization n.
287
+ globe n.
288
+ golden adj.
289
+ goodness n.
290
+ gorgeous adj.
291
+ governor n.
292
+ graphic adj.
293
+ graphics n.
294
+ greatly adv.
295
+ greenhouse n.
296
+ grocery n.
297
+ guideline n.
298
+ habitat n.
299
+ harbour n.
300
+ headquarters n.
301
+ heal v.
302
+ healthcare n.
303
+ helmet n.
304
+ hence adv.
305
+ herb n.
306
+ hidden adj.
307
+ highway n.
308
+ hilarious adj.
309
+ hip n.
310
+ historian n.
311
+ homeless adj.
312
+ honesty n.
313
+ hook n.
314
+ hopefully adv.
315
+ hunger n.
316
+ hypothesis n.
317
+ icon n.
318
+ ID n.
319
+ identical adj.
320
+ illusion n.
321
+ immigration n.
322
+ immune adj.
323
+ implement v.
324
+ implication n.
325
+ incentive n.
326
+ incorporate v.
327
+ incorrect adj.
328
+ independence n.
329
+ index n.
330
+ indication n.
331
+ inevitable adj.
332
+ inevitably adv.
333
+ infer v.
334
+ inflation n.
335
+ info n.
336
+ infrastructure n.
337
+ inhabitant n.
338
+ inherit v.
339
+ ink n.
340
+ innovation n.
341
+ innovative adj.
342
+ input n.
343
+ insert v.
344
+ inspector n.
345
+ installation n.
346
+ instant adj.
347
+ instantly adv.
348
+ integrate v.
349
+ intellectual adj.
350
+ interact v.
351
+ interaction n.
352
+ interpretation n.
353
+ interval n.
354
+ invade v.
355
+ invasion n.
356
+ investor n.
357
+ isolate v.
358
+ isolated adj.
359
+ jail n., v.
360
+ jet n.
361
+ joint adj., n.
362
+ journalism n.
363
+ jury n.
364
+ kit n.
365
+ ladder n.
366
+ landing n.
367
+ lane n.
368
+ lately adv.
369
+ leaflet n.
370
+ legend n.
371
+ lens n.
372
+ lifetime n.
373
+ lighting n.
374
+ likewise adv.
375
+ limitation n.
376
+ literally adv.
377
+ literary adj.
378
+ litre n.
379
+ litter n.
380
+ logo n.
381
+ lottery n.
382
+ loyal adj.
383
+ lyric n.
384
+ magnificent adj.
385
+ make-up n.
386
+ making n.
387
+ manufacture v.
388
+ manufacturing n.
389
+ marathon n.
390
+ margin n.
391
+ marker n.
392
+ martial adj.
393
+ mate n., v.
394
+ mayor n.
395
+ mechanic n.
396
+ mechanical adj.
397
+ mechanism n.
398
+ medal n.
399
+ medication n.
400
+ membership n.
401
+ memorable adj.
402
+ metaphor n.
403
+ miner n.
404
+ miserable adj.
405
+ mode n.
406
+ modest adj.
407
+ monster n.
408
+ monthly adj.
409
+ monument n.
410
+ moreover adv.
411
+ mortgage n.
412
+ mosque n.
413
+ motion n.
414
+ motivate v.
415
+ motivation n.
416
+ moving adj.
417
+ myth n.
418
+ naked adj.
419
+ nasty adj.
420
+ navigation n.
421
+ nearby adj., adv.
422
+ necessity n.
423
+ negotiate v.
424
+ negotiation n.
425
+ neutral adj.
426
+ newly adv.
427
+ norm n.
428
+ notebook n.
429
+ novelist n.
430
+ nowadays adv.
431
+ nursing adj.
432
+ nutrition n.
433
+ obesity n.
434
+ observer n.
435
+ obstacle n.
436
+ occupation n.
437
+ occupy v.
438
+ offender n.
439
+ ongoing adj.
440
+ openly adv.
441
+ opera n.
442
+ operator n.
443
+ optimistic adj.
444
+ orchestra n.
445
+ organic adj.
446
+ outfit n.
447
+ output n.
448
+ outstanding adj.
449
+ overcome v.
450
+ overnight adv.
451
+ overseas adv., adj.
452
+ ownership n.
453
+ oxygen n.
454
+ packet n.
455
+ palm n.
456
+ panic n.
457
+ parade n.
458
+ parallel adj., n.
459
+ participation n.
460
+ partnership n.
461
+ part-time adj./adv.
462
+ passionate adj.
463
+ password n.
464
+ patience n.
465
+ pause v., n.
466
+ peer n.
467
+ penalty n.
468
+ perceive v.
469
+ perception n.
470
+ permanently adv.
471
+ pill n.
472
+ pity n.
473
+ placement n.
474
+ portion n.
475
+ potentially adv.
476
+ precede v.
477
+ precious adj.
478
+ precise adj.
479
+ precisely adv.
480
+ predictable adj.
481
+ preference n.
482
+ pride n.
483
+ primarily adv.
484
+ principal adj.
485
+ prior adj.
486
+ probability n.
487
+ probable adj.
488
+ proceed v.
489
+ programming n.
490
+ progressive adj.
491
+ prohibit v.
492
+ promising adj.
493
+ promotion n.
494
+ prompt v.
495
+ proportion n.
496
+ protein n.
497
+ protester n.
498
+ psychological adj.
499
+ publicity n.
500
+ publishing n.
501
+ punk n.
502
+ purely adv.
503
+ pursuit n.
504
+ puzzle n.
505
+ questionnaire n.
506
+ racial adj.
507
+ racism n.
508
+ racist adj., n.
509
+ radiation n.
510
+ rail n.
511
+ random adj.
512
+ rat n.
513
+ rating n.
514
+ reasonably adv.
515
+ rebuild v.
516
+ receiver n.
517
+ recession n.
518
+ reckon v.
519
+ recognition n.
520
+ recovery n.
521
+ recruit v., n.
522
+ recruitment n.
523
+ referee n.
524
+ refugee n.
525
+ registration n.
526
+ regulate v.
527
+ reinforce v.
528
+ relieve v.
529
+ relieved adj.
530
+ remarkable adj.
531
+ remarkably adv.
532
+ reporting n.
533
+ resign v.
534
+ resolution n.
535
+ restore v.
536
+ restrict v.
537
+ restriction n.
538
+ retail n.
539
+ retirement n.
540
+ revenue n.
541
+ revision n.
542
+ ridiculous adj.
543
+ risky adj.
544
+ rival n., adj.
545
+ rob v.
546
+ robbery n.
547
+ rocket n.
548
+ romance n.
549
+ rose n.
550
+ roughly adv.
551
+ ruin v., n.
552
+ satisfaction n.
553
+ scandal n.
554
+ scare v., n.
555
+ scenario n.
556
+ scholar n.
557
+ scholarship n.
558
+ scratch v., n.
559
+ screening n.
560
+ seeker n.
561
+ seminar n.
562
+ settler n.
563
+ severely adv.
564
+ sexy adj.
565
+ shaped adj.
566
+ shocking adj.
567
+ shore n.
568
+ shortage n.
569
+ shortly adv.
570
+ short-term adj.
571
+ sibling n.
572
+ signature n.
573
+ significance n.
574
+ skilled adj.
575
+ skull n.
576
+ slogan n.
577
+ so-called adj.
578
+ somehow adv.
579
+ sometime adv.
580
+ sophisticated adj.
581
+ spare adj.
582
+ specialize v.
583
+ specify v.
584
+ spectacular adj.
585
+ spectator n.
586
+ speculate v.
587
+ speculation n.
588
+ spice n.
589
+ spill v.
590
+ spite n.
591
+ spoil v.
592
+ spokesman n.
593
+ spokesperson n.
594
+ spokeswoman n.
595
+ sponsorship n.
596
+ sporting adj.
597
+ stall n.
598
+ stance n.
599
+ starve v.
600
+ steadily adv.
601
+ steam n.
602
+ stimulate v.
603
+ strengthen v.
604
+ strictly adv.
605
+ stroke n.
606
+ stunning adj.
607
+ subsequent adj.
608
+ subsequently adv.
609
+ suburb n.
610
+ suffering n.
611
+ sufficient adj.
612
+ sufficiently adv.
613
+ super adj.
614
+ surgeon n.
615
+ survival n.
616
+ survivor n.
617
+ suspend v.
618
+ sustainable adj.
619
+ swallow v.
620
+ sympathetic adj.
621
+ tackle v.
622
+ tag n., v.
623
+ tap v., n.
624
+ technological adj.
625
+ teens n.
626
+ temple n.
627
+ temporarily adv.
628
+ tendency n.
629
+ tension n.
630
+ terminal n.
631
+ terms n.
632
+ terribly adv.
633
+ terrify v.
634
+ territory n.
635
+ terror n.
636
+ terrorism n.
637
+ terrorist n.
638
+ testing n.
639
+ textbook n.
640
+ theft n.
641
+ therapist n.
642
+ thesis n.
643
+ thorough adj.
644
+ thoroughly adv.
645
+ thumb n.
646
+ timing n.
647
+ tissue n.
648
+ ton n.
649
+ tonne n.
650
+ tournament n.
651
+ trace v.
652
+ trading n.
653
+ tragedy n.
654
+ tragic adj.
655
+ trait n.
656
+ transmit v.
657
+ transportation n.
658
+ trap v., n.
659
+ treasure n.
660
+ tribe n.
661
+ trigger v.
662
+ trillion number
663
+ troop n.
664
+ tsunami n.
665
+ ultimate adj.
666
+ unacceptable adj.
667
+ uncertainty n.
668
+ undergo v.
669
+ undertake v.
670
+ unfold v.
671
+ unfortunate adj.
672
+ unite v.
673
+ unity n.
674
+ universal adj.
675
+ urgent adj.
676
+ usage n.
677
+ useless adj.
678
+ valid adj.
679
+ variation n.
680
+ vertical adj.
681
+ viewpoint n.
682
+ visa n.
683
+ visible adj.
684
+ voluntary adj.
685
+ voting n.
686
+ wander v.
687
+ warming n.
688
+ weekly adj.
689
+ weird adj.
690
+ welfare n.
691
+ wheat n.
692
+ whoever pron.
693
+ widespread adj.
694
+ wisdom n.
695
+ withdraw v.
696
+ workforce n.
697
+ workplace n.
698
+ workshop n.
699
+ worm n.
700
+ wrist n.
701
+ abolish v.
702
+ abortion n.
703
+ absence n.
704
+ absent adj.
705
+ absurd adj.
706
+ abundance n.
707
+ abuse n., v.
708
+ academy n.
709
+ accelerate v.
710
+ acceptance n.
711
+ accessible adj.
712
+ accomplishment n.
713
+ accordance n.
714
+ accordingly adv.
715
+ accountability n.
716
+ accountable adj.
717
+ accumulate v.
718
+ accumulation n.
719
+ accusation n.
720
+ accused n.
721
+ acid adj.
722
+ acquisition n.
723
+ acre n.
724
+ activation n.
725
+ activist n.
726
+ acute adj.
727
+ adaptation n.
728
+ adhere v.
729
+ adjacent adj.
730
+ adjustment n.
731
+ administer v.
732
+ administrative adj.
733
+ administrator n.
734
+ admission n.
735
+ adolescent n.
736
+ adoption n.
737
+ adverse adj.
738
+ advocate n., v.
739
+ aesthetic adj.
740
+ affection n.
741
+ aftermath n.
742
+ aggression n.
743
+ agricultural adj.
744
+ aide n.
745
+ albeit conj.
746
+ alert v., n., adj.
747
+ alien adj.
748
+ align v.
749
+ alignment n.
750
+ alike adv., adj.
751
+ allegation n.
752
+ allege v.
753
+ allegedly adv.
754
+ alliance n.
755
+ allocate v.
756
+ allocation n.
757
+ allowance n.
758
+ ally n.
759
+ aluminium n.
760
+ amateur adj., n.
761
+ ambassador n.
762
+ amend v.
763
+ amendment n.
764
+ amid prep.
765
+ analogy n.
766
+ anchor n.
767
+ angel n.
768
+ anonymous adj.
769
+ apparatus n.
770
+ appealing adj.
771
+ appetite n.
772
+ applaud v.
773
+ applicable adj.
774
+ appoint v.
775
+ appreciation n.
776
+ arbitrary adj.
777
+ architectural adj.
778
+ archive n.
779
+ arena n.
780
+ arguably adv.
781
+ arm v.
782
+ array n.
783
+ articulate v.
784
+ ash n.
785
+ aspiration n.
786
+ aspire v.
787
+ assassination n.
788
+ assault n., v.
789
+ assemble v.
790
+ assembly n.
791
+ assert v.
792
+ assertion n.
793
+ assurance n.
794
+ asylum n.
795
+ atrocity n.
796
+ attain v.
797
+ attendance n.
798
+ attorney n.
799
+ attribute v., n.
800
+ audit n.
801
+ authentic adj.
802
+ authorize v.
803
+ auto n.
804
+ autonomy n.
805
+ availability n.
806
+ await v.
807
+ backdrop n.
808
+ backing n.
809
+ backup n.
810
+ bail n.
811
+ ballot n.
812
+ banner n.
813
+ bare adj.
814
+ barrel n.
815
+ bass n.
816
+ bat v.
817
+ battlefield n.
818
+ bay n.
819
+ beam n.
820
+ beast n.
821
+ behalf n.
822
+ beloved adj.
823
+ bench n.
824
+ benchmark n.
825
+ beneath prep.
826
+ beneficiary n.
827
+ betray v.
828
+ bind v.
829
+ biography n.
830
+ bishop n.
831
+ bizarre adj.
832
+ blade n.
833
+ blast n., v.
834
+ bleed v.
835
+ blend v., n.
836
+ bless v.
837
+ blessing n.
838
+ boast v.
839
+ bonus n.
840
+ boom n.
841
+ bounce v.
842
+ boundary n.
843
+ bow v., n.
844
+ breach n., v.
845
+ breakdown n.
846
+ breakthrough n.
847
+ breed v., n.
848
+ broadband n.
849
+ browser n.
850
+ brutal adj.
851
+ buck n.
852
+ buddy n.
853
+ buffer n.
854
+ bulk n.
855
+ burden n.
856
+ bureaucracy n.
857
+ burial n.
858
+ burst v.
859
+ cabinet n.
860
+ calculation n.
861
+ canvas n.
862
+ capability n.
863
+ capitalism n.
864
+ capitalist adj.
865
+ cargo n.
866
+ carriage n.
867
+ carve v.
868
+ casino n.
869
+ casualty n.
870
+ catalogue n.
871
+ cater v.
872
+ cattle n.
873
+ caution n.
874
+ cautious adj.
875
+ cease v.
876
+ cemetery n.
877
+ chamber n.
878
+ chaos n.
879
+ characterize v.
880
+ charm n.
881
+ charter n.
882
+ chronic adj.
883
+ chunk n.
884
+ circulate v.
885
+ circulation n.
886
+ citizenship n.
887
+ civic adj.
888
+ civilian n., adj.
889
+ clarity n.
890
+ clash n.
891
+ classification n.
892
+ cling v.
893
+ clinical adj.
894
+ closure n.
895
+ cluster n.
896
+ coalition n.
897
+ coastal adj.
898
+ cocktail n.
899
+ cognitive adj.
900
+ coincide v.
901
+ collaborate v.
902
+ collaboration n.
903
+ collective adj.
904
+ collision n.
905
+ colonial adj.
906
+ columnist n.
907
+ combat n., v.
908
+ commence v.
909
+ commentary n.
910
+ commentator n.
911
+ commerce n.
912
+ commissioner n.
913
+ commodity n.
914
+ communist adj.
915
+ companion n.
916
+ comparable adj.
917
+ compassion n.
918
+ compel v.
919
+ compelling adj.
920
+ compensate v.
921
+ compensation n.
922
+ competence n.
923
+ competent adj.
924
+ compile v.
925
+ complement v.
926
+ complexity n.
927
+ compliance n.
928
+ complication n.
929
+ comply v.
930
+ composition n.
931
+ compromise n., v.
932
+ compute v.
933
+ conceal v.
934
+ concede v.
935
+ conceive v.
936
+ conception n.
937
+ concession n.
938
+ condemn v.
939
+ confer v.
940
+ confession n.
941
+ configuration n.
942
+ confine v.
943
+ confirmation n.
944
+ confront v.
945
+ confrontation n.
946
+ congratulate v.
947
+ congregation n.
948
+ congressional adj.
949
+ conquer v.
950
+ conscience n.
951
+ consciousness n.
952
+ consecutive adj.
953
+ consensus n.
954
+ consent n., v.
955
+ conserve v.
956
+ consistency n.
957
+ consolidate v.
958
+ constituency n.
959
+ constitute v.
960
+ constitution n.
961
+ constitutional adj.
962
+ constraint n.
963
+ consultation n.
964
+ contemplate v.
965
+ contempt n.
966
+ contend v.
967
+ contender n.
968
+ content adj.
969
+ contention n.
970
+ continually adv.
971
+ contractor n.
972
+ contradiction n.
973
+ contrary adj., n.
974
+ contributor n.
975
+ conversion n.
976
+ convict v.
977
+ conviction n.
978
+ cooperate v.
979
+ cooperative adj.
980
+ coordinate v.
981
+ coordination n.
982
+ coordinator n.
983
+ cop n.
984
+ copper n.
985
+ copyright n.
986
+ correction n.
987
+ correlate v.
988
+ correlation n.
989
+ correspond v.
990
+ correspondence n.
991
+ correspondent n.
992
+ corresponding adj.
993
+ corrupt adj.
994
+ corruption n.
995
+ costly adj.
996
+ councillor n.
997
+ counselling n.
998
+ counsellor n.
999
+ counter v.
1000
+ counterpart n.
1001
+ countless adj.
1002
+ coup n.
1003
+ courtesy n.
1004
+ craft v.
1005
+ crawl v.
1006
+ creator n.
1007
+ credibility n.
1008
+ credible adj.
1009
+ creep v.
1010
+ critique n.
1011
+ crown n.
1012
+ crude adj.
1013
+ crush v.
1014
+ crystal n.
1015
+ cult n., adj.
1016
+ cultivate v.
1017
+ curiosity n.
1018
+ custody n.
1019
+ cutting n.
1020
+ cynical adj.
1021
+ dam n.
1022
+ damaging adj.
1023
+ dawn n.
1024
+ debris n.
1025
+ debut n.
1026
+ decision-making n.
1027
+ decisive adj.
1028
+ declaration n.
1029
+ dedicated adj.
1030
+ dedication n.
1031
+ deed n.
1032
+ deem v.
1033
+ default n.
1034
+ defect n.
1035
+ defensive adj.
1036
+ deficiency n.
1037
+ deficit n.
1038
+ defy v.
1039
+ delegate n.
1040
+ delegation n.
1041
+ delicate adj.
1042
+ demon n.
1043
+ denial n.
1044
+ denounce v.
1045
+ dense adj.
1046
+ density n.
1047
+ dependence n.
1048
+ depict v.
1049
+ deploy v.
1050
+ deployment n.
1051
+ deposit v.
1052
+ deprive v.
1053
+ deputy n.
1054
+ descend v.
1055
+ descent n.
1056
+ designate v.
1057
+ desirable adj.
1058
+ desktop n.
1059
+ destructive adj.
1060
+ detain v.
1061
+ detection n.
1062
+ detention n.
1063
+ deteriorate v.
1064
+ devastate v.
1065
+ devil n.
1066
+ devise v.
1067
+ diagnose v.
1068
+ diagnosis n.
1069
+ dictate v.
1070
+ dictator n.
1071
+ differentiate v.
1072
+ dignity n.
1073
+ dilemma n.
1074
+ dimension n.
1075
+ diminish v.
1076
+ dip v.
1077
+ diplomat n.
1078
+ diplomatic n.
1079
+ directory n.
1080
+ disastrous adj.
1081
+ discard v.
1082
+ discharge v.
1083
+ disclose v.
1084
+ disclosure n.
1085
+ discourse n.
1086
+ discretion n.
1087
+ discrimination n.
1088
+ dismissal n.
1089
+ displace v.
1090
+ disposal n.
1091
+ dispose v.
1092
+ dispute n., v.
1093
+ disrupt v.
1094
+ disruption n.
1095
+ dissolve v.
1096
+ distinction n.
1097
+ distinctive adj.
1098
+ distort v.
1099
+ distress n., v.
1100
+ disturbing adj.
1101
+ divert v.
1102
+ divine adj.
1103
+ doctrine n.
1104
+ documentation n.
1105
+ domain n.
1106
+ dominance n.
1107
+ donor n.
1108
+ dose n.
1109
+ drain v.
1110
+ drift v.
1111
+ driving adj.
1112
+ drown v.
1113
+ dual adj.
1114
+ dub v.
1115
+ dumb adj.
1116
+ duo n.
1117
+ dynamic n.
1118
+ eager adj.
1119
+ earnings n.
1120
+ ease n., v.
1121
+ echo v., n.
1122
+ ecological adj.
1123
+ educator n.
1124
+ effectiveness n.
1125
+ efficiency n.
1126
+ ego n.
1127
+ elaborate adj.
1128
+ electoral adj.
1129
+ elevate v.
1130
+ eligible adj.
1131
+ elite n.
1132
+ embark v.
1133
+ embarrassment n.
1134
+ embassy n.
1135
+ embed v.
1136
+ embody v.
1137
+ emergence n.
1138
+ empirical adj.
1139
+ empower v.
1140
+ enact v.
1141
+ encompass v.
1142
+ encouragement n.
1143
+ encouraging adj.
1144
+ endeavour n.
1145
+ endless adj.
1146
+ endorse v.
1147
+ endorsement n.
1148
+ endure v.
1149
+ enforce v.
1150
+ enforcement n.
1151
+ engagement n.
1152
+ engaging adj.
1153
+ enquire v.
1154
+ enrich v.
1155
+ enrol v.
1156
+ ensue v.
1157
+ enterprise n.
1158
+ enthusiast n.
1159
+ entitle v.
1160
+ entity n.
1161
+ epidemic n.
1162
+ equality n.
1163
+ equation n.
1164
+ erect v.
1165
+ escalate v.
1166
+ essence n.
1167
+ establishment n.
1168
+ eternal adj.
1169
+ evacuate v.
1170
+ evoke v.
1171
+ evolutionary adj.
1172
+ exaggerate v.
1173
+ excellence n.
1174
+ exceptional adj.
1175
+ excess n., adj.
1176
+ exclusion n.
1177
+ exclusive adj.
1178
+ exclusively adv.
1179
+ execute v.
1180
+ execution n.
1181
+ exert v.
1182
+ exile n.
1183
+ exit v.
1184
+ expenditure n.
1185
+ experimental adj.
1186
+ expire v.
1187
+ explicit adj.
1188
+ explicitly adv.
1189
+ exploitation n.
1190
+ explosive adj., n.
1191
+ extract v.
1192
+ extremist n.
1193
+ facilitate v.
1194
+ faction n.
1195
+ faculty n.
1196
+ fade v.
1197
+ fairness n.
1198
+ fatal adj.
1199
+ fate n.
1200
+ favourable adj.
1201
+ feat n.
1202
+ feminist adj., n.
1203
+ fibre n.
1204
+ fierce adj.
1205
+ film-maker n.
1206
+ filter n., v.
1207
+ fine n., v.
1208
+ firearm n.
1209
+ fit n.
1210
+ fixture n.
1211
+ flaw n.
1212
+ flawed adj.
1213
+ flee v.
1214
+ fleet n.
1215
+ flesh n.
1216
+ flexibility n.
1217
+ flourish v.
1218
+ fluid n.
1219
+ footage n.
1220
+ foreigner n.
1221
+ forge v.
1222
+ formula n.
1223
+ formulate v.
1224
+ forth adv.
1225
+ forthcoming adj.
1226
+ foster v.
1227
+ fragile adj.
1228
+ franchise n.
1229
+ frankly adv.
1230
+ frustrated adj.
1231
+ frustrating adj.
1232
+ frustration n.
1233
+ functional adj.
1234
+ fundraising n.
1235
+ funeral n.
1236
+ gallon n.
1237
+ gambling n.
1238
+ gathering n.
1239
+ gaze n., v.
1240
+ gear n.
1241
+ generic adj.
1242
+ genocide n.
1243
+ glance n., v.
1244
+ glimpse n.
1245
+ glorious adj.
1246
+ glory n.
1247
+ governance n.
1248
+ grace n.
1249
+ grasp v., n.
1250
+ grave n.
1251
+ grave adj.
1252
+ gravity n.
1253
+ grid n.
1254
+ grief n.
1255
+ grin v., n.
1256
+ grind v.
1257
+ grip n., v.
1258
+ gross adj.
1259
+ guerrilla n.
1260
+ guidance n.
1261
+ guilt n.
1262
+ gut n.
1263
+ hail v.
1264
+ halfway adv.
1265
+ halt v., n.
1266
+ handful n.
1267
+ handling n.
1268
+ handy adj.
1269
+ harassment n.
1270
+ hardware n.
1271
+ harmony n.
1272
+ harsh adj.
1273
+ harvest n., v.
1274
+ hatred n.
1275
+ haunt v.
1276
+ hazard n.
1277
+ heighten v.
1278
+ heritage n.
1279
+ hierarchy n.
1280
+ high-profile adj.
1281
+ hint n., v.
1282
+ homeland n.
1283
+ hook v.
1284
+ hopeful adj.
1285
+ horizon n.
1286
+ horn n.
1287
+ hostage n.
1288
+ hostile adj.
1289
+ hostility n.
1290
+ humanitarian adj.
1291
+ humanity n.
1292
+ humble adj.
1293
+ hydrogen n.
1294
+ identification n.
1295
+ ideological adj.
1296
+ ideology n.
1297
+ idiot n.
1298
+ ignorance n.
1299
+ imagery n.
1300
+ immense adj.
1301
+ imminent adj.
1302
+ implementation n.
1303
+ imprison v.
1304
+ imprisonment n.
1305
+ inability n.
1306
+ inadequate adj.
1307
+ inappropriate adj.
1308
+ incidence n.
1309
+ inclined adj.
1310
+ inclusion n.
1311
+ incur v.
1312
+ indicator n.
1313
+ indictment n.
1314
+ indigenous adj.
1315
+ induce v.
1316
+ indulge v.
1317
+ inequality n.
1318
+ infamous adj.
1319
+ infant n.
1320
+ infect v.
1321
+ inflict v.
1322
+ influential adj.
1323
+ inherent adj.
1324
+ inhibit v.
1325
+ initiate v.
1326
+ inject v.
1327
+ injection n.
1328
+ injustice n.
1329
+ inmate n.
1330
+ insertion n.
1331
+ insider n.
1332
+ inspect v.
1333
+ inspection n.
1334
+ inspiration n.
1335
+ instinct n.
1336
+ institutional adj.
1337
+ instruct v.
1338
+ instrumental adj.
1339
+ insufficient adj.
1340
+ insult n., v.
1341
+ intact adj.
1342
+ intake n.
1343
+ integral adj.
1344
+ integrated adj.
1345
+ integration n.
1346
+ integrity n.
1347
+ intellectual n.
1348
+ intensify v.
1349
+ intensity n.
1350
+ intensive adj.
1351
+ intent n.
1352
+ interactive adj.
1353
+ interface n.
1354
+ interfere v.
1355
+ interference n.
1356
+ interim adj.
1357
+ interior adj., n.
1358
+ intermediate adj.
1359
+ intervene v.
1360
+ intervention n.
1361
+ intimate adj.
1362
+ intriguing adj.
1363
+ investigator n.
1364
+ invisible adj.
1365
+ invoke v.
1366
+ involvement n.
1367
+ ironic adj.
1368
+ ironically adv.
1369
+ irony n.
1370
+ irrelevant adj.
1371
+ isolation n.
1372
+ judicial adj.
1373
+ junction n.
1374
+ jurisdiction n.
1375
+ just adj.
1376
+ justification n.
1377
+ kidnap v.
1378
+ kidney n.
1379
+ kingdom n.
1380
+ lad n.
1381
+ landlord n.
1382
+ landmark n.
1383
+ lap n.
1384
+ large-scale adj.
1385
+ laser n.
1386
+ latter adj., n.
1387
+ lawn n.
1388
+ lawsuit n.
1389
+ layout n.
1390
+ leak v., n.
1391
+ leap v., n.
1392
+ legacy n.
1393
+ legendary adj.
1394
+ legislation n.
1395
+ legislative adj.
1396
+ legislature n.
1397
+ legitimate adj.
1398
+ lengthy adj.
1399
+ lesbian adj.
1400
+ lesser adj.
1401
+ lethal adj.
1402
+ liable adj.
1403
+ liberal adj., n.
1404
+ liberation n.
1405
+ liberty n.
1406
+ license v.
1407
+ lifelong adj.
1408
+ likelihood n.
1409
+ limb n.
1410
+ linear adj.
1411
+ line-up n.
1412
+ linger v.
1413
+ listing n.
1414
+ literacy n.
1415
+ liver n.
1416
+ lobby n., v.
1417
+ log n., v.
1418
+ logic n.
1419
+ long-standing adj.
1420
+ long-time adj.
1421
+ loom v.
1422
+ loop n.
1423
+ loyalty n.
1424
+ machinery n.
1425
+ magical adj.
1426
+ magistrate n.
1427
+ magnetic adj.
1428
+ magnitude n.
1429
+ mainland n.
1430
+ mainstream n., adj.
1431
+ maintenance n.
1432
+ mandate n.
1433
+ mandatory adj.
1434
+ manifest v.
1435
+ manipulate v.
1436
+ manipulation n.
1437
+ manuscript n.
1438
+ march n., v.
1439
+ marginal adj.
1440
+ marine adj.
1441
+ marketplace n.
1442
+ mask n.
1443
+ massacre n.
1444
+ mathematical adj.
1445
+ mature adj., v.
1446
+ maximize v.
1447
+ meaningful adj.
1448
+ meantime n.
1449
+ medieval adj.
1450
+ meditation n.
1451
+ melody n.
1452
+ memo n.
1453
+ memoir n.
1454
+ memorial n.
1455
+ mentor n.
1456
+ merchant n.
1457
+ mercy n.
1458
+ mere adj.
1459
+ merely adv.
1460
+ merge v.
1461
+ merger n.
1462
+ merit n.
1463
+ methodology n.
1464
+ midst n.
1465
+ migration n.
1466
+ militant n., adj.
1467
+ militia n.
1468
+ mill n.
1469
+ minimal adj.
1470
+ minimize v.
1471
+ mining n.
1472
+ ministry n.
1473
+ minute adj.
1474
+ miracle n.
1475
+ misery n.
1476
+ misleading adj.
1477
+ missile n.
1478
+ mob n.
1479
+ mobility n.
1480
+ mobilize v.
1481
+ moderate adj.
1482
+ modification n.
1483
+ momentum n.
1484
+ monk n.
1485
+ monopoly n.
1486
+ morality n.
1487
+ motive n.
1488
+ motorist n.
1489
+ municipal adj.
1490
+ mutual adj.
1491
+ namely adv.
1492
+ nationwide adj.
1493
+ naval adj.
1494
+ neglect v., n.
1495
+ neighbouring adj.
1496
+ nest n.
1497
+ net adj.
1498
+ newsletter n.
1499
+ niche n.
1500
+ noble adj.
1501
+ nod v.
1502
+ nominate v.
1503
+ nomination n.
1504
+ nominee n.
1505
+ nonetheless adv.
1506
+ non-profit adj.
1507
+ nonsense n.
1508
+ noon n.
1509
+ notable adj.
1510
+ notably adv.
1511
+ notify v.
1512
+ notorious adj.
1513
+ novel adj.
1514
+ nursery n.
1515
+ objection n.
1516
+ oblige v.
1517
+ obsess v.
1518
+ obsession n.
1519
+ occasional adj.
1520
+ occurrence n.
1521
+ odds n.
1522
+ offering n.
1523
+ offspring n.
1524
+ operational adj.
1525
+ opt v.
1526
+ optical adj.
1527
+ optimism n.
1528
+ oral adj.
1529
+ organizational adj.
1530
+ orientation n.
1531
+ originate v.
1532
+ outbreak n.
1533
+ outing n.
1534
+ outlet n.
1535
+ outlook n.
1536
+ outrage n., v.
1537
+ outsider n.
1538
+ overlook v.
1539
+ overly adv.
1540
+ oversee v.
1541
+ overturn v.
1542
+ overwhelm v.
1543
+ overwhelming adj.
1544
+ pad n.
1545
+ parameter n.
1546
+ parental adj.
1547
+ parish n.
1548
+ parliamentary adj.
1549
+ partial adj.
1550
+ partially adv.
1551
+ passing n.
1552
+ passive adj.
1553
+ pastor n.
1554
+ patch n.
1555
+ patent n.
1556
+ pathway n.
1557
+ patrol n., v.
1558
+ patron n.
1559
+ peak n.
1560
+ peasant n.
1561
+ peculiar adj.
1562
+ persist v.
1563
+ persistent adj.
1564
+ personnel n.
1565
+ petition n.
1566
+ philosopher n.
1567
+ philosophical adj.
1568
+ physician n.
1569
+ pioneer n., v.
1570
+ pipeline n.
1571
+ pirate n.
1572
+ pit n.
1573
+ plea n.
1574
+ plead v.
1575
+ pledge v., n.
1576
+ plug v., n.
1577
+ plunge v.
1578
+ pole n.
1579
+ poll n.
1580
+ pond n.
1581
+ pop v.
1582
+ portfolio n.
1583
+ portray v.
1584
+ postpone v.
1585
+ post-war adj.
1586
+ practitioner n.
1587
+ preach v.
1588
+ precedent n.
1589
+ precision n.
1590
+ predator n.
1591
+ predecessor n.
1592
+ predominantly adv.
1593
+ pregnancy n.
1594
+ prejudice n.
1595
+ preliminary adj.
1596
+ premier n.
1597
+ premise n.
1598
+ premium n.
1599
+ prescribe v.
1600
+ prescription n.
1601
+ presently adv.
1602
+ preservation n.
1603
+ preside v.
1604
+ presidency n.
1605
+ presidential adj.
1606
+ prestigious adj.
1607
+ presumably adv.
1608
+ presume v.
1609
+ prevail v.
1610
+ prevalence n.
1611
+ prevention n.
1612
+ prey n.
1613
+ principal n.
1614
+ privatization n.
1615
+ privilege n.
1616
+ probe n., v.
1617
+ problematic adj.
1618
+ proceedings n.
1619
+ proceeds n.
1620
+ processing n.
1621
+ processor n.
1622
+ proclaim v.
1623
+ productive adj.
1624
+ productivity n.
1625
+ profitable adj.
1626
+ profound adj.
1627
+ projection n.
1628
+ prominent adj.
1629
+ pronounced adj.
1630
+ propaganda n.
1631
+ proposition n.
1632
+ prosecute v.
1633
+ prosecution n.
1634
+ prosecutor n.
1635
+ prospective adj.
1636
+ prosperity n.
1637
+ protective adj.
1638
+ protocol n.
1639
+ province n.
1640
+ provincial adj.
1641
+ provision n.
1642
+ provoke v.
1643
+ psychiatric adj.
1644
+ pulse n.
1645
+ pump v., n.
1646
+ punch n., v.
1647
+ query n.
1648
+ quest n.
1649
+ quota n.
1650
+ radar n.
1651
+ radical adj.
1652
+ rage n.
1653
+ raid n., v.
1654
+ rally n., v.
1655
+ ranking n.
1656
+ rape n., v.
1657
+ ratio n.
1658
+ rational adj.
1659
+ ray n.
1660
+ readily adv.
1661
+ realization n.
1662
+ realm n.
1663
+ rear adj., n.
1664
+ reasoning n.
1665
+ reassure v.
1666
+ rebel n.
1667
+ rebellion n.
1668
+ recipient n.
1669
+ reconstruction n.
1670
+ recount v.
1671
+ referendum n.
1672
+ reflection n.
1673
+ reform n., v.
1674
+ refuge n.
1675
+ refusal n.
1676
+ regain v.
1677
+ regardless adv.
1678
+ regime n.
1679
+ regulator n.
1680
+ regulatory adj.
1681
+ rehabilitation n.
1682
+ reign n., v.
1683
+ rejection n.
1684
+ relevance n.
1685
+ reliability n.
1686
+ reluctant adj.
1687
+ remainder n.
1688
+ remains n.
1689
+ remedy n.
1690
+ reminder n.
1691
+ removal n.
1692
+ render v.
1693
+ renew v.
1694
+ renowned adj.
1695
+ rental n.
1696
+ replacement n.
1697
+ reportedly adv.
1698
+ representation n.
1699
+ reproduce v.
1700
+ reproduction n.
1701
+ republic n.
1702
+ resemble v.
1703
+ reside v.
1704
+ residence n.
1705
+ residential adj.
1706
+ residue n.
1707
+ resignation n.
1708
+ resistance n.
1709
+ respective adj.
1710
+ respectively adv.
1711
+ restoration n.
1712
+ restraint n.
1713
+ resume v.
1714
+ retreat n., v.
1715
+ retrieve v.
1716
+ revelation n.
1717
+ revenge n.
1718
+ reverse v. , n., adj.
1719
+ revival n.
1720
+ revive v.
1721
+ revolutionary adj.
1722
+ rhetoric n.
1723
+ rifle n.
1724
+ riot n.
1725
+ rip v.
1726
+ ritual n.
1727
+ robust adj.
1728
+ rock v.
1729
+ rod n.
1730
+ rotate v.
1731
+ rotation n.
1732
+ ruling n.
1733
+ rumour n.
1734
+ sack v.
1735
+ sacred adj.
1736
+ sacrifice n., v.
1737
+ saint n.
1738
+ sake n.
1739
+ sanction n.
1740
+ say n.
1741
+ scattered adj.
1742
+ sceptical adj.
1743
+ scope n.
1744
+ screw v., n.
1745
+ scrutiny n.
1746
+ seal v., n.
1747
+ secular adj.
1748
+ seemingly adv.
1749
+ segment n.
1750
+ seize v.
1751
+ seldom adv.
1752
+ selective adj.
1753
+ senator n.
1754
+ sensation n.
1755
+ sensitivity n.
1756
+ sentiment n.
1757
+ separation n.
1758
+ serial adj.
1759
+ settlement n.
1760
+ set-up n.
1761
+ sexuality n.
1762
+ shareholder n.
1763
+ shatter v.
1764
+ shed v.
1765
+ sheer adj.
1766
+ shipping n.
1767
+ shoot n.
1768
+ shrink v.
1769
+ shrug v.
1770
+ sigh v., n.
1771
+ simulate v.
1772
+ simulation n.
1773
+ simultaneously adv.
1774
+ sin n.
1775
+ situated adj.
1776
+ sketch n.
1777
+ skip v.
1778
+ slam v.
1779
+ slap v.
1780
+ slash v.
1781
+ slavery n.
1782
+ slot n.
1783
+ smash v.
1784
+ snap v.
1785
+ soak v.
1786
+ soar v.
1787
+ socialist adj.
1788
+ sole adj.
1789
+ solely adv.
1790
+ solicitor n.
1791
+ solidarity n.
1792
+ solo adj., n.
1793
+ sound adj.
1794
+ sovereignty n.
1795
+ spam n.
1796
+ span v., n.
1797
+ spare v.
1798
+ spark v.
1799
+ specialized adj.
1800
+ specification n.
1801
+ specimen n.
1802
+ spectacle n.
1803
+ spectrum n.
1804
+ spell n.
1805
+ sphere n.
1806
+ spin v., n.
1807
+ spine n.
1808
+ spotlight n.
1809
+ spouse n.
1810
+ spy n., v.
1811
+ squad n.
1812
+ squeeze v.
1813
+ stab v.
1814
+ stability n.
1815
+ stabilize v.
1816
+ stake n.
1817
+ standing adj.
1818
+ stark adj.
1819
+ statistical adj.
1820
+ steer v.
1821
+ stem n., v.
1822
+ stereotype n.
1823
+ stimulus n.
1824
+ stir v.
1825
+ storage n.
1826
+ straightforward adj.
1827
+ strain n.
1828
+ strand n.
1829
+ strategic adj.
1830
+ striking adj.
1831
+ strip n.
1832
+ strip v.
1833
+ strive v.
1834
+ structural adj.
1835
+ stumble v.
1836
+ stun v.
1837
+ submission n.
1838
+ subscriber n.
1839
+ subscription n.
1840
+ subsidy n.
1841
+ substantial adj.
1842
+ substantially adv.
1843
+ substitute n., v.
1844
+ substitution n.
1845
+ subtle adj.
1846
+ suburban adj.
1847
+ succession n.
1848
+ successive adj.
1849
+ successor n.
1850
+ suck v.
1851
+ sue v.
1852
+ suicide n.
1853
+ suite n.
1854
+ summit n.
1855
+ superb adj.
1856
+ superior adj.
1857
+ supervise v.
1858
+ supervision n.
1859
+ supervisor n.
1860
+ supplement n., v.
1861
+ supportive adj.
1862
+ supposedly adv.
1863
+ suppress v.
1864
+ supreme adj.
1865
+ surge n., v.
1866
+ surgical adj.
1867
+ surplus n.
1868
+ surrender v.
1869
+ surveillance n.
1870
+ suspension n.
1871
+ suspicion n.
1872
+ suspicious adj.
1873
+ sustain v.
1874
+ swing v., n.
1875
+ sword n.
1876
+ symbolic adj.
1877
+ syndrome n.
1878
+ synthesis n.
1879
+ systematic adj.
1880
+ tackle n.
1881
+ tactic n.
1882
+ tactical adj.
1883
+ taxpayer n.
1884
+ tempt v.
1885
+ tenant n.
1886
+ tender adj.
1887
+ tenure n.
1888
+ terminal adj.
1889
+ terminate v.
1890
+ terrain n.
1891
+ terrific adj.
1892
+ testify v.
1893
+ testimony n.
1894
+ texture n.
1895
+ thankfully adv.
1896
+ theatrical adj.
1897
+ theology n.
1898
+ theoretical adj.
1899
+ thereafter adv.
1900
+ thereby adv.
1901
+ thoughtful adj.
1902
+ thought-provoking adj.
1903
+ thread n.
1904
+ threshold n.
1905
+ thrilled adj.
1906
+ thrive v.
1907
+ tide n.
1908
+ tighten v.
1909
+ timber n.
1910
+ timely adj.
1911
+ tobacco n.
1912
+ tolerance n.
1913
+ tolerate v.
1914
+ toll n.
1915
+ top v.
1916
+ torture n., v.
1917
+ toss v.
1918
+ total v.
1919
+ toxic adj.
1920
+ trace n.
1921
+ trademark n.
1922
+ trail n., v.
1923
+ trailer n.
1924
+ transaction n.
1925
+ transcript n.
1926
+ transformation n.
1927
+ transit n.
1928
+ transmission n.
1929
+ transparency n.
1930
+ transparent adj.
1931
+ trauma n.
1932
+ treaty n.
1933
+ tremendous adj.
1934
+ tribal adj.
1935
+ tribunal n.
1936
+ tribute n.
1937
+ trigger n.
1938
+ trio n.
1939
+ triumph n.
1940
+ trophy n.
1941
+ troubled adj.
1942
+ trustee n.
1943
+ tuition n.
1944
+ turnout n.
1945
+ turnover n.
1946
+ twist v., n.
1947
+ undergraduate n.
1948
+ underlying adj.
1949
+ undermine v.
1950
+ undoubtedly adv.
1951
+ unify v.
1952
+ unprecedented adj.
1953
+ unveil v.
1954
+ upcoming adj.
1955
+ upgrade v., n.
1956
+ uphold v.
1957
+ utility n.
1958
+ utilize v.
1959
+ utterly adv.
1960
+ vacuum n.
1961
+ vague adj.
1962
+ validity n.
1963
+ vanish v.
1964
+ variable n., adj.
1965
+ varied adj.
1966
+ vein n.
1967
+ venture n., v.
1968
+ verbal adj.
1969
+ verdict n.
1970
+ verify v.
1971
+ verse n.
1972
+ versus prep.
1973
+ vessel n.
1974
+ veteran n.
1975
+ viable adj.
1976
+ vibrant adj.
1977
+ vice n.
1978
+ vicious adj.
1979
+ villager n.
1980
+ violate v.
1981
+ violation n.
1982
+ virtue n.
1983
+ vocal adj.
1984
+ vow v.
1985
+ vulnerability n.
1986
+ vulnerable adj.
1987
+ ward n.
1988
+ warehouse n.
1989
+ warfare n.
1990
+ warrant n., v.
1991
+ warrior n.
1992
+ weaken v.
1993
+ weave v.
1994
+ weed n.
1995
+ well n.
1996
+ well-being n.
1997
+ whatsoever adv.
1998
+ whereby adv.
1999
+ whilst conj.
2000
+ whip v.
2001
+ wholly adv.
2002
+ widen v.
2003
+ widow n.
2004
+ width n.
2005
+ willingness n.
2006
+ wipe v.
2007
+ wit n.
2008
+ withdrawal n.
2009
+ workout n.
2010
+ worship n., v.
2011
+ worthwhile adj.
2012
+ worthy adj.
2013
+ yell v.
2014
+ yield n., v.
2015
+ youngster n.
textgames/assets/word_list/oxford_opal_written_single.txt ADDED
@@ -0,0 +1,1199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ activity n.
2
+ affect v.
3
+ analysis n.
4
+ apply v.
5
+ approach n.
6
+ area n.
7
+ associate v.
8
+ available adj.
9
+ based adj.
10
+ behaviour n.
11
+ between prep.
12
+ case n.
13
+ change n., v.
14
+ community n.
15
+ compare v.
16
+ condition n.
17
+ context n.
18
+ country n.
19
+ cultural adj.
20
+ culture n.
21
+ data n.
22
+ define v.
23
+ develop v.
24
+ development n.
25
+ difference n.
26
+ different adj.
27
+ economic adj.
28
+ effect n.
29
+ environment n.
30
+ environmental adj.
31
+ example n.
32
+ factor n.
33
+ form n., v.
34
+ function n., v.
35
+ global adj.
36
+ group n., v.
37
+ growth n.
38
+ high adj.
39
+ human adj.
40
+ identify v.
41
+ important adj.
42
+ increase v., n.
43
+ individual n., adj.
44
+ information n.
45
+ interaction n.
46
+ international adj.
47
+ issue n.
48
+ law n.
49
+ level n.
50
+ likely adj., adv.
51
+ low adj.
52
+ may modal v.
53
+ measure n., v.
54
+ method n.
55
+ model n., v.
56
+ national adj., n.
57
+ number n.
58
+ occur v.
59
+ organization n.
60
+ particular adj., n.
61
+ policy n.
62
+ population n.
63
+ practice n.
64
+ process n., v.
65
+ product n.
66
+ provide v.
67
+ rate n., v.
68
+ reduce v.
69
+ region n.
70
+ relation n.
71
+ relationship n.
72
+ require v.
73
+ research n.
74
+ resource n.
75
+ result n., v.
76
+ risk n.
77
+ role n.
78
+ sample n., v.
79
+ significant adj.
80
+ social adj.
81
+ specific adj.
82
+ state n., v.
83
+ strategy n.
84
+ structure n., v.
85
+ study n., v.
86
+ such det.
87
+ suggest v.
88
+ system n.
89
+ term n., v.
90
+ terms n.
91
+ theory n.
92
+ therefore adv.
93
+ thus adv.
94
+ treatment n.
95
+ type n.
96
+ use n., v.
97
+ value n.
98
+ variable n., adj.
99
+ whether conj.
100
+ within prep.
101
+ application n.
102
+ appropriate adj.
103
+ argue v.
104
+ aspect n.
105
+ assess v.
106
+ assessment n.
107
+ basis n.
108
+ benefit n., v.
109
+ care n.
110
+ category n.
111
+ characteristic n., adj.
112
+ common adj.
113
+ complex adj., n.
114
+ component n.
115
+ concept n.
116
+ consider v.
117
+ control n., v.
118
+ current adj., n.
119
+ decision n.
120
+ definition n.
121
+ demand n.
122
+ depend v.
123
+ describe v.
124
+ determine v.
125
+ discuss v.
126
+ distribution n.
127
+ due adj.
128
+ effective adj.
129
+ element n.
130
+ energy n.
131
+ evidence n.
132
+ examine v.
133
+ exist v.
134
+ extent n.
135
+ finding n.
136
+ generate v.
137
+ however adv.
138
+ identity n.
139
+ impact n., v.
140
+ include v.
141
+ indicate v.
142
+ intervention n.
143
+ involve v.
144
+ key adj.
145
+ knowledge n.
146
+ means n.
147
+ mechanism n.
148
+ nature n.
149
+ negative adj.
150
+ network n.
151
+ observe v.
152
+ often adv.
153
+ outcome n.
154
+ output n.
155
+ participant n.
156
+ pattern n.
157
+ per prep.
158
+ per cent adj., n.
159
+ perspective n.
160
+ physical adj.
161
+ positive adj.
162
+ possible adj.
163
+ potential adj., n.
164
+ pressure n.
165
+ primary adj.
166
+ principle n.
167
+ problem n.
168
+ procedure n.
169
+ produce v.
170
+ production n.
171
+ programme n.
172
+ public adj., n.
173
+ quality n.
174
+ range n., v.
175
+ recent adj.
176
+ refer v.
177
+ related adj.
178
+ relative adj., n.
179
+ relatively adv.
180
+ relevant adj.
181
+ report v., n.
182
+ represent v.
183
+ response n.
184
+ rule n.
185
+ scale n., v.
186
+ section n.
187
+ sector n.
188
+ sequence n.
189
+ show v.
190
+ similar adj.
191
+ site n.
192
+ size n.
193
+ solution n.
194
+ source n.
195
+ technology n.
196
+ test n., v.
197
+ total adj., n.
198
+ unit n.
199
+ variation n.
200
+ whereas conj.
201
+ above adv., adj., n.
202
+ access n., v.
203
+ according to prep.
204
+ achieve v.
205
+ action n.
206
+ additional adj.
207
+ address v.
208
+ analyse v.
209
+ argument n.
210
+ assume v.
211
+ assumption n.
212
+ basic adj.
213
+ central adj.
214
+ communication n.
215
+ conflict n., v.
216
+ consequence n.
217
+ contain v.
218
+ content n.
219
+ contrast n., v.
220
+ criterion n.
221
+ critical adj.
222
+ cycle n.
223
+ decrease v., n.
224
+ demonstrate v.
225
+ derive v.
226
+ differ v.
227
+ direct adj., v.
228
+ discussion n.
229
+ domain n.
230
+ education n.
231
+ ensure v.
232
+ estimate v., n.
233
+ event n.
234
+ experience n., v.
235
+ express v.
236
+ external adj.
237
+ feature n., v.
238
+ flow n., v.
239
+ focus v., n.
240
+ framework n.
241
+ gender n.
242
+ general adj., n.
243
+ generally adv.
244
+ government n.
245
+ hence adv.
246
+ imply v.
247
+ importance n.
248
+ improve v.
249
+ influence v., n.
250
+ input n.
251
+ internal adj.
252
+ interpretation n.
253
+ interview n., v.
254
+ language n.
255
+ legal adj.
256
+ less adv., det., pron.
257
+ limit v., n.
258
+ literature n.
259
+ local adj.
260
+ major adj.
261
+ material n., adj.
262
+ meaning n.
263
+ media n.
264
+ multiple adj.
265
+ necessary adj.
266
+ need n.
267
+ note v.
268
+ obtain v.
269
+ order n.
270
+ overall adj., adv.
271
+ perform v.
272
+ performance n.
273
+ period n.
274
+ phase n.
275
+ present adj., v., n.
276
+ probability n.
277
+ project n., v.
278
+ question n.
279
+ ratio n.
280
+ reaction n.
281
+ reduction n.
282
+ reference n.
283
+ reflect v.
284
+ requirement n.
285
+ researcher n.
286
+ right n.
287
+ service n.
288
+ set n.
289
+ significantly adv.
290
+ society n.
291
+ standard n., adj.
292
+ status n.
293
+ survey n.
294
+ technique n.
295
+ tend v.
296
+ text n.
297
+ traditional adj.
298
+ understanding n.
299
+ useful adj.
300
+ vary v.
301
+ alternative adj., n.
302
+ among prep.
303
+ amount n., v.
304
+ arise v.
305
+ association n.
306
+ average adj., n., v
307
+ belief n.
308
+ capacity n.
309
+ century n.
310
+ certain adj.
311
+ challenge n., v.
312
+ characterize v.
313
+ claim n., v.
314
+ climate n.
315
+ comparison n.
316
+ competition n.
317
+ concern v., n.
318
+ conduct v., n.
319
+ consideration n.
320
+ consist v.
321
+ consistent adj.
322
+ constitute v.
323
+ consumption n.
324
+ create v.
325
+ difficult adj.
326
+ dimension n.
327
+ equal adj., v.
328
+ error n.
329
+ essential adj.
330
+ ethnic adj.
331
+ evaluate v.
332
+ evolution n.
333
+ experiment n.
334
+ explore v.
335
+ field n.
336
+ formation n.
337
+ functional adj.
338
+ fundamental adj.
339
+ goal n.
340
+ history n.
341
+ hypothesis n.
342
+ illustrate v.
343
+ implement v.
344
+ indeed adv.
345
+ independent adj.
346
+ initial adj.
347
+ integration n.
348
+ interpret v.
349
+ item n.
350
+ large adj.
351
+ learning n.
352
+ loss n.
353
+ majority n.
354
+ modern adj.
355
+ moreover adv.
356
+ most det.
357
+ natural adj.
358
+ notion n.
359
+ object n.
360
+ objective n., adj.
361
+ observation n.
362
+ operate v.
363
+ operation n.
364
+ opportunity n.
365
+ origin n.
366
+ particularly adv.
367
+ perceive v.
368
+ phenomenon n.
369
+ point n.
370
+ possibility n.
371
+ power n.
372
+ predict v.
373
+ proportion n.
374
+ protection n.
375
+ purpose n.
376
+ rather adv.
377
+ regard v., n.
378
+ regional adj.
379
+ regulation n.
380
+ representation n.
381
+ respect n.
382
+ respectively adv.
383
+ rise n.
384
+ select v.
385
+ selection n.
386
+ sexual adj.
387
+ similarly adv.
388
+ situation n.
389
+ stage n.
390
+ target n., v.
391
+ theoretical adj.
392
+ tool n.
393
+ transition n.
394
+ trend n.
395
+ typically adv.
396
+ underlying adj.
397
+ variety n.
398
+ various adj.
399
+ view n., v.
400
+ ability n.
401
+ actual adj.
402
+ adopt v.
403
+ advantage n.
404
+ age n.
405
+ agreement n.
406
+ allow v.
407
+ although conj.
408
+ article n.
409
+ attitude n.
410
+ authority n.
411
+ bias n., v.
412
+ broad adj.
413
+ can modal v.
414
+ choice n.
415
+ circumstance n.
416
+ clear adj.
417
+ combination n.
418
+ combine v.
419
+ commonly adv.
420
+ complexity n.
421
+ conclude v.
422
+ conclusion n.
423
+ construct v., n.
424
+ core n.
425
+ debate n.
426
+ degree n.
427
+ design n., v.
428
+ directly adv.
429
+ distinct adj.
430
+ distinction n.
431
+ distinguish v.
432
+ dominant adj.
433
+ efficiency n.
434
+ emerge v.
435
+ emphasis n.
436
+ emphasize v.
437
+ empirical adj.
438
+ enable v.
439
+ enhance v.
440
+ establish v.
441
+ evaluation n.
442
+ exchange n.
443
+ exclude v.
444
+ expectation n.
445
+ explanation n.
446
+ facilitate v.
447
+ fact n.
448
+ failure n.
449
+ female n., adj.
450
+ financial adj.
451
+ further adj.
452
+ future adj., n.
453
+ highly adv.
454
+ implementation n.
455
+ impose v.
456
+ index n.
457
+ indicator n.
458
+ interest n.
459
+ investigate v.
460
+ investigation n.
461
+ judgement n.
462
+ lack n., v.
463
+ limitation n.
464
+ limited adj.
465
+ link v., n.
466
+ location n.
467
+ main adj.
468
+ maintain v.
469
+ male n., adj.
470
+ many det.
471
+ mental adj.
472
+ mode n.
473
+ movement n.
474
+ necessarily adv.
475
+ norm n.
476
+ other adj.
477
+ participation n.
478
+ perception n.
479
+ prevent v.
480
+ prior adj.
481
+ propose v.
482
+ regime n.
483
+ relate v.
484
+ rely v.
485
+ resistance n.
486
+ secondary adj.
487
+ seek v.
488
+ simple adj.
489
+ single adj.
490
+ specifically adv.
491
+ specify v.
492
+ stress n., v.
493
+ subject adj., n., v.
494
+ supply n., v.
495
+ support n., v,
496
+ task n.
497
+ transfer n., v.
498
+ urban adj.
499
+ via prep.
500
+ absence n.
501
+ agent n.
502
+ approximately adv.
503
+ below adv., prep.
504
+ cause v., n.
505
+ chain n.
506
+ channel n.
507
+ clearly adv.
508
+ code n., v.
509
+ conception n.
510
+ constant adj., n.
511
+ constraint n.
512
+ contribute v.
513
+ contribution n.
514
+ correlation n.
515
+ correspond v.
516
+ decade n.
517
+ decline n., v.
518
+ dependent adj.
519
+ detail n.
520
+ detailed adj.
521
+ difficulty n.
522
+ discrimination n.
523
+ diverse adj.
524
+ diversity n.
525
+ divide v.
526
+ early adj.
527
+ educational adj.
528
+ effectively adv.
529
+ effectiveness n.
530
+ effort n.
531
+ employ v.
532
+ entry n.
533
+ ethical adj.
534
+ evolve v.
535
+ existence n.
536
+ expand v.
537
+ expansion n.
538
+ experimental adj.
539
+ extend v.
540
+ force n.
541
+ formal adj.
542
+ furthermore adv.
543
+ gain n., v.
544
+ generation n.
545
+ highlight v.
546
+ identification n.
547
+ image n.
548
+ improvement n.
549
+ including prep.
550
+ induce v.
551
+ inequality n.
552
+ insight n.
553
+ instance n.
554
+ integrate v.
555
+ introduce v.
556
+ maximum adj., n.
557
+ might modal v.
558
+ migration n.
559
+ minority n.
560
+ modify v.
561
+ must modal v.
562
+ new adj.
563
+ offer v.
564
+ option n.
565
+ part n.
566
+ participate v.
567
+ percentage n.
568
+ potentially adv.
569
+ preference n.
570
+ presence n.
571
+ previous adj.
572
+ previously adv.
573
+ primarily adv.
574
+ psychological adj.
575
+ qualitative adj.
576
+ quantity n.
577
+ reasonable adj.
578
+ responsibility n.
579
+ restrict v.
580
+ restriction n.
581
+ science n.
582
+ scope n.
583
+ sense n.
584
+ shift n.
585
+ should modal v.
586
+ significance n.
587
+ space n.
588
+ spatial adj.
589
+ stability n.
590
+ stable adj.
591
+ statement n.
592
+ statistical adj.
593
+ structural adj.
594
+ sufficient adj.
595
+ technological adj.
596
+ treat v.
597
+ violence n.
598
+ welfare n.
599
+ world n.
600
+ act n., v.
601
+ adaptation n.
602
+ aim n., v.
603
+ alter v.
604
+ animal n.
605
+ author n.
606
+ availability n.
607
+ awareness n.
608
+ balance n., v.
609
+ barrier n.
610
+ base n., v.
611
+ capability n.
612
+ commercial adj.
613
+ commitment n.
614
+ composition n.
615
+ consequently adv.
616
+ construction n.
617
+ contemporary adj.
618
+ continuous adj.
619
+ conventional adj.
620
+ cooperation n.
621
+ correlate v.
622
+ corresponding adj.
623
+ crucial adj.
624
+ description n.
625
+ device n.
626
+ duration n.
627
+ dynamic n., adj.
628
+ encourage v.
629
+ entity n.
630
+ equivalent adj., n.
631
+ especially adv.
632
+ essentially adv.
633
+ evolutionary adj.
634
+ examination n.
635
+ exception n.
636
+ exercise n., v.
637
+ expression n.
638
+ facility n.
639
+ federal adj.
640
+ formula n.
641
+ frequently adv.
642
+ gap n.
643
+ incorporate v.
644
+ increasingly adv.
645
+ instrument n.
646
+ intensity n.
647
+ interact v.
648
+ interval n.
649
+ justify v.
650
+ largely adv.
651
+ located adj.
652
+ logic n.
653
+ medical adj.
654
+ monitor v.
655
+ motivation n.
656
+ namely adv.
657
+ online adj.
658
+ orientation n.
659
+ original adj.
660
+ position n., v.
661
+ poverty n.
662
+ prevention n.
663
+ private adj.
664
+ professional n., adj.
665
+ profile n.
666
+ rapid adj.
667
+ rational adj.
668
+ reality n.
669
+ recently adv.
670
+ recognition n.
671
+ recognize v.
672
+ rural adj.
673
+ scenario n.
674
+ second adv.
675
+ security n.
676
+ segment n.
677
+ sex n.
678
+ share v., n.
679
+ skill n.
680
+ software n.
681
+ subsequent adj.
682
+ summarize v.
683
+ survival n.
684
+ systematic adj.
685
+ theme n.
686
+ thereby adv.
687
+ topic n.
688
+ training n.
689
+ transformation n.
690
+ transport n., v.
691
+ typical adj.
692
+ uncertainty n.
693
+ undergo v.
694
+ unique adj.
695
+ universal adj.
696
+ validity n.
697
+ visual adj.
698
+ working n., adj.
699
+ yield v., n.
700
+ absolute adj.
701
+ academic adj., n.
702
+ adapt v.
703
+ adequate adj.
704
+ agricultural adj.
705
+ anxiety n.
706
+ apparent adj.
707
+ arrangement n.
708
+ background n.
709
+ beyond prep.
710
+ burden n.
711
+ causal adj.
712
+ centre n., v.
713
+ classification n.
714
+ classify v.
715
+ column n.
716
+ compete v.
717
+ comprehensive adj.
718
+ comprise v.
719
+ confirm v.
720
+ connect v.
721
+ consensus n.
722
+ consent n.
723
+ correct adj.
724
+ creation n.
725
+ currently adv.
726
+ desire n., v.
727
+ discipline n.
728
+ distribute v.
729
+ document n., v.
730
+ dominate v.
731
+ during prep.
732
+ efficient adj.
733
+ eliminate v.
734
+ emotional adj.
735
+ engage v.
736
+ equally adv.
737
+ exceed v.
738
+ excess n.
739
+ explain v.
740
+ govern v.
741
+ identical adj.
742
+ introduction n.
743
+ involvement n.
744
+ isolated adj.
745
+ latter n.
746
+ line n.
747
+ list v., n.
748
+ maximize v.
749
+ medium n.
750
+ member n.
751
+ minimize v.
752
+ minimum adj., n.
753
+ nevertheless adv.
754
+ normal adj.
755
+ organize v.
756
+ outline v.
757
+ partial adj.
758
+ permit v.
759
+ personal adj.
760
+ practical adj.
761
+ practitioner n.
762
+ priority n.
763
+ promote v.
764
+ promotion n.
765
+ quantitative adj.
766
+ random adj.
767
+ reason n.
768
+ reasoning n.
769
+ reject v.
770
+ responsible adj.
771
+ reveal v.
772
+ root n.
773
+ sampling n.
774
+ satisfy v.
775
+ scheme n.
776
+ separate adj., v.
777
+ separation n.
778
+ shape v., n.
779
+ similarity n.
780
+ simply adv.
781
+ so-called adj.
782
+ solve v.
783
+ substance n.
784
+ sum n.
785
+ sustain v.
786
+ technical adj.
787
+ tendency n.
788
+ transform v.
789
+ transmission n.
790
+ transmit v.
791
+ ultimately adv.
792
+ utility n.
793
+ utilize v.
794
+ variance n.
795
+ version n.
796
+ website n.
797
+ weight n.
798
+ whole n.
799
+ widely adv.
800
+ acceptable adj.
801
+ acceptance n.
802
+ accuracy n.
803
+ accurate adj.
804
+ active adj.
805
+ addition n.
806
+ adjust v.
807
+ adjustment n.
808
+ agenda n.
809
+ avoid v.
810
+ cite v.
811
+ classical adj.
812
+ commit v.
813
+ communicate v.
814
+ comparable adj.
815
+ comparative adj.
816
+ conceptual adj.
817
+ connection n.
818
+ considerable adj.
819
+ contact n.
820
+ coverage n.
821
+ deal v.
822
+ denote v.
823
+ determinant n.
824
+ differentiate v.
825
+ differentiation n.
826
+ digital adj.
827
+ distance n.
828
+ division n.
829
+ ecological adj.
830
+ emergence n.
831
+ ethic n.
832
+ expect v.
833
+ expert n., adj.
834
+ explicit adj.
835
+ explicitly adj.
836
+ extension n.
837
+ extensive adj.
838
+ extreme adj., n.
839
+ fail v.
840
+ flexibility n.
841
+ flexible adj.
842
+ fully adv.
843
+ fund n., v.
844
+ funding n.
845
+ ideal adj., n.
846
+ immediate adj.
847
+ inclusion n.
848
+ indirect adj.
849
+ initially adv.
850
+ initiate v.
851
+ initiative n.
852
+ instruction n.
853
+ intention n.
854
+ label v., n.
855
+ leadership n.
856
+ margin n.
857
+ matter n.
858
+ methodology n.
859
+ mix v.
860
+ mobility n.
861
+ net adj.
862
+ ongoing adj.
863
+ optimal adj.
864
+ ordinary adj.
865
+ parallel adj., n.
866
+ precise adj.
867
+ precisely adv.
868
+ prediction n.
869
+ progress n.
870
+ proposition n.
871
+ protect v.
872
+ race n.
873
+ recommend v.
874
+ record v., n.
875
+ replace v.
876
+ resolution n.
877
+ resolve v.
878
+ review n.
879
+ safety n.
880
+ scientific adj.
881
+ series n.
882
+ specialist n.
883
+ statistic n.
884
+ statistically adv.
885
+ store v.
886
+ strongly adv.
887
+ substantial adj.
888
+ substantially adv.
889
+ successful adj.
890
+ suitable adj.
891
+ summary n.
892
+ threat n.
893
+ threshold n.
894
+ unlikely adj.
895
+ valid adj.
896
+ versus prep.
897
+ vertical adj.
898
+ volume n.
899
+ widespread adj.
900
+ accordingly adv.
901
+ accumulation n.
902
+ acknowledge v.
903
+ acquisition n.
904
+ administrative adj.
905
+ alternatively adv.
906
+ analytical adj.
907
+ annual adj.
908
+ applicable adj.
909
+ assert v.
910
+ assign v.
911
+ attribute n., v.
912
+ beneficial adj.
913
+ conservation n.
914
+ continuity n.
915
+ convention n.
916
+ convert v.
917
+ coordination n.
918
+ dependence n.
919
+ deviation n.
920
+ disadvantage n., v.
921
+ distinctive adj.
922
+ donor n.
923
+ elevate v.
924
+ elsewhere adv.
925
+ encode v.
926
+ encounter v., n.
927
+ ethnicity n.
928
+ evident adj.
929
+ exclusion n.
930
+ exploit v.
931
+ expose v.
932
+ favour v.
933
+ formulation n.
934
+ generalize v.
935
+ geographical adj.
936
+ guidance n.
937
+ harm n.
938
+ hierarchy n.
939
+ horizontal adj.
940
+ independently adv.
941
+ indication n.
942
+ infer v.
943
+ inference n.
944
+ inherent adj.
945
+ integrated adj.
946
+ intermediate adj.
947
+ interviewer n.
948
+ intrinsic adj.
949
+ justification n.
950
+ meaningful adj.
951
+ mediate v.
952
+ methodological adj.
953
+ modelling n.
954
+ motivate v.
955
+ neutral adj.
956
+ novel adj.
957
+ observer n.
958
+ occupation n.
959
+ occurrence n.
960
+ otherwise adv.
961
+ overlap v., n.
962
+ overview n.
963
+ pose v.
964
+ precede v.
965
+ presentation n.
966
+ problematic adj.
967
+ proportional adj.
968
+ protocol n.
969
+ rapidly adv.
970
+ readily adv.
971
+ recovery n.
972
+ regardless of prep.
973
+ reinforce v.
974
+ release n.
975
+ relevance n.
976
+ reliability n.
977
+ reliable adj.
978
+ removal n.
979
+ representative adj., n.
980
+ resident n.
981
+ selective adj.
982
+ sensitive adj.
983
+ simultaneously adv.
984
+ socially adv.
985
+ specialized adj.
986
+ specification n.
987
+ sphere n.
988
+ stimulate v.
989
+ stock n.
990
+ subjective adj.
991
+ substitution n.
992
+ sufficiently adv.
993
+ tension n.
994
+ territory n.
995
+ traditionally adv.
996
+ undertake v.
997
+ upper adj.
998
+ voluntary adj.
999
+ wealth n.
1000
+ abnormal adj.
1001
+ abnormality n.
1002
+ absent adj.
1003
+ accept v.
1004
+ accessible adj.
1005
+ accountability n.
1006
+ achievement n.
1007
+ actively adv.
1008
+ additionally adv.
1009
+ analyst n.
1010
+ appear v.
1011
+ appropriately adv.
1012
+ arguably adv.
1013
+ behave v.
1014
+ beneficiary n.
1015
+ broadly adv.
1016
+ categorize v.
1017
+ character n.
1018
+ characterization n.
1019
+ conceive v.
1020
+ conceptualize v.
1021
+ conditional adj.
1022
+ consistency n.
1023
+ consistently adv.
1024
+ consume v.
1025
+ creative adj.
1026
+ culturally adv.
1027
+ descriptive adj.
1028
+ determination n.
1029
+ differently adv.
1030
+ direction n.
1031
+ dominance n.
1032
+ economically adv.
1033
+ efficacy n.
1034
+ efficiently adv.
1035
+ essence n.
1036
+ estimation n.
1037
+ exclusive adj.
1038
+ exclusively adv.
1039
+ explanatory adj.
1040
+ exploration n.
1041
+ fundamentally adv.
1042
+ generalization n.
1043
+ governmental adj.
1044
+ historically adv.
1045
+ hypothesize v.
1046
+ hypothetical adj.
1047
+ implicit adj.
1048
+ implicitly adv.
1049
+ importantly adv.
1050
+ inappropriate adj.
1051
+ inconsistent adj.
1052
+ independence n.
1053
+ indirectly adv.
1054
+ inform v.
1055
+ informed adj.
1056
+ insufficient adj.
1057
+ integral adj.
1058
+ interactive adj.
1059
+ intervene v.
1060
+ interviewee n.
1061
+ investigator n.
1062
+ leader n.
1063
+ legally adv.
1064
+ localized adj.
1065
+ locally adv.
1066
+ mobile adj.
1067
+ mobilize v.
1068
+ modernity n.
1069
+ modernization n.
1070
+ necessity n.
1071
+ negatively adv.
1072
+ normally adv.
1073
+ operational adj.
1074
+ originally adv.
1075
+ originate v.
1076
+ positively adv.
1077
+ predominantly adv.
1078
+ procedural adj.
1079
+ productive adj.
1080
+ projection n.
1081
+ proposal n.
1082
+ reconstruct v.
1083
+ reconstruction n.
1084
+ recording n.
1085
+ reflection n.
1086
+ remove v.
1087
+ reporting n.
1088
+ respond v.
1089
+ secondly adv.
1090
+ sexuality n.
1091
+ simplify v.
1092
+ societal adj.
1093
+ systematically adv.
1094
+ terminology n.
1095
+ usage n.
1096
+ valuable adj.
1097
+ varied adj.
1098
+ viewer n.
1099
+ wide adj.
1100
+ accumulate v.
1101
+ accurately adv.
1102
+ acquire v.
1103
+ adaptive adj.
1104
+ adequately adv.
1105
+ administer v.
1106
+ administration n.
1107
+ alteration n.
1108
+ approximation n.
1109
+ assertion n.
1110
+ aware adj.
1111
+ capable adj.
1112
+ causation n.
1113
+ centralize v.
1114
+ certainty n.
1115
+ classic adj.
1116
+ conservative adj.
1117
+ conserve v.
1118
+ considerably adv.
1119
+ constrain v.
1120
+ constructive adj.
1121
+ conversion n.
1122
+ cooperative adj.
1123
+ coordinate n., v.
1124
+ correction n.
1125
+ correctly adv.
1126
+ critically adv.
1127
+ criticize v.
1128
+ cumulative adj.
1129
+ desirable adj.
1130
+ empirically adv.
1131
+ empower v.
1132
+ equivalence n.
1133
+ establishment n.
1134
+ excessive adj.
1135
+ exemplify v.
1136
+ expertise n.
1137
+ exploitation n.
1138
+ favourable adj.
1139
+ formulate v.
1140
+ frequent adj.
1141
+ harmful adj.
1142
+ hierarchical adj.
1143
+ ideally adv.
1144
+ inability n.
1145
+ inadequate adj.
1146
+ individually adv.
1147
+ induction n.
1148
+ initiation n.
1149
+ instability n.
1150
+ intend v.
1151
+ intensive adj.
1152
+ irrelevant adj.
1153
+ isolation n.
1154
+ logical adj.
1155
+ migrate v.
1156
+ minimal adj.
1157
+ minor adj.
1158
+ naturally adv.
1159
+ occupy v.
1160
+ orient v.
1161
+ partially adv.
1162
+ partly adv.
1163
+ precision n.
1164
+ progression n.
1165
+ progressive adj.
1166
+ quantify v.
1167
+ randomize v.
1168
+ randomly adv.
1169
+ rating n.
1170
+ rationale n.
1171
+ rationality n.
1172
+ reasonably adv.
1173
+ rejection n.
1174
+ reliance n.
1175
+ replacement n.
1176
+ resistant adj.
1177
+ restrictive adj.
1178
+ satisfaction n.
1179
+ sensory adj.
1180
+ separately adv.
1181
+ simultaneous adj.
1182
+ stabilize v.
1183
+ stimulation n.
1184
+ strength n.
1185
+ strengthen v.
1186
+ substantive adj.
1187
+ substitute v.
1188
+ successfully adv.
1189
+ theoretically adv.
1190
+ transportation n.
1191
+ ultimate adj.
1192
+ unclear adj.
1193
+ undertaking n.
1194
+ unrelated adj.
1195
+ unstable adj.
1196
+ utilization n.
1197
+ validate v.
1198
+ validation n.
1199
+ visible adj.
textgames/assets/word_list/word_list.nltk_words.lower.txt ADDED
The diff for this file is too large to render. See raw diff
 
textgames/assets/word_list/word_list.oxford5k_opal.lower.txt ADDED
@@ -0,0 +1,5060 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ a
2
+ abandon
3
+ ability
4
+ able
5
+ abnormal
6
+ abnormality
7
+ abolish
8
+ abortion
9
+ about
10
+ above
11
+ abroad
12
+ absence
13
+ absent
14
+ absolute
15
+ absolutely
16
+ absorb
17
+ abstract
18
+ absurd
19
+ abundance
20
+ abuse
21
+ academic
22
+ academy
23
+ accelerate
24
+ accent
25
+ accept
26
+ acceptable
27
+ acceptance
28
+ access
29
+ accessible
30
+ accident
31
+ accidentally
32
+ accommodate
33
+ accommodation
34
+ accompany
35
+ accomplish
36
+ accomplishment
37
+ accordance
38
+ according
39
+ accordingly
40
+ account
41
+ accountability
42
+ accountable
43
+ accountant
44
+ accumulate
45
+ accumulation
46
+ accuracy
47
+ accurate
48
+ accurately
49
+ accusation
50
+ accuse
51
+ accused
52
+ achieve
53
+ achievement
54
+ acid
55
+ acknowledge
56
+ acquire
57
+ acquisition
58
+ acre
59
+ across
60
+ act
61
+ action
62
+ activate
63
+ activation
64
+ active
65
+ actively
66
+ activist
67
+ activity
68
+ actor
69
+ actress
70
+ actual
71
+ actually
72
+ acute
73
+ ad
74
+ adapt
75
+ adaptation
76
+ adaptive
77
+ add
78
+ addiction
79
+ addition
80
+ additional
81
+ additionally
82
+ address
83
+ adequate
84
+ adequately
85
+ adhere
86
+ adjacent
87
+ adjust
88
+ adjustment
89
+ administer
90
+ administration
91
+ administrative
92
+ administrator
93
+ admire
94
+ admission
95
+ admit
96
+ adolescent
97
+ adopt
98
+ adoption
99
+ adult
100
+ advance
101
+ advanced
102
+ advantage
103
+ adventure
104
+ adverse
105
+ advertise
106
+ advertisement
107
+ advertising
108
+ advice
109
+ advise
110
+ advocate
111
+ aesthetic
112
+ affair
113
+ affect
114
+ affection
115
+ afford
116
+ affordable
117
+ afraid
118
+ after
119
+ aftermath
120
+ afternoon
121
+ afterwards
122
+ again
123
+ against
124
+ age
125
+ aged
126
+ agency
127
+ agenda
128
+ agent
129
+ aggression
130
+ aggressive
131
+ ago
132
+ agree
133
+ agreement
134
+ agricultural
135
+ agriculture
136
+ ah
137
+ ahead
138
+ aid
139
+ aide
140
+ aids
141
+ aim
142
+ air
143
+ aircraft
144
+ airline
145
+ airport
146
+ alarm
147
+ albeit
148
+ album
149
+ alcohol
150
+ alcoholic
151
+ alert
152
+ alien
153
+ align
154
+ alignment
155
+ alike
156
+ alive
157
+ all
158
+ allegation
159
+ allege
160
+ allegedly
161
+ alliance
162
+ allocate
163
+ allocation
164
+ allow
165
+ allowance
166
+ ally
167
+ almost
168
+ alone
169
+ along
170
+ alongside
171
+ already
172
+ also
173
+ alter
174
+ alteration
175
+ alternative
176
+ alternatively
177
+ although
178
+ altogether
179
+ aluminium
180
+ always
181
+ amateur
182
+ amazed
183
+ amazing
184
+ ambassador
185
+ ambition
186
+ ambitious
187
+ ambulance
188
+ amend
189
+ amendment
190
+ amid
191
+ among
192
+ amount
193
+ amusing
194
+ an
195
+ analogy
196
+ analyse
197
+ analysis
198
+ analyst
199
+ analytical
200
+ ancestor
201
+ anchor
202
+ ancient
203
+ and
204
+ angel
205
+ anger
206
+ angle
207
+ angry
208
+ animal
209
+ animation
210
+ ankle
211
+ anniversary
212
+ announce
213
+ announcement
214
+ annoy
215
+ annoyed
216
+ annoying
217
+ annual
218
+ annually
219
+ anonymous
220
+ another
221
+ answer
222
+ anticipate
223
+ anxiety
224
+ anxious
225
+ any
226
+ anybody
227
+ anyone
228
+ anything
229
+ anyway
230
+ anywhere
231
+ apart
232
+ apartment
233
+ apologize
234
+ apology
235
+ app
236
+ apparatus
237
+ apparent
238
+ apparently
239
+ appeal
240
+ appealing
241
+ appear
242
+ appearance
243
+ appetite
244
+ applaud
245
+ apple
246
+ applicable
247
+ applicant
248
+ application
249
+ apply
250
+ appoint
251
+ appointment
252
+ appreciate
253
+ appreciation
254
+ approach
255
+ appropriate
256
+ appropriately
257
+ approval
258
+ approve
259
+ approximately
260
+ approximation
261
+ april
262
+ arbitrary
263
+ architect
264
+ architectural
265
+ architecture
266
+ archive
267
+ area
268
+ arena
269
+ arguably
270
+ argue
271
+ argument
272
+ arise
273
+ arm
274
+ armed
275
+ arms
276
+ army
277
+ around
278
+ arrange
279
+ arrangement
280
+ array
281
+ arrest
282
+ arrival
283
+ arrive
284
+ arrow
285
+ art
286
+ article
287
+ articulate
288
+ artificial
289
+ artist
290
+ artistic
291
+ artwork
292
+ as
293
+ ash
294
+ ashamed
295
+ aside
296
+ ask
297
+ asleep
298
+ aspect
299
+ aspiration
300
+ aspire
301
+ assassination
302
+ assault
303
+ assemble
304
+ assembly
305
+ assert
306
+ assertion
307
+ assess
308
+ assessment
309
+ asset
310
+ assign
311
+ assignment
312
+ assist
313
+ assistance
314
+ assistant
315
+ associate
316
+ associated
317
+ association
318
+ assume
319
+ assumption
320
+ assurance
321
+ assure
322
+ astonishing
323
+ asylum
324
+ at
325
+ athlete
326
+ atmosphere
327
+ atrocity
328
+ attach
329
+ attachment
330
+ attack
331
+ attain
332
+ attempt
333
+ attend
334
+ attendance
335
+ attention
336
+ attitude
337
+ attorney
338
+ attract
339
+ attraction
340
+ attractive
341
+ attribute
342
+ auction
343
+ audience
344
+ audio
345
+ audit
346
+ august
347
+ aunt
348
+ authentic
349
+ author
350
+ authority
351
+ authorize
352
+ auto
353
+ automatic
354
+ automatically
355
+ autonomy
356
+ autumn
357
+ availability
358
+ available
359
+ average
360
+ avoid
361
+ await
362
+ award
363
+ aware
364
+ awareness
365
+ away
366
+ awful
367
+ awkward
368
+ baby
369
+ back
370
+ backdrop
371
+ background
372
+ backing
373
+ backup
374
+ backwards
375
+ bacteria
376
+ bad
377
+ badge
378
+ badly
379
+ bag
380
+ bail
381
+ bake
382
+ balance
383
+ balanced
384
+ ball
385
+ ballet
386
+ balloon
387
+ ballot
388
+ ban
389
+ banana
390
+ band
391
+ bank
392
+ banner
393
+ bar
394
+ bare
395
+ barely
396
+ bargain
397
+ barrel
398
+ barrier
399
+ base
400
+ baseball
401
+ based
402
+ basement
403
+ basic
404
+ basically
405
+ basis
406
+ basket
407
+ basketball
408
+ bass
409
+ bat
410
+ bath
411
+ bathroom
412
+ battery
413
+ battle
414
+ battlefield
415
+ bay
416
+ be
417
+ beach
418
+ beam
419
+ bean
420
+ bear
421
+ beast
422
+ beat
423
+ beautiful
424
+ beauty
425
+ because
426
+ become
427
+ bed
428
+ bedroom
429
+ bee
430
+ beef
431
+ beer
432
+ before
433
+ beg
434
+ begin
435
+ beginning
436
+ behalf
437
+ behave
438
+ behaviour
439
+ behind
440
+ being
441
+ belief
442
+ believe
443
+ bell
444
+ belong
445
+ beloved
446
+ below
447
+ belt
448
+ bench
449
+ benchmark
450
+ bend
451
+ beneath
452
+ beneficial
453
+ beneficiary
454
+ benefit
455
+ bent
456
+ beside
457
+ besides
458
+ best
459
+ bet
460
+ betray
461
+ better
462
+ between
463
+ beyond
464
+ bias
465
+ bicycle
466
+ bid
467
+ big
468
+ bike
469
+ bill
470
+ billion
471
+ bin
472
+ bind
473
+ biography
474
+ biological
475
+ biology
476
+ bird
477
+ birth
478
+ birthday
479
+ biscuit
480
+ bishop
481
+ bit
482
+ bite
483
+ bitter
484
+ bizarre
485
+ black
486
+ blade
487
+ blame
488
+ blank
489
+ blanket
490
+ blast
491
+ bleed
492
+ blend
493
+ bless
494
+ blessing
495
+ blind
496
+ block
497
+ blog
498
+ blonde
499
+ blood
500
+ blow
501
+ blue
502
+ board
503
+ boast
504
+ boat
505
+ body
506
+ boil
507
+ bold
508
+ bomb
509
+ bombing
510
+ bond
511
+ bone
512
+ bonus
513
+ book
514
+ booking
515
+ boom
516
+ boost
517
+ boot
518
+ border
519
+ bored
520
+ boring
521
+ born
522
+ borrow
523
+ boss
524
+ both
525
+ bother
526
+ bottle
527
+ bottom
528
+ bounce
529
+ bound
530
+ boundary
531
+ bow
532
+ bowl
533
+ box
534
+ boy
535
+ boyfriend
536
+ brain
537
+ branch
538
+ brand
539
+ brave
540
+ breach
541
+ bread
542
+ break
543
+ breakdown
544
+ breakfast
545
+ breakthrough
546
+ breast
547
+ breath
548
+ breathe
549
+ breathing
550
+ breed
551
+ brick
552
+ bride
553
+ bridge
554
+ brief
555
+ briefly
556
+ bright
557
+ brilliant
558
+ bring
559
+ broad
560
+ broadband
561
+ broadcast
562
+ broadcaster
563
+ broadly
564
+ broken
565
+ brother
566
+ brown
567
+ browser
568
+ brush
569
+ brutal
570
+ bubble
571
+ buck
572
+ buddy
573
+ budget
574
+ buffer
575
+ bug
576
+ build
577
+ building
578
+ bulk
579
+ bullet
580
+ bunch
581
+ burden
582
+ bureaucracy
583
+ burial
584
+ burn
585
+ burst
586
+ bury
587
+ bus
588
+ bush
589
+ business
590
+ businessman
591
+ busy
592
+ but
593
+ butter
594
+ button
595
+ buy
596
+ by
597
+ bye
598
+ cabin
599
+ cabinet
600
+ cable
601
+ cafe
602
+ cake
603
+ calculate
604
+ calculation
605
+ call
606
+ calm
607
+ camera
608
+ camp
609
+ campaign
610
+ camping
611
+ campus
612
+ can
613
+ canal
614
+ cancel
615
+ cancer
616
+ candidate
617
+ candle
618
+ cannot
619
+ canvas
620
+ cap
621
+ capability
622
+ capable
623
+ capacity
624
+ capital
625
+ capitalism
626
+ capitalist
627
+ captain
628
+ capture
629
+ car
630
+ carbon
631
+ card
632
+ care
633
+ career
634
+ careful
635
+ carefully
636
+ careless
637
+ cargo
638
+ carpet
639
+ carriage
640
+ carrot
641
+ carry
642
+ cartoon
643
+ carve
644
+ case
645
+ cash
646
+ casino
647
+ cast
648
+ castle
649
+ casual
650
+ casualty
651
+ cat
652
+ catalogue
653
+ catch
654
+ categorize
655
+ category
656
+ cater
657
+ cattle
658
+ causal
659
+ causation
660
+ cause
661
+ caution
662
+ cautious
663
+ cave
664
+ cd
665
+ cease
666
+ ceiling
667
+ celebrate
668
+ celebration
669
+ celebrity
670
+ cell
671
+ cemetery
672
+ cent
673
+ central
674
+ centralize
675
+ centre
676
+ century
677
+ ceremony
678
+ certain
679
+ certainly
680
+ certainty
681
+ certificate
682
+ chain
683
+ chair
684
+ chairman
685
+ challenge
686
+ challenging
687
+ chamber
688
+ champion
689
+ championship
690
+ chance
691
+ change
692
+ channel
693
+ chaos
694
+ chapter
695
+ character
696
+ characteristic
697
+ characterization
698
+ characterize
699
+ charge
700
+ charity
701
+ charm
702
+ charming
703
+ chart
704
+ charter
705
+ chase
706
+ chat
707
+ cheap
708
+ cheat
709
+ check
710
+ cheek
711
+ cheer
712
+ cheerful
713
+ cheese
714
+ chef
715
+ chemical
716
+ chemistry
717
+ chest
718
+ chicken
719
+ chief
720
+ child
721
+ childhood
722
+ chip
723
+ chocolate
724
+ choice
725
+ choir
726
+ choose
727
+ chop
728
+ chronic
729
+ chunk
730
+ church
731
+ cigarette
732
+ cinema
733
+ circle
734
+ circuit
735
+ circulate
736
+ circulation
737
+ circumstance
738
+ cite
739
+ citizen
740
+ citizenship
741
+ city
742
+ civic
743
+ civil
744
+ civilian
745
+ civilization
746
+ claim
747
+ clarify
748
+ clarity
749
+ clash
750
+ class
751
+ classic
752
+ classical
753
+ classification
754
+ classify
755
+ classroom
756
+ clause
757
+ clean
758
+ clear
759
+ clearly
760
+ clerk
761
+ clever
762
+ click
763
+ client
764
+ cliff
765
+ climate
766
+ climb
767
+ cling
768
+ clinic
769
+ clinical
770
+ clip
771
+ clock
772
+ close
773
+ closed
774
+ closely
775
+ closure
776
+ cloth
777
+ clothes
778
+ clothing
779
+ cloud
780
+ club
781
+ clue
782
+ cluster
783
+ coach
784
+ coal
785
+ coalition
786
+ coast
787
+ coastal
788
+ coat
789
+ cocktail
790
+ code
791
+ coffee
792
+ cognitive
793
+ coin
794
+ coincide
795
+ coincidence
796
+ cold
797
+ collaborate
798
+ collaboration
799
+ collapse
800
+ colleague
801
+ collect
802
+ collection
803
+ collective
804
+ collector
805
+ college
806
+ collision
807
+ colonial
808
+ colony
809
+ colour
810
+ coloured
811
+ colourful
812
+ column
813
+ columnist
814
+ combat
815
+ combination
816
+ combine
817
+ come
818
+ comedy
819
+ comfort
820
+ comfortable
821
+ comic
822
+ command
823
+ commander
824
+ commence
825
+ comment
826
+ commentary
827
+ commentator
828
+ commerce
829
+ commercial
830
+ commission
831
+ commissioner
832
+ commit
833
+ commitment
834
+ committee
835
+ commodity
836
+ common
837
+ commonly
838
+ communicate
839
+ communication
840
+ communist
841
+ community
842
+ companion
843
+ company
844
+ comparable
845
+ comparative
846
+ compare
847
+ comparison
848
+ compassion
849
+ compel
850
+ compelling
851
+ compensate
852
+ compensation
853
+ compete
854
+ competence
855
+ competent
856
+ competition
857
+ competitive
858
+ competitor
859
+ compile
860
+ complain
861
+ complaint
862
+ complement
863
+ complete
864
+ completely
865
+ completion
866
+ complex
867
+ complexity
868
+ compliance
869
+ complicated
870
+ complication
871
+ comply
872
+ component
873
+ compose
874
+ composer
875
+ composition
876
+ compound
877
+ comprehensive
878
+ comprise
879
+ compromise
880
+ compulsory
881
+ compute
882
+ computer
883
+ conceal
884
+ concede
885
+ conceive
886
+ concentrate
887
+ concentration
888
+ concept
889
+ conception
890
+ conceptual
891
+ conceptualize
892
+ concern
893
+ concerned
894
+ concert
895
+ concession
896
+ conclude
897
+ conclusion
898
+ concrete
899
+ condemn
900
+ condition
901
+ conditional
902
+ conduct
903
+ confer
904
+ conference
905
+ confess
906
+ confession
907
+ confidence
908
+ confident
909
+ configuration
910
+ confine
911
+ confirm
912
+ confirmation
913
+ conflict
914
+ confront
915
+ confrontation
916
+ confuse
917
+ confused
918
+ confusing
919
+ confusion
920
+ congratulate
921
+ congregation
922
+ congressional
923
+ connect
924
+ connected
925
+ connection
926
+ conquer
927
+ conscience
928
+ conscious
929
+ consciousness
930
+ consecutive
931
+ consensus
932
+ consent
933
+ consequence
934
+ consequently
935
+ conservation
936
+ conservative
937
+ conserve
938
+ consider
939
+ considerable
940
+ considerably
941
+ consideration
942
+ consist
943
+ consistency
944
+ consistent
945
+ consistently
946
+ consolidate
947
+ conspiracy
948
+ constant
949
+ constantly
950
+ constituency
951
+ constitute
952
+ constitution
953
+ constitutional
954
+ constrain
955
+ constraint
956
+ construct
957
+ construction
958
+ constructive
959
+ consult
960
+ consultant
961
+ consultation
962
+ consume
963
+ consumer
964
+ consumption
965
+ contact
966
+ contain
967
+ container
968
+ contemplate
969
+ contemporary
970
+ contempt
971
+ contend
972
+ contender
973
+ content
974
+ contention
975
+ contest
976
+ context
977
+ continent
978
+ continually
979
+ continue
980
+ continuity
981
+ continuous
982
+ contract
983
+ contractor
984
+ contradiction
985
+ contrary
986
+ contrast
987
+ contribute
988
+ contribution
989
+ contributor
990
+ control
991
+ controversial
992
+ controversy
993
+ convenience
994
+ convenient
995
+ convention
996
+ conventional
997
+ conversation
998
+ conversion
999
+ convert
1000
+ convey
1001
+ convict
1002
+ conviction
1003
+ convince
1004
+ convinced
1005
+ convincing
1006
+ cook
1007
+ cooker
1008
+ cooking
1009
+ cool
1010
+ cooperate
1011
+ cooperation
1012
+ cooperative
1013
+ coordinate
1014
+ coordination
1015
+ coordinator
1016
+ cop
1017
+ cope
1018
+ copper
1019
+ copy
1020
+ copyright
1021
+ core
1022
+ corner
1023
+ corporate
1024
+ corporation
1025
+ correct
1026
+ correction
1027
+ correctly
1028
+ correlate
1029
+ correlation
1030
+ correspond
1031
+ correspondence
1032
+ correspondent
1033
+ corresponding
1034
+ corridor
1035
+ corrupt
1036
+ corruption
1037
+ cost
1038
+ costly
1039
+ costume
1040
+ cottage
1041
+ cotton
1042
+ could
1043
+ council
1044
+ councillor
1045
+ counselling
1046
+ counsellor
1047
+ count
1048
+ counter
1049
+ counterpart
1050
+ countless
1051
+ country
1052
+ countryside
1053
+ county
1054
+ coup
1055
+ couple
1056
+ courage
1057
+ course
1058
+ court
1059
+ courtesy
1060
+ cousin
1061
+ cover
1062
+ coverage
1063
+ covered
1064
+ cow
1065
+ crack
1066
+ craft
1067
+ crash
1068
+ crawl
1069
+ crazy
1070
+ cream
1071
+ create
1072
+ creation
1073
+ creative
1074
+ creativity
1075
+ creator
1076
+ creature
1077
+ credibility
1078
+ credible
1079
+ credit
1080
+ creep
1081
+ crew
1082
+ crime
1083
+ criminal
1084
+ crisis
1085
+ criterion
1086
+ critic
1087
+ critical
1088
+ critically
1089
+ criticism
1090
+ criticize
1091
+ critique
1092
+ crop
1093
+ cross
1094
+ crowd
1095
+ crowded
1096
+ crown
1097
+ crucial
1098
+ crude
1099
+ cruel
1100
+ cruise
1101
+ crush
1102
+ cry
1103
+ crystal
1104
+ cue
1105
+ cult
1106
+ cultivate
1107
+ cultural
1108
+ culturally
1109
+ culture
1110
+ cumulative
1111
+ cup
1112
+ cupboard
1113
+ cure
1114
+ curiosity
1115
+ curious
1116
+ curly
1117
+ currency
1118
+ current
1119
+ currently
1120
+ curriculum
1121
+ curtain
1122
+ curve
1123
+ curved
1124
+ custody
1125
+ custom
1126
+ customer
1127
+ cut
1128
+ cute
1129
+ cutting
1130
+ cycle
1131
+ cynical
1132
+ dad
1133
+ daily
1134
+ dairy
1135
+ dam
1136
+ damage
1137
+ damaging
1138
+ dance
1139
+ dancer
1140
+ dancing
1141
+ danger
1142
+ dangerous
1143
+ dare
1144
+ dark
1145
+ darkness
1146
+ data
1147
+ database
1148
+ date
1149
+ daughter
1150
+ dawn
1151
+ day
1152
+ dead
1153
+ deadline
1154
+ deadly
1155
+ deal
1156
+ dealer
1157
+ dear
1158
+ death
1159
+ debate
1160
+ debris
1161
+ debt
1162
+ debut
1163
+ decade
1164
+ december
1165
+ decent
1166
+ decide
1167
+ decision
1168
+ decision-making
1169
+ decisive
1170
+ deck
1171
+ declaration
1172
+ declare
1173
+ decline
1174
+ decorate
1175
+ decoration
1176
+ decrease
1177
+ dedicated
1178
+ dedication
1179
+ deed
1180
+ deem
1181
+ deep
1182
+ deeply
1183
+ default
1184
+ defeat
1185
+ defect
1186
+ defence
1187
+ defend
1188
+ defender
1189
+ defensive
1190
+ deficiency
1191
+ deficit
1192
+ define
1193
+ definite
1194
+ definitely
1195
+ definition
1196
+ defy
1197
+ degree
1198
+ delay
1199
+ delegate
1200
+ delegation
1201
+ delete
1202
+ deliberate
1203
+ deliberately
1204
+ delicate
1205
+ delicious
1206
+ delight
1207
+ delighted
1208
+ deliver
1209
+ delivery
1210
+ demand
1211
+ democracy
1212
+ democratic
1213
+ demon
1214
+ demonstrate
1215
+ demonstration
1216
+ denial
1217
+ denote
1218
+ denounce
1219
+ dense
1220
+ density
1221
+ dentist
1222
+ deny
1223
+ depart
1224
+ department
1225
+ departure
1226
+ depend
1227
+ dependence
1228
+ dependent
1229
+ depict
1230
+ deploy
1231
+ deployment
1232
+ deposit
1233
+ depressed
1234
+ depressing
1235
+ depression
1236
+ deprive
1237
+ depth
1238
+ deputy
1239
+ derive
1240
+ descend
1241
+ descent
1242
+ describe
1243
+ description
1244
+ descriptive
1245
+ desert
1246
+ deserve
1247
+ design
1248
+ designate
1249
+ designer
1250
+ desirable
1251
+ desire
1252
+ desk
1253
+ desktop
1254
+ desperate
1255
+ desperately
1256
+ despite
1257
+ destination
1258
+ destroy
1259
+ destruction
1260
+ destructive
1261
+ detail
1262
+ detailed
1263
+ detain
1264
+ detect
1265
+ detection
1266
+ detective
1267
+ detention
1268
+ deteriorate
1269
+ determinant
1270
+ determination
1271
+ determine
1272
+ determined
1273
+ devastate
1274
+ develop
1275
+ development
1276
+ deviation
1277
+ device
1278
+ devil
1279
+ devise
1280
+ devote
1281
+ diagnose
1282
+ diagnosis
1283
+ diagram
1284
+ dialogue
1285
+ diamond
1286
+ diary
1287
+ dictate
1288
+ dictator
1289
+ dictionary
1290
+ die
1291
+ diet
1292
+ differ
1293
+ difference
1294
+ different
1295
+ differentiate
1296
+ differentiation
1297
+ differently
1298
+ difficult
1299
+ difficulty
1300
+ dig
1301
+ digital
1302
+ dignity
1303
+ dilemma
1304
+ dimension
1305
+ diminish
1306
+ dinner
1307
+ dip
1308
+ diplomat
1309
+ diplomatic
1310
+ direct
1311
+ direction
1312
+ directly
1313
+ director
1314
+ directory
1315
+ dirt
1316
+ dirty
1317
+ disability
1318
+ disabled
1319
+ disadvantage
1320
+ disagree
1321
+ disagreement
1322
+ disappear
1323
+ disappoint
1324
+ disappointed
1325
+ disappointing
1326
+ disappointment
1327
+ disaster
1328
+ disastrous
1329
+ disc
1330
+ discard
1331
+ discharge
1332
+ discipline
1333
+ disclose
1334
+ disclosure
1335
+ discount
1336
+ discourage
1337
+ discourse
1338
+ discover
1339
+ discovery
1340
+ discretion
1341
+ discrimination
1342
+ discuss
1343
+ discussion
1344
+ disease
1345
+ dish
1346
+ dishonest
1347
+ dislike
1348
+ dismiss
1349
+ dismissal
1350
+ disorder
1351
+ displace
1352
+ display
1353
+ disposal
1354
+ dispose
1355
+ dispute
1356
+ disrupt
1357
+ disruption
1358
+ dissolve
1359
+ distance
1360
+ distant
1361
+ distinct
1362
+ distinction
1363
+ distinctive
1364
+ distinguish
1365
+ distort
1366
+ distract
1367
+ distress
1368
+ distribute
1369
+ distribution
1370
+ district
1371
+ disturb
1372
+ disturbing
1373
+ dive
1374
+ diverse
1375
+ diversity
1376
+ divert
1377
+ divide
1378
+ divine
1379
+ division
1380
+ divorce
1381
+ divorced
1382
+ do
1383
+ doctor
1384
+ doctrine
1385
+ document
1386
+ documentary
1387
+ documentation
1388
+ dog
1389
+ dollar
1390
+ domain
1391
+ domestic
1392
+ dominance
1393
+ dominant
1394
+ dominate
1395
+ donate
1396
+ donation
1397
+ donor
1398
+ door
1399
+ dose
1400
+ dot
1401
+ double
1402
+ doubt
1403
+ down
1404
+ download
1405
+ downstairs
1406
+ downtown
1407
+ downwards
1408
+ dozen
1409
+ draft
1410
+ drag
1411
+ drain
1412
+ drama
1413
+ dramatic
1414
+ dramatically
1415
+ draw
1416
+ drawing
1417
+ dream
1418
+ dress
1419
+ dressed
1420
+ drift
1421
+ drink
1422
+ drive
1423
+ driver
1424
+ driving
1425
+ drop
1426
+ drought
1427
+ drown
1428
+ drug
1429
+ drum
1430
+ drunk
1431
+ dry
1432
+ dual
1433
+ dub
1434
+ due
1435
+ dull
1436
+ dumb
1437
+ dump
1438
+ duo
1439
+ duration
1440
+ during
1441
+ dust
1442
+ duty
1443
+ dvd
1444
+ dynamic
1445
+ each
1446
+ eager
1447
+ ear
1448
+ early
1449
+ earn
1450
+ earnings
1451
+ earth
1452
+ earthquake
1453
+ ease
1454
+ easily
1455
+ east
1456
+ eastern
1457
+ easy
1458
+ eat
1459
+ echo
1460
+ ecological
1461
+ economic
1462
+ economically
1463
+ economics
1464
+ economist
1465
+ economy
1466
+ edge
1467
+ edit
1468
+ edition
1469
+ editor
1470
+ editorial
1471
+ educate
1472
+ educated
1473
+ education
1474
+ educational
1475
+ educator
1476
+ effect
1477
+ effective
1478
+ effectively
1479
+ effectiveness
1480
+ efficacy
1481
+ efficiency
1482
+ efficient
1483
+ efficiently
1484
+ effort
1485
+ egg
1486
+ ego
1487
+ eight
1488
+ eighteen
1489
+ eighty
1490
+ either
1491
+ elaborate
1492
+ elbow
1493
+ elderly
1494
+ elect
1495
+ election
1496
+ electoral
1497
+ electric
1498
+ electrical
1499
+ electricity
1500
+ electronic
1501
+ electronics
1502
+ elegant
1503
+ element
1504
+ elementary
1505
+ elephant
1506
+ elevate
1507
+ eleven
1508
+ eligible
1509
+ eliminate
1510
+ elite
1511
+ else
1512
+ elsewhere
1513
+ email
1514
+ embark
1515
+ embarrassed
1516
+ embarrassing
1517
+ embarrassment
1518
+ embassy
1519
+ embed
1520
+ embody
1521
+ embrace
1522
+ emerge
1523
+ emergence
1524
+ emergency
1525
+ emission
1526
+ emotion
1527
+ emotional
1528
+ emotionally
1529
+ emphasis
1530
+ emphasize
1531
+ empire
1532
+ empirical
1533
+ empirically
1534
+ employ
1535
+ employee
1536
+ employer
1537
+ employment
1538
+ empower
1539
+ empty
1540
+ enable
1541
+ enact
1542
+ encode
1543
+ encompass
1544
+ encounter
1545
+ encourage
1546
+ encouragement
1547
+ encouraging
1548
+ end
1549
+ endeavour
1550
+ ending
1551
+ endless
1552
+ endorse
1553
+ endorsement
1554
+ endure
1555
+ enemy
1556
+ energy
1557
+ enforce
1558
+ enforcement
1559
+ engage
1560
+ engaged
1561
+ engagement
1562
+ engaging
1563
+ engine
1564
+ engineer
1565
+ engineering
1566
+ enhance
1567
+ enjoy
1568
+ enjoyable
1569
+ enormous
1570
+ enough
1571
+ enquire
1572
+ enquiry
1573
+ enrich
1574
+ enrol
1575
+ ensue
1576
+ ensure
1577
+ enter
1578
+ enterprise
1579
+ entertain
1580
+ entertaining
1581
+ entertainment
1582
+ enthusiasm
1583
+ enthusiast
1584
+ enthusiastic
1585
+ entire
1586
+ entirely
1587
+ entitle
1588
+ entity
1589
+ entrance
1590
+ entrepreneur
1591
+ entry
1592
+ envelope
1593
+ environment
1594
+ environmental
1595
+ epidemic
1596
+ episode
1597
+ equal
1598
+ equality
1599
+ equally
1600
+ equation
1601
+ equip
1602
+ equipment
1603
+ equivalence
1604
+ equivalent
1605
+ era
1606
+ erect
1607
+ error
1608
+ erupt
1609
+ escalate
1610
+ escape
1611
+ especially
1612
+ essay
1613
+ essence
1614
+ essential
1615
+ essentially
1616
+ establish
1617
+ establishment
1618
+ estate
1619
+ estimate
1620
+ estimation
1621
+ eternal
1622
+ ethic
1623
+ ethical
1624
+ ethnic
1625
+ ethnicity
1626
+ euro
1627
+ evacuate
1628
+ evaluate
1629
+ evaluation
1630
+ even
1631
+ evening
1632
+ event
1633
+ eventually
1634
+ ever
1635
+ every
1636
+ everybody
1637
+ everyday
1638
+ everyone
1639
+ everything
1640
+ everywhere
1641
+ evidence
1642
+ evident
1643
+ evil
1644
+ evoke
1645
+ evolution
1646
+ evolutionary
1647
+ evolve
1648
+ exact
1649
+ exactly
1650
+ exaggerate
1651
+ exam
1652
+ examination
1653
+ examine
1654
+ example
1655
+ exceed
1656
+ excellence
1657
+ excellent
1658
+ except
1659
+ exception
1660
+ exceptional
1661
+ excess
1662
+ excessive
1663
+ exchange
1664
+ excited
1665
+ excitement
1666
+ exciting
1667
+ exclude
1668
+ exclusion
1669
+ exclusive
1670
+ exclusively
1671
+ excuse
1672
+ execute
1673
+ execution
1674
+ executive
1675
+ exemplify
1676
+ exercise
1677
+ exert
1678
+ exhibit
1679
+ exhibition
1680
+ exile
1681
+ exist
1682
+ existence
1683
+ exit
1684
+ exotic
1685
+ expand
1686
+ expansion
1687
+ expect
1688
+ expectation
1689
+ expected
1690
+ expedition
1691
+ expenditure
1692
+ expense
1693
+ expensive
1694
+ experience
1695
+ experienced
1696
+ experiment
1697
+ experimental
1698
+ expert
1699
+ expertise
1700
+ expire
1701
+ explain
1702
+ explanation
1703
+ explanatory
1704
+ explicit
1705
+ explicitly
1706
+ explode
1707
+ exploit
1708
+ exploitation
1709
+ exploration
1710
+ explore
1711
+ explosion
1712
+ explosive
1713
+ export
1714
+ expose
1715
+ exposure
1716
+ express
1717
+ expression
1718
+ extend
1719
+ extension
1720
+ extensive
1721
+ extensively
1722
+ extent
1723
+ external
1724
+ extra
1725
+ extract
1726
+ extraordinary
1727
+ extreme
1728
+ extremely
1729
+ extremist
1730
+ eye
1731
+ fabric
1732
+ fabulous
1733
+ face
1734
+ facilitate
1735
+ facility
1736
+ fact
1737
+ faction
1738
+ factor
1739
+ factory
1740
+ faculty
1741
+ fade
1742
+ fail
1743
+ failed
1744
+ failure
1745
+ fair
1746
+ fairly
1747
+ fairness
1748
+ faith
1749
+ fake
1750
+ fall
1751
+ false
1752
+ fame
1753
+ familiar
1754
+ family
1755
+ famous
1756
+ fan
1757
+ fancy
1758
+ fantastic
1759
+ fantasy
1760
+ far
1761
+ fare
1762
+ farm
1763
+ farmer
1764
+ farming
1765
+ fascinating
1766
+ fashion
1767
+ fashionable
1768
+ fast
1769
+ fasten
1770
+ fat
1771
+ fatal
1772
+ fate
1773
+ father
1774
+ fault
1775
+ favour
1776
+ favourable
1777
+ favourite
1778
+ fear
1779
+ feat
1780
+ feather
1781
+ feature
1782
+ february
1783
+ federal
1784
+ fee
1785
+ feed
1786
+ feedback
1787
+ feel
1788
+ feeling
1789
+ fellow
1790
+ female
1791
+ feminist
1792
+ fence
1793
+ festival
1794
+ fever
1795
+ few
1796
+ fibre
1797
+ fiction
1798
+ field
1799
+ fierce
1800
+ fifteen
1801
+ fifth
1802
+ fifty
1803
+ fight
1804
+ fighting
1805
+ figure
1806
+ file
1807
+ fill
1808
+ film
1809
+ film-maker
1810
+ filter
1811
+ final
1812
+ finally
1813
+ finance
1814
+ financial
1815
+ find
1816
+ finding
1817
+ fine
1818
+ finger
1819
+ finish
1820
+ fire
1821
+ firearm
1822
+ firefighter
1823
+ firework
1824
+ firm
1825
+ firmly
1826
+ first
1827
+ firstly
1828
+ fish
1829
+ fishing
1830
+ fit
1831
+ fitness
1832
+ five
1833
+ fix
1834
+ fixed
1835
+ fixture
1836
+ flag
1837
+ flame
1838
+ flash
1839
+ flat
1840
+ flavour
1841
+ flaw
1842
+ flawed
1843
+ flee
1844
+ fleet
1845
+ flesh
1846
+ flexibility
1847
+ flexible
1848
+ flight
1849
+ float
1850
+ flood
1851
+ floor
1852
+ flour
1853
+ flourish
1854
+ flow
1855
+ flower
1856
+ flu
1857
+ fluid
1858
+ fly
1859
+ flying
1860
+ focus
1861
+ fold
1862
+ folding
1863
+ folk
1864
+ follow
1865
+ following
1866
+ fond
1867
+ food
1868
+ fool
1869
+ foot
1870
+ footage
1871
+ football
1872
+ for
1873
+ forbid
1874
+ force
1875
+ forecast
1876
+ foreign
1877
+ foreigner
1878
+ forest
1879
+ forever
1880
+ forge
1881
+ forget
1882
+ forgive
1883
+ fork
1884
+ form
1885
+ formal
1886
+ format
1887
+ formation
1888
+ former
1889
+ formerly
1890
+ formula
1891
+ formulate
1892
+ formulation
1893
+ forth
1894
+ forthcoming
1895
+ fortunate
1896
+ fortunately
1897
+ fortune
1898
+ forty
1899
+ forum
1900
+ forward
1901
+ fossil
1902
+ foster
1903
+ found
1904
+ foundation
1905
+ founder
1906
+ four
1907
+ fourteen
1908
+ fourth
1909
+ fraction
1910
+ fragile
1911
+ fragment
1912
+ frame
1913
+ framework
1914
+ franchise
1915
+ frankly
1916
+ fraud
1917
+ free
1918
+ freedom
1919
+ freely
1920
+ freeze
1921
+ frequency
1922
+ frequent
1923
+ frequently
1924
+ fresh
1925
+ friday
1926
+ fridge
1927
+ friend
1928
+ friendly
1929
+ friendship
1930
+ frighten
1931
+ frightened
1932
+ frightening
1933
+ frog
1934
+ from
1935
+ front
1936
+ frozen
1937
+ fruit
1938
+ frustrated
1939
+ frustrating
1940
+ frustration
1941
+ fry
1942
+ fuel
1943
+ fulfil
1944
+ full
1945
+ full-time
1946
+ fully
1947
+ fun
1948
+ function
1949
+ functional
1950
+ fund
1951
+ fundamental
1952
+ fundamentally
1953
+ funding
1954
+ fundraising
1955
+ funeral
1956
+ funny
1957
+ fur
1958
+ furious
1959
+ furniture
1960
+ further
1961
+ furthermore
1962
+ future
1963
+ gain
1964
+ gallery
1965
+ gallon
1966
+ gambling
1967
+ game
1968
+ gaming
1969
+ gang
1970
+ gap
1971
+ garage
1972
+ garden
1973
+ gas
1974
+ gate
1975
+ gather
1976
+ gathering
1977
+ gay
1978
+ gaze
1979
+ gear
1980
+ gender
1981
+ gene
1982
+ general
1983
+ generalization
1984
+ generalize
1985
+ generally
1986
+ generate
1987
+ generation
1988
+ generic
1989
+ generous
1990
+ genetic
1991
+ genius
1992
+ genocide
1993
+ genre
1994
+ gentle
1995
+ gentleman
1996
+ genuine
1997
+ genuinely
1998
+ geographical
1999
+ geography
2000
+ gesture
2001
+ get
2002
+ ghost
2003
+ giant
2004
+ gift
2005
+ gig
2006
+ girl
2007
+ girlfriend
2008
+ give
2009
+ glad
2010
+ glance
2011
+ glass
2012
+ glimpse
2013
+ global
2014
+ globalization
2015
+ globe
2016
+ glorious
2017
+ glory
2018
+ glove
2019
+ go
2020
+ goal
2021
+ god
2022
+ gold
2023
+ golden
2024
+ golf
2025
+ good
2026
+ goodbye
2027
+ goodness
2028
+ goods
2029
+ gorgeous
2030
+ govern
2031
+ governance
2032
+ government
2033
+ governmental
2034
+ governor
2035
+ grab
2036
+ grace
2037
+ grade
2038
+ gradually
2039
+ graduate
2040
+ grain
2041
+ grand
2042
+ grandfather
2043
+ grandmother
2044
+ grandparent
2045
+ grant
2046
+ graphic
2047
+ graphics
2048
+ grasp
2049
+ grass
2050
+ grateful
2051
+ grave
2052
+ gravity
2053
+ great
2054
+ greatly
2055
+ green
2056
+ greenhouse
2057
+ greet
2058
+ grey
2059
+ grid
2060
+ grief
2061
+ grin
2062
+ grind
2063
+ grip
2064
+ grocery
2065
+ gross
2066
+ ground
2067
+ group
2068
+ grow
2069
+ growth
2070
+ guarantee
2071
+ guard
2072
+ guerrilla
2073
+ guess
2074
+ guest
2075
+ guidance
2076
+ guide
2077
+ guideline
2078
+ guilt
2079
+ guilty
2080
+ guitar
2081
+ gun
2082
+ gut
2083
+ guy
2084
+ gym
2085
+ habit
2086
+ habitat
2087
+ hail
2088
+ hair
2089
+ half
2090
+ halfway
2091
+ hall
2092
+ halt
2093
+ hand
2094
+ handful
2095
+ handle
2096
+ handling
2097
+ handy
2098
+ hang
2099
+ happen
2100
+ happily
2101
+ happiness
2102
+ happy
2103
+ harassment
2104
+ harbour
2105
+ hard
2106
+ hardly
2107
+ hardware
2108
+ harm
2109
+ harmful
2110
+ harmony
2111
+ harsh
2112
+ harvest
2113
+ hat
2114
+ hate
2115
+ hatred
2116
+ haunt
2117
+ have
2118
+ hazard
2119
+ he
2120
+ head
2121
+ headache
2122
+ headline
2123
+ headquarters
2124
+ heal
2125
+ health
2126
+ healthcare
2127
+ healthy
2128
+ hear
2129
+ hearing
2130
+ heart
2131
+ heat
2132
+ heating
2133
+ heaven
2134
+ heavily
2135
+ heavy
2136
+ heel
2137
+ height
2138
+ heighten
2139
+ helicopter
2140
+ hell
2141
+ hello
2142
+ helmet
2143
+ help
2144
+ helpful
2145
+ hence
2146
+ her
2147
+ herb
2148
+ here
2149
+ heritage
2150
+ hero
2151
+ hers
2152
+ herself
2153
+ hesitate
2154
+ hey
2155
+ hi
2156
+ hidden
2157
+ hide
2158
+ hierarchical
2159
+ hierarchy
2160
+ high
2161
+ high-profile
2162
+ highlight
2163
+ highly
2164
+ highway
2165
+ hilarious
2166
+ hill
2167
+ him
2168
+ himself
2169
+ hint
2170
+ hip
2171
+ hire
2172
+ his
2173
+ historian
2174
+ historic
2175
+ historical
2176
+ historically
2177
+ history
2178
+ hit
2179
+ hobby
2180
+ hockey
2181
+ hold
2182
+ hole
2183
+ holiday
2184
+ hollow
2185
+ holy
2186
+ home
2187
+ homeland
2188
+ homeless
2189
+ homework
2190
+ honest
2191
+ honesty
2192
+ honour
2193
+ hook
2194
+ hope
2195
+ hopeful
2196
+ hopefully
2197
+ horizon
2198
+ horizontal
2199
+ horn
2200
+ horrible
2201
+ horror
2202
+ horse
2203
+ hospital
2204
+ host
2205
+ hostage
2206
+ hostile
2207
+ hostility
2208
+ hot
2209
+ hotel
2210
+ hour
2211
+ house
2212
+ household
2213
+ housing
2214
+ how
2215
+ however
2216
+ huge
2217
+ human
2218
+ humanitarian
2219
+ humanity
2220
+ humble
2221
+ humorous
2222
+ humour
2223
+ hundred
2224
+ hunger
2225
+ hungry
2226
+ hunt
2227
+ hunting
2228
+ hurricane
2229
+ hurry
2230
+ hurt
2231
+ husband
2232
+ hydrogen
2233
+ hypothesis
2234
+ hypothesize
2235
+ hypothetical
2236
+ i
2237
+ ice
2238
+ icon
2239
+ id
2240
+ idea
2241
+ ideal
2242
+ ideally
2243
+ identical
2244
+ identification
2245
+ identify
2246
+ identity
2247
+ ideological
2248
+ ideology
2249
+ idiot
2250
+ if
2251
+ ignorance
2252
+ ignore
2253
+ ill
2254
+ illegal
2255
+ illness
2256
+ illusion
2257
+ illustrate
2258
+ illustration
2259
+ image
2260
+ imagery
2261
+ imaginary
2262
+ imagination
2263
+ imagine
2264
+ immediate
2265
+ immediately
2266
+ immense
2267
+ immigrant
2268
+ immigration
2269
+ imminent
2270
+ immune
2271
+ impact
2272
+ impatient
2273
+ implement
2274
+ implementation
2275
+ implication
2276
+ implicit
2277
+ implicitly
2278
+ imply
2279
+ import
2280
+ importance
2281
+ important
2282
+ importantly
2283
+ impose
2284
+ impossible
2285
+ impress
2286
+ impressed
2287
+ impression
2288
+ impressive
2289
+ imprison
2290
+ imprisonment
2291
+ improve
2292
+ improvement
2293
+ in
2294
+ inability
2295
+ inadequate
2296
+ inappropriate
2297
+ incentive
2298
+ inch
2299
+ incidence
2300
+ incident
2301
+ inclined
2302
+ include
2303
+ included
2304
+ including
2305
+ inclusion
2306
+ income
2307
+ inconsistent
2308
+ incorporate
2309
+ incorrect
2310
+ increase
2311
+ increasingly
2312
+ incredible
2313
+ incredibly
2314
+ incur
2315
+ indeed
2316
+ independence
2317
+ independent
2318
+ independently
2319
+ index
2320
+ indicate
2321
+ indication
2322
+ indicator
2323
+ indictment
2324
+ indigenous
2325
+ indirect
2326
+ indirectly
2327
+ individual
2328
+ individually
2329
+ indoor
2330
+ indoors
2331
+ induce
2332
+ induction
2333
+ indulge
2334
+ industrial
2335
+ industry
2336
+ inequality
2337
+ inevitable
2338
+ inevitably
2339
+ infamous
2340
+ infant
2341
+ infect
2342
+ infection
2343
+ infer
2344
+ inference
2345
+ inflation
2346
+ inflict
2347
+ influence
2348
+ influential
2349
+ info
2350
+ inform
2351
+ informal
2352
+ information
2353
+ informed
2354
+ infrastructure
2355
+ ingredient
2356
+ inhabitant
2357
+ inherent
2358
+ inherit
2359
+ inhibit
2360
+ initial
2361
+ initially
2362
+ initiate
2363
+ initiation
2364
+ initiative
2365
+ inject
2366
+ injection
2367
+ injure
2368
+ injured
2369
+ injury
2370
+ injustice
2371
+ ink
2372
+ inmate
2373
+ inner
2374
+ innocent
2375
+ innovation
2376
+ innovative
2377
+ input
2378
+ insect
2379
+ insert
2380
+ insertion
2381
+ inside
2382
+ insider
2383
+ insight
2384
+ insist
2385
+ inspect
2386
+ inspection
2387
+ inspector
2388
+ inspiration
2389
+ inspire
2390
+ instability
2391
+ install
2392
+ installation
2393
+ instance
2394
+ instant
2395
+ instantly
2396
+ instead
2397
+ instinct
2398
+ institute
2399
+ institution
2400
+ institutional
2401
+ instruct
2402
+ instruction
2403
+ instructor
2404
+ instrument
2405
+ instrumental
2406
+ insufficient
2407
+ insult
2408
+ insurance
2409
+ intact
2410
+ intake
2411
+ integral
2412
+ integrate
2413
+ integrated
2414
+ integration
2415
+ integrity
2416
+ intellectual
2417
+ intelligence
2418
+ intelligent
2419
+ intend
2420
+ intended
2421
+ intense
2422
+ intensify
2423
+ intensity
2424
+ intensive
2425
+ intent
2426
+ intention
2427
+ interact
2428
+ interaction
2429
+ interactive
2430
+ interest
2431
+ interested
2432
+ interesting
2433
+ interface
2434
+ interfere
2435
+ interference
2436
+ interim
2437
+ interior
2438
+ intermediate
2439
+ internal
2440
+ international
2441
+ internet
2442
+ interpret
2443
+ interpretation
2444
+ interrupt
2445
+ interval
2446
+ intervene
2447
+ intervention
2448
+ interview
2449
+ interviewee
2450
+ interviewer
2451
+ intimate
2452
+ into
2453
+ intriguing
2454
+ intrinsic
2455
+ introduce
2456
+ introduction
2457
+ invade
2458
+ invasion
2459
+ invent
2460
+ invention
2461
+ invest
2462
+ investigate
2463
+ investigation
2464
+ investigator
2465
+ investment
2466
+ investor
2467
+ invisible
2468
+ invitation
2469
+ invite
2470
+ invoke
2471
+ involve
2472
+ involved
2473
+ involvement
2474
+ iron
2475
+ ironic
2476
+ ironically
2477
+ irony
2478
+ irrelevant
2479
+ island
2480
+ isolate
2481
+ isolated
2482
+ isolation
2483
+ issue
2484
+ it
2485
+ item
2486
+ its
2487
+ itself
2488
+ jacket
2489
+ jail
2490
+ jam
2491
+ january
2492
+ jazz
2493
+ jeans
2494
+ jet
2495
+ jewellery
2496
+ job
2497
+ join
2498
+ joint
2499
+ joke
2500
+ journal
2501
+ journalism
2502
+ journalist
2503
+ journey
2504
+ joy
2505
+ judge
2506
+ judgement
2507
+ judicial
2508
+ juice
2509
+ july
2510
+ jump
2511
+ junction
2512
+ june
2513
+ junior
2514
+ jurisdiction
2515
+ jury
2516
+ just
2517
+ justice
2518
+ justification
2519
+ justify
2520
+ keen
2521
+ keep
2522
+ key
2523
+ keyboard
2524
+ kick
2525
+ kid
2526
+ kidnap
2527
+ kidney
2528
+ kill
2529
+ killing
2530
+ kilometre
2531
+ kind
2532
+ king
2533
+ kingdom
2534
+ kiss
2535
+ kit
2536
+ kitchen
2537
+ knee
2538
+ knife
2539
+ knock
2540
+ know
2541
+ knowledge
2542
+ lab
2543
+ label
2544
+ laboratory
2545
+ labour
2546
+ lack
2547
+ lad
2548
+ ladder
2549
+ lady
2550
+ lake
2551
+ lamp
2552
+ land
2553
+ landing
2554
+ landlord
2555
+ landmark
2556
+ landscape
2557
+ lane
2558
+ language
2559
+ lap
2560
+ laptop
2561
+ large
2562
+ large-scale
2563
+ largely
2564
+ laser
2565
+ last
2566
+ late
2567
+ lately
2568
+ later
2569
+ latest
2570
+ latter
2571
+ laugh
2572
+ laughter
2573
+ launch
2574
+ law
2575
+ lawn
2576
+ lawsuit
2577
+ lawyer
2578
+ lay
2579
+ layer
2580
+ layout
2581
+ lazy
2582
+ lead
2583
+ leader
2584
+ leadership
2585
+ leading
2586
+ leaf
2587
+ leaflet
2588
+ league
2589
+ leak
2590
+ lean
2591
+ leap
2592
+ learn
2593
+ learning
2594
+ least
2595
+ leather
2596
+ leave
2597
+ lecture
2598
+ left
2599
+ leg
2600
+ legacy
2601
+ legal
2602
+ legally
2603
+ legend
2604
+ legendary
2605
+ legislation
2606
+ legislative
2607
+ legislature
2608
+ legitimate
2609
+ leisure
2610
+ lemon
2611
+ lend
2612
+ length
2613
+ lengthy
2614
+ lens
2615
+ lesbian
2616
+ less
2617
+ lesser
2618
+ lesson
2619
+ let
2620
+ lethal
2621
+ letter
2622
+ level
2623
+ liable
2624
+ liberal
2625
+ liberation
2626
+ liberty
2627
+ library
2628
+ licence
2629
+ license
2630
+ lie
2631
+ life
2632
+ lifelong
2633
+ lifestyle
2634
+ lifetime
2635
+ lift
2636
+ light
2637
+ lighting
2638
+ like
2639
+ likelihood
2640
+ likely
2641
+ likewise
2642
+ limb
2643
+ limit
2644
+ limitation
2645
+ limited
2646
+ line
2647
+ line-up
2648
+ linear
2649
+ linger
2650
+ link
2651
+ lion
2652
+ lip
2653
+ liquid
2654
+ list
2655
+ listen
2656
+ listener
2657
+ listing
2658
+ literacy
2659
+ literally
2660
+ literary
2661
+ literature
2662
+ litre
2663
+ litter
2664
+ little
2665
+ live
2666
+ lively
2667
+ liver
2668
+ living
2669
+ load
2670
+ loan
2671
+ lobby
2672
+ local
2673
+ localized
2674
+ locally
2675
+ locate
2676
+ located
2677
+ location
2678
+ lock
2679
+ log
2680
+ logic
2681
+ logical
2682
+ logo
2683
+ lonely
2684
+ long
2685
+ long-standing
2686
+ long-term
2687
+ long-time
2688
+ look
2689
+ loom
2690
+ loop
2691
+ loose
2692
+ lord
2693
+ lorry
2694
+ lose
2695
+ loss
2696
+ lost
2697
+ lot
2698
+ lottery
2699
+ loud
2700
+ loudly
2701
+ love
2702
+ lovely
2703
+ low
2704
+ lower
2705
+ loyal
2706
+ loyalty
2707
+ luck
2708
+ lucky
2709
+ lunch
2710
+ lung
2711
+ luxury
2712
+ lyric
2713
+ machine
2714
+ machinery
2715
+ mad
2716
+ magazine
2717
+ magic
2718
+ magical
2719
+ magistrate
2720
+ magnetic
2721
+ magnificent
2722
+ magnitude
2723
+ mail
2724
+ main
2725
+ mainland
2726
+ mainly
2727
+ mainstream
2728
+ maintain
2729
+ maintenance
2730
+ major
2731
+ majority
2732
+ make
2733
+ make-up
2734
+ making
2735
+ male
2736
+ mall
2737
+ man
2738
+ manage
2739
+ management
2740
+ manager
2741
+ mandate
2742
+ mandatory
2743
+ manifest
2744
+ manipulate
2745
+ manipulation
2746
+ manner
2747
+ manufacture
2748
+ manufacturing
2749
+ manuscript
2750
+ many
2751
+ map
2752
+ marathon
2753
+ march
2754
+ margin
2755
+ marginal
2756
+ marine
2757
+ mark
2758
+ marker
2759
+ market
2760
+ marketing
2761
+ marketplace
2762
+ marriage
2763
+ married
2764
+ marry
2765
+ martial
2766
+ mask
2767
+ mass
2768
+ massacre
2769
+ massive
2770
+ master
2771
+ match
2772
+ matching
2773
+ mate
2774
+ material
2775
+ mathematical
2776
+ mathematics
2777
+ maths
2778
+ matter
2779
+ mature
2780
+ maximize
2781
+ maximum
2782
+ may
2783
+ maybe
2784
+ mayor
2785
+ me
2786
+ meal
2787
+ mean
2788
+ meaning
2789
+ meaningful
2790
+ means
2791
+ meantime
2792
+ meanwhile
2793
+ measure
2794
+ measurement
2795
+ meat
2796
+ mechanic
2797
+ mechanical
2798
+ mechanism
2799
+ medal
2800
+ media
2801
+ mediate
2802
+ medical
2803
+ medication
2804
+ medicine
2805
+ medieval
2806
+ meditation
2807
+ medium
2808
+ meet
2809
+ meeting
2810
+ melody
2811
+ melt
2812
+ member
2813
+ membership
2814
+ memo
2815
+ memoir
2816
+ memorable
2817
+ memorial
2818
+ memory
2819
+ mental
2820
+ mention
2821
+ mentor
2822
+ menu
2823
+ merchant
2824
+ mercy
2825
+ mere
2826
+ merely
2827
+ merge
2828
+ merger
2829
+ merit
2830
+ mess
2831
+ message
2832
+ metal
2833
+ metaphor
2834
+ method
2835
+ methodological
2836
+ methodology
2837
+ metre
2838
+ middle
2839
+ midnight
2840
+ midst
2841
+ might
2842
+ migrate
2843
+ migration
2844
+ mild
2845
+ mile
2846
+ militant
2847
+ military
2848
+ militia
2849
+ milk
2850
+ mill
2851
+ million
2852
+ mind
2853
+ mine
2854
+ miner
2855
+ mineral
2856
+ minimal
2857
+ minimize
2858
+ minimum
2859
+ mining
2860
+ minister
2861
+ ministry
2862
+ minor
2863
+ minority
2864
+ minute
2865
+ miracle
2866
+ mirror
2867
+ miserable
2868
+ misery
2869
+ misleading
2870
+ miss
2871
+ missile
2872
+ missing
2873
+ mission
2874
+ mistake
2875
+ mix
2876
+ mixed
2877
+ mixture
2878
+ mob
2879
+ mobile
2880
+ mobility
2881
+ mobilize
2882
+ mode
2883
+ model
2884
+ modelling
2885
+ moderate
2886
+ modern
2887
+ modernity
2888
+ modernization
2889
+ modest
2890
+ modification
2891
+ modify
2892
+ moment
2893
+ momentum
2894
+ monday
2895
+ money
2896
+ monitor
2897
+ monk
2898
+ monkey
2899
+ monopoly
2900
+ monster
2901
+ month
2902
+ monthly
2903
+ monument
2904
+ mood
2905
+ moon
2906
+ moral
2907
+ morality
2908
+ more
2909
+ moreover
2910
+ morning
2911
+ mortgage
2912
+ mosque
2913
+ most
2914
+ mostly
2915
+ mother
2916
+ motion
2917
+ motivate
2918
+ motivation
2919
+ motive
2920
+ motor
2921
+ motorcycle
2922
+ motorist
2923
+ mount
2924
+ mountain
2925
+ mouse
2926
+ mouth
2927
+ move
2928
+ movement
2929
+ movie
2930
+ moving
2931
+ much
2932
+ mud
2933
+ multiple
2934
+ multiply
2935
+ mum
2936
+ municipal
2937
+ murder
2938
+ muscle
2939
+ museum
2940
+ music
2941
+ musical
2942
+ musician
2943
+ must
2944
+ mutual
2945
+ my
2946
+ myself
2947
+ mysterious
2948
+ mystery
2949
+ myth
2950
+ nail
2951
+ naked
2952
+ name
2953
+ namely
2954
+ narrative
2955
+ narrow
2956
+ nasty
2957
+ nation
2958
+ national
2959
+ nationwide
2960
+ native
2961
+ natural
2962
+ naturally
2963
+ nature
2964
+ naval
2965
+ navigation
2966
+ near
2967
+ nearby
2968
+ nearly
2969
+ neat
2970
+ necessarily
2971
+ necessary
2972
+ necessity
2973
+ neck
2974
+ need
2975
+ needle
2976
+ negative
2977
+ negatively
2978
+ neglect
2979
+ negotiate
2980
+ negotiation
2981
+ neighbour
2982
+ neighbourhood
2983
+ neighbouring
2984
+ neither
2985
+ nerve
2986
+ nervous
2987
+ nest
2988
+ net
2989
+ network
2990
+ neutral
2991
+ never
2992
+ nevertheless
2993
+ new
2994
+ newly
2995
+ news
2996
+ newsletter
2997
+ newspaper
2998
+ next
2999
+ nice
3000
+ niche
3001
+ night
3002
+ nightmare
3003
+ nine
3004
+ nineteen
3005
+ ninety
3006
+ no
3007
+ noble
3008
+ nobody
3009
+ nod
3010
+ noise
3011
+ noisy
3012
+ nominate
3013
+ nomination
3014
+ nominee
3015
+ non-profit
3016
+ none
3017
+ nonetheless
3018
+ nonsense
3019
+ noon
3020
+ nor
3021
+ norm
3022
+ normal
3023
+ normally
3024
+ north
3025
+ northern
3026
+ nose
3027
+ not
3028
+ notable
3029
+ notably
3030
+ note
3031
+ notebook
3032
+ nothing
3033
+ notice
3034
+ notify
3035
+ notion
3036
+ notorious
3037
+ novel
3038
+ novelist
3039
+ november
3040
+ now
3041
+ nowadays
3042
+ nowhere
3043
+ nuclear
3044
+ number
3045
+ numerous
3046
+ nurse
3047
+ nursery
3048
+ nursing
3049
+ nut
3050
+ nutrition
3051
+ obesity
3052
+ obey
3053
+ object
3054
+ objection
3055
+ objective
3056
+ obligation
3057
+ oblige
3058
+ observation
3059
+ observe
3060
+ observer
3061
+ obsess
3062
+ obsession
3063
+ obstacle
3064
+ obtain
3065
+ obvious
3066
+ obviously
3067
+ occasion
3068
+ occasional
3069
+ occasionally
3070
+ occupation
3071
+ occupy
3072
+ occur
3073
+ occurrence
3074
+ ocean
3075
+ october
3076
+ odd
3077
+ odds
3078
+ of
3079
+ off
3080
+ offence
3081
+ offend
3082
+ offender
3083
+ offensive
3084
+ offer
3085
+ offering
3086
+ office
3087
+ officer
3088
+ official
3089
+ offspring
3090
+ often
3091
+ oh
3092
+ oil
3093
+ ok
3094
+ old
3095
+ old-fashioned
3096
+ on
3097
+ once
3098
+ one
3099
+ ongoing
3100
+ onion
3101
+ online
3102
+ only
3103
+ onto
3104
+ open
3105
+ opening
3106
+ openly
3107
+ opera
3108
+ operate
3109
+ operation
3110
+ operational
3111
+ operator
3112
+ opinion
3113
+ opponent
3114
+ opportunity
3115
+ oppose
3116
+ opposed
3117
+ opposite
3118
+ opposition
3119
+ opt
3120
+ optical
3121
+ optimal
3122
+ optimism
3123
+ optimistic
3124
+ option
3125
+ or
3126
+ oral
3127
+ orange
3128
+ orchestra
3129
+ order
3130
+ ordinary
3131
+ organ
3132
+ organic
3133
+ organization
3134
+ organizational
3135
+ organize
3136
+ organized
3137
+ organizer
3138
+ orient
3139
+ orientation
3140
+ origin
3141
+ original
3142
+ originally
3143
+ originate
3144
+ other
3145
+ otherwise
3146
+ ought
3147
+ our
3148
+ ours
3149
+ ourselves
3150
+ out
3151
+ outbreak
3152
+ outcome
3153
+ outdoor
3154
+ outdoors
3155
+ outer
3156
+ outfit
3157
+ outing
3158
+ outlet
3159
+ outline
3160
+ outlook
3161
+ output
3162
+ outrage
3163
+ outside
3164
+ outsider
3165
+ outstanding
3166
+ oven
3167
+ over
3168
+ overall
3169
+ overcome
3170
+ overlap
3171
+ overlook
3172
+ overly
3173
+ overnight
3174
+ overseas
3175
+ oversee
3176
+ overturn
3177
+ overview
3178
+ overwhelm
3179
+ overwhelming
3180
+ owe
3181
+ own
3182
+ owner
3183
+ ownership
3184
+ oxygen
3185
+ o’clock
3186
+ pace
3187
+ pack
3188
+ package
3189
+ packet
3190
+ pad
3191
+ page
3192
+ pain
3193
+ painful
3194
+ paint
3195
+ painter
3196
+ painting
3197
+ pair
3198
+ palace
3199
+ pale
3200
+ palm
3201
+ pan
3202
+ panel
3203
+ panic
3204
+ pants
3205
+ paper
3206
+ parade
3207
+ paragraph
3208
+ parallel
3209
+ parameter
3210
+ parent
3211
+ parental
3212
+ parish
3213
+ park
3214
+ parking
3215
+ parliament
3216
+ parliamentary
3217
+ part
3218
+ part-time
3219
+ partial
3220
+ partially
3221
+ participant
3222
+ participate
3223
+ participation
3224
+ particular
3225
+ particularly
3226
+ partly
3227
+ partner
3228
+ partnership
3229
+ party
3230
+ pass
3231
+ passage
3232
+ passenger
3233
+ passing
3234
+ passion
3235
+ passionate
3236
+ passive
3237
+ passport
3238
+ password
3239
+ past
3240
+ pastor
3241
+ patch
3242
+ patent
3243
+ path
3244
+ pathway
3245
+ patience
3246
+ patient
3247
+ patrol
3248
+ patron
3249
+ pattern
3250
+ pause
3251
+ pay
3252
+ payment
3253
+ peace
3254
+ peaceful
3255
+ peak
3256
+ peasant
3257
+ peculiar
3258
+ peer
3259
+ pen
3260
+ penalty
3261
+ pencil
3262
+ penny
3263
+ pension
3264
+ people
3265
+ pepper
3266
+ per
3267
+ perceive
3268
+ percentage
3269
+ perception
3270
+ perfect
3271
+ perfectly
3272
+ perform
3273
+ performance
3274
+ perhaps
3275
+ period
3276
+ permanent
3277
+ permanently
3278
+ permission
3279
+ permit
3280
+ persist
3281
+ persistent
3282
+ person
3283
+ personal
3284
+ personality
3285
+ personally
3286
+ personnel
3287
+ perspective
3288
+ persuade
3289
+ pet
3290
+ petition
3291
+ petrol
3292
+ phase
3293
+ phenomenon
3294
+ philosopher
3295
+ philosophical
3296
+ philosophy
3297
+ phone
3298
+ photo
3299
+ photograph
3300
+ photographer
3301
+ photography
3302
+ phrase
3303
+ physical
3304
+ physician
3305
+ physics
3306
+ piano
3307
+ pick
3308
+ picture
3309
+ piece
3310
+ pig
3311
+ pile
3312
+ pill
3313
+ pilot
3314
+ pin
3315
+ pink
3316
+ pioneer
3317
+ pipe
3318
+ pipeline
3319
+ pirate
3320
+ pit
3321
+ pitch
3322
+ pity
3323
+ place
3324
+ placement
3325
+ plain
3326
+ plan
3327
+ plane
3328
+ planet
3329
+ planning
3330
+ plant
3331
+ plastic
3332
+ plate
3333
+ platform
3334
+ play
3335
+ player
3336
+ plea
3337
+ plead
3338
+ pleasant
3339
+ please
3340
+ pleased
3341
+ pleasure
3342
+ pledge
3343
+ plenty
3344
+ plot
3345
+ plug
3346
+ plunge
3347
+ plus
3348
+ pocket
3349
+ poem
3350
+ poet
3351
+ poetry
3352
+ point
3353
+ pointed
3354
+ poison
3355
+ poisonous
3356
+ pole
3357
+ police
3358
+ policeman
3359
+ policy
3360
+ polite
3361
+ political
3362
+ politician
3363
+ politics
3364
+ poll
3365
+ pollution
3366
+ pond
3367
+ pool
3368
+ poor
3369
+ pop
3370
+ popular
3371
+ popularity
3372
+ population
3373
+ port
3374
+ portfolio
3375
+ portion
3376
+ portrait
3377
+ portray
3378
+ pose
3379
+ position
3380
+ positive
3381
+ positively
3382
+ possess
3383
+ possession
3384
+ possibility
3385
+ possible
3386
+ possibly
3387
+ post
3388
+ post-war
3389
+ poster
3390
+ postpone
3391
+ pot
3392
+ potato
3393
+ potential
3394
+ potentially
3395
+ pound
3396
+ pour
3397
+ poverty
3398
+ powder
3399
+ power
3400
+ powerful
3401
+ practical
3402
+ practice
3403
+ practise
3404
+ practitioner
3405
+ praise
3406
+ pray
3407
+ prayer
3408
+ preach
3409
+ precede
3410
+ precedent
3411
+ precious
3412
+ precise
3413
+ precisely
3414
+ precision
3415
+ predator
3416
+ predecessor
3417
+ predict
3418
+ predictable
3419
+ prediction
3420
+ predominantly
3421
+ prefer
3422
+ preference
3423
+ pregnancy
3424
+ pregnant
3425
+ prejudice
3426
+ preliminary
3427
+ premier
3428
+ premise
3429
+ premium
3430
+ preparation
3431
+ prepare
3432
+ prepared
3433
+ prescribe
3434
+ prescription
3435
+ presence
3436
+ present
3437
+ presentation
3438
+ presently
3439
+ preservation
3440
+ preserve
3441
+ preside
3442
+ presidency
3443
+ president
3444
+ presidential
3445
+ press
3446
+ pressure
3447
+ prestigious
3448
+ presumably
3449
+ presume
3450
+ pretend
3451
+ pretty
3452
+ prevail
3453
+ prevalence
3454
+ prevent
3455
+ prevention
3456
+ previous
3457
+ previously
3458
+ prey
3459
+ price
3460
+ pride
3461
+ priest
3462
+ primarily
3463
+ primary
3464
+ prime
3465
+ prince
3466
+ princess
3467
+ principal
3468
+ principle
3469
+ print
3470
+ printer
3471
+ printing
3472
+ prior
3473
+ priority
3474
+ prison
3475
+ prisoner
3476
+ privacy
3477
+ private
3478
+ privatization
3479
+ privilege
3480
+ prize
3481
+ probability
3482
+ probable
3483
+ probably
3484
+ probe
3485
+ problem
3486
+ problematic
3487
+ procedural
3488
+ procedure
3489
+ proceed
3490
+ proceedings
3491
+ proceeds
3492
+ process
3493
+ processing
3494
+ processor
3495
+ proclaim
3496
+ produce
3497
+ producer
3498
+ product
3499
+ production
3500
+ productive
3501
+ productivity
3502
+ profession
3503
+ professional
3504
+ professor
3505
+ profile
3506
+ profit
3507
+ profitable
3508
+ profound
3509
+ program
3510
+ programme
3511
+ programming
3512
+ progress
3513
+ progression
3514
+ progressive
3515
+ prohibit
3516
+ project
3517
+ projection
3518
+ prominent
3519
+ promise
3520
+ promising
3521
+ promote
3522
+ promotion
3523
+ prompt
3524
+ pronounce
3525
+ pronounced
3526
+ proof
3527
+ propaganda
3528
+ proper
3529
+ properly
3530
+ property
3531
+ proportion
3532
+ proportional
3533
+ proposal
3534
+ propose
3535
+ proposition
3536
+ prosecute
3537
+ prosecution
3538
+ prosecutor
3539
+ prospect
3540
+ prospective
3541
+ prosperity
3542
+ protect
3543
+ protection
3544
+ protective
3545
+ protein
3546
+ protest
3547
+ protester
3548
+ protocol
3549
+ proud
3550
+ prove
3551
+ provide
3552
+ province
3553
+ provincial
3554
+ provision
3555
+ provoke
3556
+ psychiatric
3557
+ psychological
3558
+ psychologist
3559
+ psychology
3560
+ pub
3561
+ public
3562
+ publication
3563
+ publicity
3564
+ publish
3565
+ publishing
3566
+ pull
3567
+ pulse
3568
+ pump
3569
+ punch
3570
+ punish
3571
+ punishment
3572
+ punk
3573
+ pupil
3574
+ purchase
3575
+ pure
3576
+ purely
3577
+ purple
3578
+ purpose
3579
+ pursue
3580
+ pursuit
3581
+ push
3582
+ put
3583
+ puzzle
3584
+ qualification
3585
+ qualified
3586
+ qualify
3587
+ qualitative
3588
+ quality
3589
+ quantify
3590
+ quantitative
3591
+ quantity
3592
+ quarter
3593
+ queen
3594
+ query
3595
+ quest
3596
+ question
3597
+ questionnaire
3598
+ queue
3599
+ quick
3600
+ quickly
3601
+ quiet
3602
+ quietly
3603
+ quit
3604
+ quite
3605
+ quota
3606
+ quotation
3607
+ quote
3608
+ race
3609
+ racial
3610
+ racing
3611
+ racism
3612
+ racist
3613
+ radar
3614
+ radiation
3615
+ radical
3616
+ radio
3617
+ rage
3618
+ raid
3619
+ rail
3620
+ railway
3621
+ rain
3622
+ raise
3623
+ rally
3624
+ random
3625
+ randomize
3626
+ randomly
3627
+ range
3628
+ rank
3629
+ ranking
3630
+ rape
3631
+ rapid
3632
+ rapidly
3633
+ rare
3634
+ rarely
3635
+ rat
3636
+ rate
3637
+ rather
3638
+ rating
3639
+ ratio
3640
+ rational
3641
+ rationale
3642
+ rationality
3643
+ raw
3644
+ ray
3645
+ reach
3646
+ react
3647
+ reaction
3648
+ read
3649
+ reader
3650
+ readily
3651
+ reading
3652
+ ready
3653
+ real
3654
+ realistic
3655
+ reality
3656
+ realization
3657
+ realize
3658
+ really
3659
+ realm
3660
+ rear
3661
+ reason
3662
+ reasonable
3663
+ reasonably
3664
+ reasoning
3665
+ reassure
3666
+ rebel
3667
+ rebellion
3668
+ rebuild
3669
+ recall
3670
+ receipt
3671
+ receive
3672
+ receiver
3673
+ recent
3674
+ recently
3675
+ reception
3676
+ recession
3677
+ recipe
3678
+ recipient
3679
+ reckon
3680
+ recognition
3681
+ recognize
3682
+ recommend
3683
+ recommendation
3684
+ reconstruct
3685
+ reconstruction
3686
+ record
3687
+ recording
3688
+ recount
3689
+ recover
3690
+ recovery
3691
+ recruit
3692
+ recruitment
3693
+ recycle
3694
+ red
3695
+ reduce
3696
+ reduction
3697
+ refer
3698
+ referee
3699
+ reference
3700
+ referendum
3701
+ reflect
3702
+ reflection
3703
+ reform
3704
+ refuge
3705
+ refugee
3706
+ refusal
3707
+ refuse
3708
+ regain
3709
+ regard
3710
+ regardless
3711
+ regime
3712
+ region
3713
+ regional
3714
+ register
3715
+ registration
3716
+ regret
3717
+ regular
3718
+ regularly
3719
+ regulate
3720
+ regulation
3721
+ regulator
3722
+ regulatory
3723
+ rehabilitation
3724
+ reign
3725
+ reinforce
3726
+ reject
3727
+ rejection
3728
+ relate
3729
+ related
3730
+ relation
3731
+ relationship
3732
+ relative
3733
+ relatively
3734
+ relax
3735
+ relaxed
3736
+ relaxing
3737
+ release
3738
+ relevance
3739
+ relevant
3740
+ reliability
3741
+ reliable
3742
+ reliance
3743
+ relief
3744
+ relieve
3745
+ relieved
3746
+ religion
3747
+ religious
3748
+ reluctant
3749
+ rely
3750
+ remain
3751
+ remainder
3752
+ remains
3753
+ remark
3754
+ remarkable
3755
+ remarkably
3756
+ remedy
3757
+ remember
3758
+ remind
3759
+ reminder
3760
+ remote
3761
+ removal
3762
+ remove
3763
+ render
3764
+ renew
3765
+ renowned
3766
+ rent
3767
+ rental
3768
+ repair
3769
+ repeat
3770
+ repeated
3771
+ replace
3772
+ replacement
3773
+ reply
3774
+ report
3775
+ reportedly
3776
+ reporter
3777
+ reporting
3778
+ represent
3779
+ representation
3780
+ representative
3781
+ reproduce
3782
+ reproduction
3783
+ republic
3784
+ reputation
3785
+ request
3786
+ require
3787
+ requirement
3788
+ rescue
3789
+ research
3790
+ researcher
3791
+ resemble
3792
+ reservation
3793
+ reserve
3794
+ reside
3795
+ residence
3796
+ resident
3797
+ residential
3798
+ residue
3799
+ resign
3800
+ resignation
3801
+ resist
3802
+ resistance
3803
+ resistant
3804
+ resolution
3805
+ resolve
3806
+ resort
3807
+ resource
3808
+ respect
3809
+ respective
3810
+ respectively
3811
+ respond
3812
+ response
3813
+ responsibility
3814
+ responsible
3815
+ rest
3816
+ restaurant
3817
+ restoration
3818
+ restore
3819
+ restraint
3820
+ restrict
3821
+ restriction
3822
+ restrictive
3823
+ result
3824
+ resume
3825
+ retail
3826
+ retain
3827
+ retire
3828
+ retired
3829
+ retirement
3830
+ retreat
3831
+ retrieve
3832
+ return
3833
+ reveal
3834
+ revelation
3835
+ revenge
3836
+ revenue
3837
+ reverse
3838
+ review
3839
+ revise
3840
+ revision
3841
+ revival
3842
+ revive
3843
+ revolution
3844
+ revolutionary
3845
+ reward
3846
+ rhetoric
3847
+ rhythm
3848
+ rice
3849
+ rich
3850
+ rid
3851
+ ride
3852
+ ridiculous
3853
+ rifle
3854
+ right
3855
+ ring
3856
+ riot
3857
+ rip
3858
+ rise
3859
+ risk
3860
+ risky
3861
+ ritual
3862
+ rival
3863
+ river
3864
+ road
3865
+ rob
3866
+ robbery
3867
+ robot
3868
+ robust
3869
+ rock
3870
+ rocket
3871
+ rod
3872
+ role
3873
+ roll
3874
+ romance
3875
+ romantic
3876
+ roof
3877
+ room
3878
+ root
3879
+ rope
3880
+ rose
3881
+ rotate
3882
+ rotation
3883
+ rough
3884
+ roughly
3885
+ round
3886
+ route
3887
+ routine
3888
+ row
3889
+ royal
3890
+ rub
3891
+ rubber
3892
+ rubbish
3893
+ rude
3894
+ rugby
3895
+ ruin
3896
+ rule
3897
+ ruling
3898
+ rumour
3899
+ run
3900
+ runner
3901
+ running
3902
+ rural
3903
+ rush
3904
+ sack
3905
+ sacred
3906
+ sacrifice
3907
+ sad
3908
+ sadly
3909
+ safe
3910
+ safety
3911
+ sail
3912
+ sailing
3913
+ sailor
3914
+ saint
3915
+ sake
3916
+ salad
3917
+ salary
3918
+ sale
3919
+ salt
3920
+ same
3921
+ sample
3922
+ sampling
3923
+ sanction
3924
+ sand
3925
+ sandwich
3926
+ satellite
3927
+ satisfaction
3928
+ satisfied
3929
+ satisfy
3930
+ saturday
3931
+ sauce
3932
+ save
3933
+ saving
3934
+ say
3935
+ scale
3936
+ scan
3937
+ scandal
3938
+ scare
3939
+ scared
3940
+ scary
3941
+ scattered
3942
+ scenario
3943
+ scene
3944
+ sceptical
3945
+ schedule
3946
+ scheme
3947
+ scholar
3948
+ scholarship
3949
+ school
3950
+ science
3951
+ scientific
3952
+ scientist
3953
+ scope
3954
+ score
3955
+ scratch
3956
+ scream
3957
+ screen
3958
+ screening
3959
+ screw
3960
+ script
3961
+ scrutiny
3962
+ sculpture
3963
+ sea
3964
+ seal
3965
+ search
3966
+ season
3967
+ seat
3968
+ second
3969
+ secondary
3970
+ secondly
3971
+ secret
3972
+ secretary
3973
+ section
3974
+ sector
3975
+ secular
3976
+ secure
3977
+ security
3978
+ see
3979
+ seed
3980
+ seek
3981
+ seeker
3982
+ seem
3983
+ seemingly
3984
+ segment
3985
+ seize
3986
+ seldom
3987
+ select
3988
+ selection
3989
+ selective
3990
+ self
3991
+ sell
3992
+ seminar
3993
+ senator
3994
+ send
3995
+ senior
3996
+ sensation
3997
+ sense
3998
+ sensible
3999
+ sensitive
4000
+ sensitivity
4001
+ sensory
4002
+ sentence
4003
+ sentiment
4004
+ separate
4005
+ separately
4006
+ separation
4007
+ september
4008
+ sequence
4009
+ serial
4010
+ series
4011
+ serious
4012
+ seriously
4013
+ servant
4014
+ serve
4015
+ service
4016
+ session
4017
+ set
4018
+ set-up
4019
+ setting
4020
+ settle
4021
+ settlement
4022
+ settler
4023
+ seven
4024
+ seventeen
4025
+ seventy
4026
+ several
4027
+ severe
4028
+ severely
4029
+ sex
4030
+ sexual
4031
+ sexuality
4032
+ sexy
4033
+ shade
4034
+ shadow
4035
+ shake
4036
+ shall
4037
+ shallow
4038
+ shame
4039
+ shape
4040
+ shaped
4041
+ share
4042
+ shareholder
4043
+ sharp
4044
+ shatter
4045
+ she
4046
+ shed
4047
+ sheep
4048
+ sheer
4049
+ sheet
4050
+ shelf
4051
+ shell
4052
+ shelter
4053
+ shift
4054
+ shine
4055
+ shiny
4056
+ ship
4057
+ shipping
4058
+ shirt
4059
+ shock
4060
+ shocked
4061
+ shocking
4062
+ shoe
4063
+ shoot
4064
+ shooting
4065
+ shop
4066
+ shopping
4067
+ shore
4068
+ short
4069
+ short-term
4070
+ shortage
4071
+ shortly
4072
+ shot
4073
+ should
4074
+ shoulder
4075
+ shout
4076
+ show
4077
+ shower
4078
+ shrink
4079
+ shrug
4080
+ shut
4081
+ shy
4082
+ sibling
4083
+ sick
4084
+ side
4085
+ sigh
4086
+ sight
4087
+ sign
4088
+ signal
4089
+ signature
4090
+ significance
4091
+ significant
4092
+ significantly
4093
+ silence
4094
+ silent
4095
+ silk
4096
+ silly
4097
+ silver
4098
+ similar
4099
+ similarity
4100
+ similarly
4101
+ simple
4102
+ simplify
4103
+ simply
4104
+ simulate
4105
+ simulation
4106
+ simultaneous
4107
+ simultaneously
4108
+ sin
4109
+ since
4110
+ sincere
4111
+ sing
4112
+ singer
4113
+ singing
4114
+ single
4115
+ sink
4116
+ sir
4117
+ sister
4118
+ sit
4119
+ site
4120
+ situated
4121
+ situation
4122
+ six
4123
+ sixteen
4124
+ sixty
4125
+ size
4126
+ sketch
4127
+ ski
4128
+ skiing
4129
+ skill
4130
+ skilled
4131
+ skin
4132
+ skip
4133
+ skirt
4134
+ skull
4135
+ sky
4136
+ slam
4137
+ slap
4138
+ slash
4139
+ slave
4140
+ slavery
4141
+ sleep
4142
+ slice
4143
+ slide
4144
+ slight
4145
+ slightly
4146
+ slip
4147
+ slogan
4148
+ slope
4149
+ slot
4150
+ slow
4151
+ slowly
4152
+ small
4153
+ smart
4154
+ smartphone
4155
+ smash
4156
+ smell
4157
+ smile
4158
+ smoke
4159
+ smoking
4160
+ smooth
4161
+ snake
4162
+ snap
4163
+ snow
4164
+ so
4165
+ so-called
4166
+ soak
4167
+ soap
4168
+ soar
4169
+ soccer
4170
+ social
4171
+ socialist
4172
+ socially
4173
+ societal
4174
+ society
4175
+ sock
4176
+ soft
4177
+ software
4178
+ soil
4179
+ solar
4180
+ soldier
4181
+ sole
4182
+ solely
4183
+ solicitor
4184
+ solid
4185
+ solidarity
4186
+ solo
4187
+ solution
4188
+ solve
4189
+ some
4190
+ somebody
4191
+ somehow
4192
+ someone
4193
+ something
4194
+ sometime
4195
+ sometimes
4196
+ somewhat
4197
+ somewhere
4198
+ son
4199
+ song
4200
+ soon
4201
+ sophisticated
4202
+ sorry
4203
+ sort
4204
+ soul
4205
+ sound
4206
+ soup
4207
+ source
4208
+ south
4209
+ southern
4210
+ sovereignty
4211
+ space
4212
+ spam
4213
+ span
4214
+ spare
4215
+ spark
4216
+ spatial
4217
+ speak
4218
+ speaker
4219
+ special
4220
+ specialist
4221
+ specialize
4222
+ specialized
4223
+ species
4224
+ specific
4225
+ specifically
4226
+ specification
4227
+ specify
4228
+ specimen
4229
+ spectacle
4230
+ spectacular
4231
+ spectator
4232
+ spectrum
4233
+ speculate
4234
+ speculation
4235
+ speech
4236
+ speed
4237
+ spell
4238
+ spelling
4239
+ spend
4240
+ spending
4241
+ sphere
4242
+ spice
4243
+ spicy
4244
+ spider
4245
+ spill
4246
+ spin
4247
+ spine
4248
+ spirit
4249
+ spiritual
4250
+ spite
4251
+ split
4252
+ spoil
4253
+ spoken
4254
+ spokesman
4255
+ spokesperson
4256
+ spokeswoman
4257
+ sponsor
4258
+ sponsorship
4259
+ spoon
4260
+ sport
4261
+ sporting
4262
+ spot
4263
+ spotlight
4264
+ spouse
4265
+ spread
4266
+ spring
4267
+ spy
4268
+ squad
4269
+ square
4270
+ squeeze
4271
+ stab
4272
+ stability
4273
+ stabilize
4274
+ stable
4275
+ stadium
4276
+ staff
4277
+ stage
4278
+ stair
4279
+ stake
4280
+ stall
4281
+ stamp
4282
+ stance
4283
+ stand
4284
+ standard
4285
+ standing
4286
+ star
4287
+ stare
4288
+ stark
4289
+ start
4290
+ starve
4291
+ state
4292
+ statement
4293
+ station
4294
+ statistic
4295
+ statistical
4296
+ statistically
4297
+ statue
4298
+ status
4299
+ stay
4300
+ steadily
4301
+ steady
4302
+ steal
4303
+ steam
4304
+ steel
4305
+ steep
4306
+ steer
4307
+ stem
4308
+ step
4309
+ stereotype
4310
+ stick
4311
+ sticky
4312
+ stiff
4313
+ still
4314
+ stimulate
4315
+ stimulation
4316
+ stimulus
4317
+ stir
4318
+ stock
4319
+ stomach
4320
+ stone
4321
+ stop
4322
+ storage
4323
+ store
4324
+ storm
4325
+ story
4326
+ straight
4327
+ straightforward
4328
+ strain
4329
+ strand
4330
+ strange
4331
+ stranger
4332
+ strategic
4333
+ strategy
4334
+ stream
4335
+ street
4336
+ strength
4337
+ strengthen
4338
+ stress
4339
+ stretch
4340
+ strict
4341
+ strictly
4342
+ strike
4343
+ striking
4344
+ string
4345
+ strip
4346
+ strive
4347
+ stroke
4348
+ strong
4349
+ strongly
4350
+ structural
4351
+ structure
4352
+ struggle
4353
+ student
4354
+ studio
4355
+ study
4356
+ stuff
4357
+ stumble
4358
+ stun
4359
+ stunning
4360
+ stupid
4361
+ style
4362
+ subject
4363
+ subjective
4364
+ submission
4365
+ submit
4366
+ subscriber
4367
+ subscription
4368
+ subsequent
4369
+ subsequently
4370
+ subsidy
4371
+ substance
4372
+ substantial
4373
+ substantially
4374
+ substantive
4375
+ substitute
4376
+ substitution
4377
+ subtle
4378
+ suburb
4379
+ suburban
4380
+ succeed
4381
+ success
4382
+ successful
4383
+ successfully
4384
+ succession
4385
+ successive
4386
+ successor
4387
+ such
4388
+ suck
4389
+ sudden
4390
+ suddenly
4391
+ sue
4392
+ suffer
4393
+ suffering
4394
+ sufficient
4395
+ sufficiently
4396
+ sugar
4397
+ suggest
4398
+ suggestion
4399
+ suicide
4400
+ suit
4401
+ suitable
4402
+ suite
4403
+ sum
4404
+ summarize
4405
+ summary
4406
+ summer
4407
+ summit
4408
+ sun
4409
+ sunday
4410
+ super
4411
+ superb
4412
+ superior
4413
+ supermarket
4414
+ supervise
4415
+ supervision
4416
+ supervisor
4417
+ supplement
4418
+ supply
4419
+ support
4420
+ supporter
4421
+ supportive
4422
+ suppose
4423
+ supposedly
4424
+ suppress
4425
+ supreme
4426
+ sure
4427
+ surely
4428
+ surface
4429
+ surge
4430
+ surgeon
4431
+ surgery
4432
+ surgical
4433
+ surplus
4434
+ surprise
4435
+ surprised
4436
+ surprising
4437
+ surrender
4438
+ surround
4439
+ surrounding
4440
+ surveillance
4441
+ survey
4442
+ survival
4443
+ survive
4444
+ survivor
4445
+ suspect
4446
+ suspend
4447
+ suspension
4448
+ suspicion
4449
+ suspicious
4450
+ sustain
4451
+ sustainable
4452
+ swallow
4453
+ swear
4454
+ sweater
4455
+ sweep
4456
+ sweet
4457
+ swim
4458
+ swimming
4459
+ swing
4460
+ switch
4461
+ sword
4462
+ symbol
4463
+ symbolic
4464
+ sympathetic
4465
+ sympathy
4466
+ symptom
4467
+ syndrome
4468
+ synthesis
4469
+ system
4470
+ systematic
4471
+ systematically
4472
+ t-shirt
4473
+ table
4474
+ tablet
4475
+ tackle
4476
+ tactic
4477
+ tactical
4478
+ tag
4479
+ tail
4480
+ take
4481
+ tale
4482
+ talent
4483
+ talented
4484
+ talk
4485
+ tall
4486
+ tank
4487
+ tap
4488
+ tape
4489
+ target
4490
+ task
4491
+ taste
4492
+ tax
4493
+ taxi
4494
+ taxpayer
4495
+ tea
4496
+ teach
4497
+ teacher
4498
+ teaching
4499
+ team
4500
+ tear
4501
+ technical
4502
+ technique
4503
+ technological
4504
+ technology
4505
+ teenage
4506
+ teenager
4507
+ teens
4508
+ telephone
4509
+ television
4510
+ tell
4511
+ temperature
4512
+ temple
4513
+ temporarily
4514
+ temporary
4515
+ tempt
4516
+ ten
4517
+ tenant
4518
+ tend
4519
+ tendency
4520
+ tender
4521
+ tennis
4522
+ tension
4523
+ tent
4524
+ tenure
4525
+ term
4526
+ terminal
4527
+ terminate
4528
+ terminology
4529
+ terms
4530
+ terrain
4531
+ terrible
4532
+ terribly
4533
+ terrific
4534
+ terrify
4535
+ territory
4536
+ terror
4537
+ terrorism
4538
+ terrorist
4539
+ test
4540
+ testify
4541
+ testimony
4542
+ testing
4543
+ text
4544
+ textbook
4545
+ texture
4546
+ than
4547
+ thank
4548
+ thankfully
4549
+ thanks
4550
+ that
4551
+ the
4552
+ theatre
4553
+ theatrical
4554
+ theft
4555
+ their
4556
+ theirs
4557
+ them
4558
+ theme
4559
+ themselves
4560
+ then
4561
+ theology
4562
+ theoretical
4563
+ theoretically
4564
+ theory
4565
+ therapist
4566
+ therapy
4567
+ there
4568
+ thereafter
4569
+ thereby
4570
+ therefore
4571
+ thesis
4572
+ they
4573
+ thick
4574
+ thief
4575
+ thin
4576
+ thing
4577
+ think
4578
+ thinking
4579
+ third
4580
+ thirsty
4581
+ thirteen
4582
+ thirty
4583
+ this
4584
+ thorough
4585
+ thoroughly
4586
+ though
4587
+ thought
4588
+ thought-provoking
4589
+ thoughtful
4590
+ thousand
4591
+ thread
4592
+ threat
4593
+ threaten
4594
+ three
4595
+ threshold
4596
+ thrilled
4597
+ thrive
4598
+ throat
4599
+ through
4600
+ throughout
4601
+ throw
4602
+ thumb
4603
+ thursday
4604
+ thus
4605
+ ticket
4606
+ tide
4607
+ tidy
4608
+ tie
4609
+ tight
4610
+ tighten
4611
+ till
4612
+ timber
4613
+ time
4614
+ timely
4615
+ timing
4616
+ tin
4617
+ tiny
4618
+ tip
4619
+ tired
4620
+ tissue
4621
+ title
4622
+ to
4623
+ tobacco
4624
+ today
4625
+ toe
4626
+ together
4627
+ toilet
4628
+ tolerance
4629
+ tolerate
4630
+ toll
4631
+ tomato
4632
+ tomorrow
4633
+ ton
4634
+ tone
4635
+ tongue
4636
+ tonight
4637
+ tonne
4638
+ too
4639
+ tool
4640
+ tooth
4641
+ top
4642
+ topic
4643
+ torture
4644
+ toss
4645
+ total
4646
+ totally
4647
+ touch
4648
+ tough
4649
+ tour
4650
+ tourism
4651
+ tourist
4652
+ tournament
4653
+ towards
4654
+ towel
4655
+ tower
4656
+ town
4657
+ toxic
4658
+ toy
4659
+ trace
4660
+ track
4661
+ trade
4662
+ trademark
4663
+ trading
4664
+ tradition
4665
+ traditional
4666
+ traditionally
4667
+ traffic
4668
+ tragedy
4669
+ tragic
4670
+ trail
4671
+ trailer
4672
+ train
4673
+ trainer
4674
+ training
4675
+ trait
4676
+ transaction
4677
+ transcript
4678
+ transfer
4679
+ transform
4680
+ transformation
4681
+ transit
4682
+ transition
4683
+ translate
4684
+ translation
4685
+ transmission
4686
+ transmit
4687
+ transparency
4688
+ transparent
4689
+ transport
4690
+ transportation
4691
+ trap
4692
+ trauma
4693
+ travel
4694
+ traveller
4695
+ treasure
4696
+ treat
4697
+ treatment
4698
+ treaty
4699
+ tree
4700
+ tremendous
4701
+ trend
4702
+ trial
4703
+ tribal
4704
+ tribe
4705
+ tribunal
4706
+ tribute
4707
+ trick
4708
+ trigger
4709
+ trillion
4710
+ trio
4711
+ trip
4712
+ triumph
4713
+ troop
4714
+ trophy
4715
+ tropical
4716
+ trouble
4717
+ troubled
4718
+ trousers
4719
+ truck
4720
+ true
4721
+ truly
4722
+ trust
4723
+ trustee
4724
+ truth
4725
+ try
4726
+ tsunami
4727
+ tube
4728
+ tuesday
4729
+ tuition
4730
+ tune
4731
+ tunnel
4732
+ turn
4733
+ turnout
4734
+ turnover
4735
+ tv
4736
+ twelve
4737
+ twenty
4738
+ twice
4739
+ twin
4740
+ twist
4741
+ two
4742
+ type
4743
+ typical
4744
+ typically
4745
+ tyre
4746
+ ugly
4747
+ ultimate
4748
+ ultimately
4749
+ umbrella
4750
+ unable
4751
+ unacceptable
4752
+ uncertainty
4753
+ uncle
4754
+ unclear
4755
+ uncomfortable
4756
+ unconscious
4757
+ under
4758
+ undergo
4759
+ undergraduate
4760
+ underground
4761
+ underlying
4762
+ undermine
4763
+ understand
4764
+ understanding
4765
+ undertake
4766
+ undertaking
4767
+ underwear
4768
+ undoubtedly
4769
+ unemployed
4770
+ unemployment
4771
+ unexpected
4772
+ unfair
4773
+ unfold
4774
+ unfortunate
4775
+ unfortunately
4776
+ unhappy
4777
+ uniform
4778
+ unify
4779
+ union
4780
+ unique
4781
+ unit
4782
+ unite
4783
+ united
4784
+ unity
4785
+ universal
4786
+ universe
4787
+ university
4788
+ unknown
4789
+ unless
4790
+ unlike
4791
+ unlikely
4792
+ unnecessary
4793
+ unpleasant
4794
+ unprecedented
4795
+ unrelated
4796
+ unstable
4797
+ until
4798
+ unusual
4799
+ unveil
4800
+ up
4801
+ upcoming
4802
+ update
4803
+ upgrade
4804
+ uphold
4805
+ upon
4806
+ upper
4807
+ upset
4808
+ upstairs
4809
+ upwards
4810
+ urban
4811
+ urge
4812
+ urgent
4813
+ us
4814
+ usage
4815
+ use
4816
+ used
4817
+ useful
4818
+ useless
4819
+ user
4820
+ usual
4821
+ usually
4822
+ utility
4823
+ utilization
4824
+ utilize
4825
+ utterly
4826
+ vacation
4827
+ vacuum
4828
+ vague
4829
+ valid
4830
+ validate
4831
+ validation
4832
+ validity
4833
+ valley
4834
+ valuable
4835
+ value
4836
+ van
4837
+ vanish
4838
+ variable
4839
+ variance
4840
+ variation
4841
+ varied
4842
+ variety
4843
+ various
4844
+ vary
4845
+ vast
4846
+ vegetable
4847
+ vehicle
4848
+ vein
4849
+ venture
4850
+ venue
4851
+ verbal
4852
+ verdict
4853
+ verify
4854
+ verse
4855
+ version
4856
+ versus
4857
+ vertical
4858
+ very
4859
+ vessel
4860
+ veteran
4861
+ via
4862
+ viable
4863
+ vibrant
4864
+ vice
4865
+ vicious
4866
+ victim
4867
+ victory
4868
+ video
4869
+ view
4870
+ viewer
4871
+ viewpoint
4872
+ village
4873
+ villager
4874
+ violate
4875
+ violation
4876
+ violence
4877
+ violent
4878
+ virtual
4879
+ virtue
4880
+ virus
4881
+ visa
4882
+ visible
4883
+ vision
4884
+ visit
4885
+ visitor
4886
+ visual
4887
+ vital
4888
+ vitamin
4889
+ vocal
4890
+ voice
4891
+ volume
4892
+ voluntary
4893
+ volunteer
4894
+ vote
4895
+ voting
4896
+ vow
4897
+ vulnerability
4898
+ vulnerable
4899
+ wage
4900
+ wait
4901
+ waiter
4902
+ wake
4903
+ walk
4904
+ wall
4905
+ wander
4906
+ want
4907
+ war
4908
+ ward
4909
+ warehouse
4910
+ warfare
4911
+ warm
4912
+ warming
4913
+ warn
4914
+ warning
4915
+ warrant
4916
+ warrior
4917
+ wash
4918
+ washing
4919
+ waste
4920
+ watch
4921
+ water
4922
+ wave
4923
+ way
4924
+ we
4925
+ weak
4926
+ weaken
4927
+ weakness
4928
+ wealth
4929
+ wealthy
4930
+ weapon
4931
+ wear
4932
+ weather
4933
+ weave
4934
+ web
4935
+ website
4936
+ wedding
4937
+ wednesday
4938
+ weed
4939
+ week
4940
+ weekend
4941
+ weekly
4942
+ weigh
4943
+ weight
4944
+ weird
4945
+ welcome
4946
+ welfare
4947
+ well
4948
+ well-being
4949
+ west
4950
+ western
4951
+ wet
4952
+ what
4953
+ whatever
4954
+ whatsoever
4955
+ wheat
4956
+ wheel
4957
+ when
4958
+ whenever
4959
+ where
4960
+ whereas
4961
+ whereby
4962
+ wherever
4963
+ whether
4964
+ which
4965
+ while
4966
+ whilst
4967
+ whip
4968
+ whisper
4969
+ white
4970
+ who
4971
+ whoever
4972
+ whole
4973
+ wholly
4974
+ whom
4975
+ whose
4976
+ why
4977
+ wide
4978
+ widely
4979
+ widen
4980
+ widespread
4981
+ widow
4982
+ width
4983
+ wife
4984
+ wild
4985
+ wildlife
4986
+ will
4987
+ willing
4988
+ willingness
4989
+ win
4990
+ wind
4991
+ window
4992
+ wine
4993
+ wing
4994
+ winner
4995
+ winter
4996
+ wipe
4997
+ wire
4998
+ wisdom
4999
+ wise
5000
+ wish
5001
+ wit
5002
+ with
5003
+ withdraw
5004
+ withdrawal
5005
+ within
5006
+ without
5007
+ witness
5008
+ woman
5009
+ wonder
5010
+ wonderful
5011
+ wood
5012
+ wooden
5013
+ wool
5014
+ word
5015
+ work
5016
+ worker
5017
+ workforce
5018
+ working
5019
+ workout
5020
+ workplace
5021
+ workshop
5022
+ world
5023
+ worldwide
5024
+ worm
5025
+ worried
5026
+ worry
5027
+ worse
5028
+ worship
5029
+ worst
5030
+ worth
5031
+ worthwhile
5032
+ worthy
5033
+ would
5034
+ wound
5035
+ wow
5036
+ wrap
5037
+ wrist
5038
+ write
5039
+ writer
5040
+ writing
5041
+ written
5042
+ wrong
5043
+ yard
5044
+ yeah
5045
+ year
5046
+ yell
5047
+ yellow
5048
+ yes
5049
+ yesterday
5050
+ yet
5051
+ yield
5052
+ you
5053
+ young
5054
+ youngster
5055
+ your
5056
+ yours
5057
+ yourself
5058
+ youth
5059
+ zero
5060
+ zone
textgames/base_game.py ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import time
2
+ import pickle
3
+
4
+
5
+ class BaseGame:
6
+ def __init__(self):
7
+ self.exclude_states = None
8
+ self.start_timestamp = None
9
+ self.end_timestamp = None
10
+ self.chat_log = None
11
+ self.attempt_count = 0
12
+ self.attempt_timestamps = None
13
+ self.is_solved = None
14
+ self.is_forfeited = None
15
+ self.stats_filepath = None
16
+
17
+ @staticmethod
18
+ def get_game_name() -> str:
19
+ raise NotImplementedError()
20
+
21
+ def _generate_new_game(self, *args, **kwargs) -> None:
22
+ raise NotImplementedError()
23
+
24
+ def _load_game(self, *args, **kwargs) -> None:
25
+ raise NotImplementedError()
26
+
27
+ def _get_prompt(self) -> str:
28
+ raise NotImplementedError()
29
+
30
+ def _validate(self, answer: str) -> (bool, str):
31
+ raise NotImplementedError()
32
+
33
+ def init_stats_(self):
34
+ self.start_timestamp = time.time()
35
+ self.attempt_count = 0
36
+ self.attempt_timestamps = []
37
+ self.chat_log = []
38
+ self.is_solved = False
39
+ self.is_forfeited = False
40
+
41
+ def attach_stats_output_(self, filepath):
42
+ assert not self.stats_filepath
43
+ self.stats_filepath = filepath
44
+
45
+ def flush_stats_(self, user=None):
46
+ if self.stats_filepath:
47
+ with open(self.stats_filepath, mode='ab') as o:
48
+ if user:
49
+ pickle.dump((time.time(), user), o)
50
+ else:
51
+ pickle.dump((
52
+ time.time(),
53
+ self.attempt_count,
54
+ self.attempt_timestamps,
55
+ self.chat_log,
56
+ self.is_solved,
57
+ self.is_forfeited,
58
+ ), o)
59
+ self.chat_log.clear()
60
+ self.attempt_timestamps.clear()
61
+ # won't flush if output filepath is unset
62
+
63
+ def finish_stats_(self, forfeit: bool = False) -> None:
64
+ assert not self.is_solved and not self.is_forfeited
65
+ self.end_timestamp = time.time()
66
+ if not forfeit:
67
+ self.is_solved = True
68
+ else:
69
+ self.is_forfeited = True
70
+
71
+ def generate_new_game(self, *args, **kwargs) -> None:
72
+ self._generate_new_game(*args, **kwargs)
73
+ self.init_stats_()
74
+
75
+ def load_game(self, *args, **kwargs) -> None:
76
+ self._load_game(*args, **kwargs)
77
+ self.init_stats_()
78
+
79
+ def get_prompt(self) -> str:
80
+ prompt = self._get_prompt()
81
+ self.chat_log.append((-2, prompt,))
82
+ self.flush_stats_()
83
+ return prompt
84
+
85
+ def validate(self, answer: str) -> (bool, str):
86
+ # print(self.start_timestamp, self.attempt_timestamps, self.is_solved, sep="\n", end="\n\n")
87
+ self.attempt_count += 1
88
+ self.attempt_timestamps.append(time.time())
89
+ self.chat_log.append((-1, answer,))
90
+ solved, val_msg = self._validate(answer)
91
+ self.chat_log.append((solved, val_msg,))
92
+ if solved:
93
+ self.finish_stats_()
94
+ self.flush_stats_()
95
+ return solved, val_msg
96
+
97
+ def is_game_reloadable(self) -> bool:
98
+ return _is_game_reloadable(self)
99
+
100
+
101
+ def _is_game_reloadable(original_game: BaseGame) -> bool:
102
+ loaded_game = original_game.__class__()
103
+ try:
104
+ loaded_game.load_game(original_game.get_prompt())
105
+ except NotImplementedError:
106
+ print("..... lhooooo: Load Game not implemented .....\n")
107
+ return False
108
+ exclude_states = [
109
+ 'start_timestamp', 'end_timestamp', 'chat_log', 'attempt_count', 'attempt_timestamps', 'is_solved',
110
+ *(original_game.exclude_states or [])
111
+ ]
112
+ original_game_states = {k: v for k, v in vars(original_game).items() if k not in exclude_states}
113
+ loaded_game_states = {k: v for k, v in vars(loaded_game).items() if k not in exclude_states}
114
+
115
+ ret = (original_game_states == loaded_game_states) and (original_game.get_prompt() == loaded_game.get_prompt())
116
+ if not ret:
117
+ pass
118
+ return ret
textgames/bracket_game/__init__.py ADDED
File without changes
textgames/bracket_game/bracket_game.py ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import random
2
+ import re
3
+ from pathlib import Path
4
+ from textgames.base_game import BaseGame
5
+ #%%
6
+ """Example Prompt
7
+ You are given a text archigasterbalersnitrosylsulfuric Your job is to put some valid parenthesis brackets in the text such that:
8
+ - \"archigaster\" is inside a curly bracket
9
+ - \"balers\" is inside a curly bracket
10
+ - \"nitrosylsulfuric\" is inside a angle bracket
11
+ The bracket depth must be 2.
12
+ Print only the answer.
13
+ """
14
+
15
+
16
+ #%%
17
+ def sort_game_states(game):
18
+ game_states = {k: v for k, v in vars(game).items() if k not in game.exclude_states}
19
+ for k in game_states.keys():
20
+ if isinstance(game_states[k], list):
21
+ try:
22
+ game_states[k].sort()
23
+ except:
24
+ print("ignore the sort")
25
+
26
+
27
+ #%%
28
+ class BracketGame(BaseGame):
29
+ @staticmethod
30
+ def get_game_name() -> str:
31
+ return "πŸ—³οΈ\tBracket Game"
32
+
33
+ def __init__(self):
34
+ super().__init__()
35
+ self.exclude_states = ["possible_ans", "WORD_LIST", "MULTI_WORD_LIST", "multi_word", "words"]
36
+
37
+ self.WORD_LIST = []
38
+ self.MULTI_WORD_LIST = []
39
+
40
+ with open(str(Path(__file__).absolute()).replace("bracket_game/bracket_game.py","") + "assets/kb/word_list.txt") as f:
41
+ for line in f:
42
+ self.WORD_LIST.append(line.replace("\n", ""))
43
+
44
+ self.BRACKETS = [["block", "[", "]"], ["curly", "{", "}"], ["round", "(", ")"], ["angle", "<", ">"]]
45
+ self.rules = []
46
+ self.words = []
47
+ self.string = ""
48
+ self.depth = None
49
+ self.multi_word = False
50
+ self.create_multiple_words()
51
+
52
+ def create_multiple_words(self):
53
+ for i in range(1000):
54
+ num1 = random.randint(0, len(self.WORD_LIST)-1)
55
+ num2 = random.randint(0, len(self.WORD_LIST)-1)
56
+ if num1 != num2:
57
+ self.MULTI_WORD_LIST.append(self.WORD_LIST[num1] + self.WORD_LIST[num2])
58
+
59
+ def _validate(self, answer: str) -> (bool, str):
60
+ for rule in self.rules:
61
+ arr = answer.split(rule[0])
62
+
63
+ if rule[1][1] not in arr[0] or rule[1][2] not in arr[1]:
64
+ val_msg = f"{rule[0]} is not between the correct bracket, {rule[1][1]} not in {arr[0]} and {rule[1][2]} not in {arr[1]}"
65
+ return False, val_msg
66
+
67
+ filter_answer = answer
68
+ for i in range(0, 26):
69
+ cc = chr(ord("a") + i)
70
+ filter_answer = filter_answer.replace(cc,"")
71
+
72
+ cc = chr(ord("A") + i)
73
+ filter_answer = filter_answer.replace(cc,"")
74
+
75
+ open_bracket_list = ["[", "{", "(", "<"]
76
+ close_bracket_map = {
77
+ "[":"]", "{":"}", "(":")", "<":">"
78
+ }
79
+
80
+ # check max depth
81
+ count = 0
82
+ st = []
83
+
84
+ for i in range(len(filter_answer)):
85
+ if (filter_answer[i] in open_bracket_list):
86
+ st.append(filter_answer[i]) # pushing the bracket in the stack
87
+ else:
88
+ if len(st) > 0 and (filter_answer[i] == close_bracket_map[st[-1]]):
89
+ if (count < len(st)):
90
+ count = len(st)
91
+ st.pop()
92
+ else:
93
+ val_msg = "There is a closing bracket without an open bracket"
94
+ return False, val_msg
95
+
96
+ if count == self.depth:
97
+ return True, ""
98
+ else:
99
+ val_msg = f"The depth of the bracket is {count}. The expected depth is {self.depth}"
100
+ return False, val_msg
101
+
102
+ def _generate_new_game(self, *args, **kwargs) -> None:
103
+ num_words = kwargs["num_words"]
104
+ num_rules = kwargs["num_rules"]
105
+ self.depth = kwargs["depth"]
106
+ self.multi_word = kwargs["multi_word"]
107
+
108
+ assert num_words >= num_rules
109
+
110
+ self.rules = []
111
+ self.words = []
112
+ self.string = ""
113
+
114
+ for _ in range(num_words):
115
+ if self.multi_word:
116
+ toggle_multi_word = random.randint(0, 1)
117
+ if toggle_multi_word == 1:
118
+ word = self.MULTI_WORD_LIST[random.randint(0, len(self.MULTI_WORD_LIST)-1)]
119
+ else:
120
+ word = self.WORD_LIST[random.randint(0, len(self.WORD_LIST)-1)]
121
+ else:
122
+ word = self.WORD_LIST[random.randint(0, len(self.WORD_LIST)-1)]
123
+ while word in self.words:
124
+ word = self.WORD_LIST[random.randint(0, len(self.WORD_LIST)-1)]
125
+ self.string += word
126
+ self.words.append(word)
127
+
128
+ self.chosen_words = []
129
+ for _ in range(num_rules):
130
+ cur_word = self.words[random.randint(0, len(self.words)-1)]
131
+ while cur_word in self.chosen_words:
132
+ cur_word = self.words[random.randint(0, len(self.words)-1)]
133
+ self.chosen_words.append(cur_word)
134
+
135
+ bracket = self.BRACKETS[random.randint(0, len(self.BRACKETS)-1)]
136
+ self.rules.append([cur_word, bracket])
137
+
138
+ sort_game_states(self)
139
+
140
+ def _get_prompt(self) -> str:
141
+ prompt = f"You are given a text {self.string} Your job is to put some valid parenthesis brackets in the text such that:\n"
142
+ for rule in self.rules:
143
+ prompt += f"- \"{rule[0]}\" is inside a {rule[1][0]} bracket\n"
144
+ prompt += f"The bracket depth must be {self.depth} and print only the answer\n"
145
+ return prompt
146
+
147
+ def _load_game(self, state_string):
148
+ pattern_str = re.compile(r"text ([a-zA-Z0-9]+) Your")
149
+ pattern_str_rule = re.compile(r"- \"([a-zA-Z]+)\" is")
150
+ pattern_depth = re.compile(r"must be ([0-9]+).")
151
+
152
+ def extract_variable(pattern, input_string, mode):
153
+ match = pattern.search(input_string)
154
+ if match:
155
+ if mode == "number":
156
+ return int(match.group(1))
157
+ else:
158
+ return match.group(1)
159
+ else:
160
+ return 0
161
+
162
+ content = state_string.split("the text such that:")[1].split("\nThe bracket depth must be")[0].split("\n")
163
+
164
+ self.words = []
165
+ self.rules = []
166
+ self.chosen_words = []
167
+
168
+ self.string = extract_variable(pattern_str, state_string, "string")
169
+ for row in content[1:]:
170
+ word = extract_variable(pattern_str_rule, row, "string")
171
+
172
+ bracket = row.split("inside a")[1].split("bracket")[0].strip()
173
+ self.words.append(word)
174
+ bracket_obj = None
175
+ for obj in self.BRACKETS:
176
+ if obj[0] == bracket:
177
+ bracket_obj = obj
178
+ break
179
+ self.chosen_words.append(word)
180
+ self.rules.append([word, bracket_obj])
181
+
182
+ self.depth = extract_variable(pattern_depth, state_string, "number")
183
+
184
+ with open(str(Path(__file__).absolute()).replace("bracket_game/bracket_game.py","") + "assets/kb/word_list.txt") as f:
185
+ for line in f:
186
+ self.WORD_LIST.append(line.replace("\n", ""))
187
+
188
+ self.create_multiple_words()
189
+
190
+ sort_game_states(self)
textgames/crossword_arranger/__init__.py ADDED
File without changes
textgames/crossword_arranger/crossword_arranger.py ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #%%
2
+ import re
3
+ import random
4
+ from typing import List, Optional
5
+ from itertools import chain
6
+
7
+ from textgames.base_game import BaseGame
8
+ from textgames.assets.word_list import PrefixTrie, get_word_list_by_length
9
+
10
+ #%%
11
+ # len_count = dict(sorted([(k, len(v)) for k, v in WORDS_BY_LEN.items()]))
12
+ # cumsum, weighted = 0, 0
13
+ # for k, v in len_count.items():
14
+ # cumsum += v
15
+ # weighted += k*v
16
+ #
17
+ # #%%
18
+ # print(weighted / cumsum)
19
+
20
+
21
+ #%%
22
+ def find_solution(size, word_list):
23
+ """Given the board size and the list of words, find a possible crossword arrangement."""
24
+ prefix_trie = PrefixTrie(word_list)
25
+ p_row, p_col = [prefix_trie.root] * size, [prefix_trie.root] * size
26
+
27
+ def find_char_for(r, c):
28
+ if r >= size:
29
+ return True
30
+ if c >= size:
31
+ return find_char_for(r + 1, 0)
32
+
33
+ cur_r, cur_c = p_row[r], p_col[c]
34
+ edges = list(cur_r.children.keys())
35
+ for ch in random.sample(edges, k=len(edges)):
36
+ nex_r = cur_r.children[ch]
37
+ if ch not in cur_c.children:
38
+ continue
39
+ nex_c = cur_c.children[ch]
40
+
41
+ p_row[r], p_col[c] = nex_r, nex_c
42
+ nex_r.capacity -= 1
43
+ nex_c.capacity -= 1
44
+ if (nex_r.capacity > -1) and (nex_c.capacity > -1) and find_char_for(r, c+1):
45
+ return True
46
+ nex_c.capacity += 1
47
+ nex_r.capacity += 1
48
+ p_row[r], p_col[c] = cur_r, cur_c
49
+
50
+ if not find_char_for(0, 0):
51
+ return None
52
+ else:
53
+ return [p.word for p in p_row], [p.word for p in p_col]
54
+
55
+
56
+ #%%
57
+
58
+
59
+ #%%
60
+ class CrosswordArrangerGame(BaseGame):
61
+ @staticmethod
62
+ def get_game_name() -> str:
63
+ return "πŸ“°\tCrossword Arranger"
64
+
65
+ def __init__(self, board_size: Optional[int] = None, full_word_list: Optional[List[str]] = None):
66
+ super().__init__()
67
+ self.board_size = board_size
68
+ self.full_word_list = full_word_list
69
+ self.possible_ans = None
70
+ self.noise_ratio = None
71
+ self.word_list = None
72
+ self.exclude_states = ['full_word_list', 'possible_ans', 'noise_ratio']
73
+
74
+ def _generate_new_game(self, *args, **kwargs) -> None:
75
+ if kwargs.get("no_ans_prob", .0) > .0:
76
+ raise NotImplementedError("Arranger with No Answer is not yet implemented")
77
+ if not kwargs.get("no_duplicate", True):
78
+ raise NotImplementedError("Arranger with Duplicate word is not yet implemented")
79
+
80
+ self.board_size = int(kwargs.get("board_size", self.board_size or 3))
81
+ self.full_word_list = kwargs.get("full_word_list", self.full_word_list or get_word_list_by_length(corpus=(
82
+ {"oxford5k_opal"} if self.board_size < 5 else {"oxford5k_opal", "nltk_words"}
83
+ ))[self.board_size])
84
+
85
+ if ("preset_config" in kwargs) and (kwargs["preset_config"] == 1):
86
+ # car
87
+ # ago
88
+ # bed
89
+ min_word_list = ["age", "ago", "bed", "cab", "car", "rod"]
90
+ self.possible_ans = ["car", "ago", "bed"]
91
+ self.noise_ratio = .25
92
+
93
+ else:
94
+ ans_hor, ans_ver = find_solution(self.board_size, word_list=self.full_word_list)
95
+ min_word_list = list(chain(ans_hor, ans_ver))
96
+ self.possible_ans = ans_hor
97
+ self.noise_ratio = kwargs.get("noise_ratio", self.noise_ratio or .5)
98
+
99
+ self.word_list = [*min_word_list]
100
+ for _ in range(round(len(min_word_list) * self.noise_ratio / (1 - self.noise_ratio))):
101
+ while (next_word := random.choice(self.full_word_list)) in self.word_list:
102
+ pass
103
+ self.word_list.append(next_word)
104
+ self.word_list = sorted(self.word_list)
105
+
106
+ def _load_game(self, state_string):
107
+ pat_board_size = re.compile(r"Given a board size of (\d+)x\d+,")
108
+ self.board_size = int(pat_board_size.search(state_string).group(1))
109
+ pat_word_list = re.compile(r"List of words:\n((- [a-z]+\n)+)\nPrint only the answer.")
110
+ word_list_str = pat_word_list.search(state_string).group(1).strip()
111
+ self.word_list = sorted(map(lambda t: t.strip("- "), word_list_str.split('\n')))
112
+
113
+ def _get_prompt(self) -> str:
114
+ prompt = (
115
+ f"Given a board size of {self.board_size}x{self.board_size}, "
116
+ "arrange a possible crossword puzzle answer from a list of words.\n"
117
+ "Item in the list can only be used once.\n"
118
+ )
119
+
120
+ prompt += "\nList of words:\n"
121
+ for word in self.word_list:
122
+ prompt += f"- {word}\n"
123
+
124
+ prompt += "\nPrint only the answer."
125
+ return prompt
126
+
127
+ def _validate(self, answer: str) -> (bool, str):
128
+ ans_hor = list(filter(None, answer.lower().replace(' ', '\n').split("\n")))
129
+ val_msg = ""
130
+ if len(ans_hor) != self.board_size:
131
+ val_msg = f"Mismatch answer length found!! Expected size of {self.board_size}, got {len(ans_hor)}."
132
+ return False, val_msg
133
+ ans_ver = [''.join(ans_hor[r][c] for r in range(self.board_size)) for c in range(self.board_size)]
134
+ word_set = set(self.word_list)
135
+ for w in chain(ans_hor, ans_ver):
136
+ if w not in word_set:
137
+ return False, val_msg
138
+ word_set.remove(w)
139
+ return True, val_msg
140
+
141
+
142
+ #%%
143
+
144
+
145
+ #%%
146
+
147
+
148
+ #%%
149
+
150
+
textgames/islands/__init__.py ADDED
File without changes
textgames/islands/islands.py ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ import numpy as np
3
+ import random
4
+ import math
5
+ from textgames.base_game import BaseGame
6
+ from typing import List
7
+ #%%
8
+ """Example Prompt
9
+ You are asked to construct a 2D [N] x [N] grid, consisting of water tiles (denoted by ’.’),
10
+ land tiles (denoted by ’#’), and coconut tree tiles (denoted by ’o’).
11
+ Coconut tree tiles are also considered as land tiles.
12
+
13
+ A group of connected land tiles in 4 cardinal directions forms an island.
14
+
15
+ Your 2D grid must follow the following rules:
16
+ - There must be exactly [K] islands.
17
+ - The size of each island must be at least [Y] tiles.
18
+ - There must be exactly [L] islands that have coconut trees on them.
19
+ - There must be exactly [C] total coconut trees.
20
+
21
+ Print only the answer.
22
+ """
23
+
24
+ """Rule Constraint
25
+ Grid size 5 <= N <= 8
26
+
27
+ num islands 1 <= K <= 5
28
+ island size 1 <= Y < Z <= 10
29
+
30
+ total coconut trees should fit the minimum total land tiles (to simplify)
31
+
32
+ Print only the answer
33
+ """
34
+
35
+ #%%
36
+ class Islands(BaseGame):
37
+ @staticmethod
38
+ def get_game_name() -> str:
39
+ return "🏝️\tIslands"
40
+
41
+ def __init__(self):
42
+ super().__init__()
43
+ self.exclude_states = []
44
+
45
+ def _load_game(self, state_string):
46
+ pattern_N = re.compile(r"construct a 2D (\d+) x \d+ grid")
47
+ pattern_num_islands = re.compile(r"exactly (\d+) islands")
48
+ pattern_island_size_min = re.compile(r"from (\d+) to \d+ tiles")
49
+ pattern_island_size_max = re.compile(r"from \d+ to (\d+) tiles")
50
+ pattern_island_with_coconut = re.compile(r"exactly (\d+) islands that have coconut")
51
+ pattern_total_coconuts = re.compile(r"exactly (\d+) total coconut trees")
52
+
53
+ def extract_variable(pattern, input_string):
54
+ match = pattern.search(input_string)
55
+ if match:
56
+ return int(match.group(1))
57
+ else:
58
+ return 0
59
+
60
+ self.N = extract_variable(pattern_N, state_string)
61
+ self.num_islands = extract_variable(pattern_num_islands, state_string)
62
+ self.island_size_min = extract_variable(pattern_island_size_min, state_string)
63
+ self.island_size_max = extract_variable(pattern_island_size_max, state_string)
64
+ self.island_with_coconut = extract_variable(pattern_island_with_coconut, state_string)
65
+ self.total_coconuts = extract_variable(pattern_total_coconuts, state_string)
66
+
67
+
68
+ def _generate_new_game(self, N = None, num_islands = None, island_size_min = None, island_size_max = None, island_with_coconut = None, total_coconuts = None):
69
+ if N is None:
70
+ N = random.randint(5, 8)
71
+ if num_islands is None:
72
+ num_islands = random.randint(1, 6)
73
+
74
+ if island_size_min is None:
75
+ worst_case = math.floor((N * N // num_islands) * 0.6)
76
+
77
+ island_size_min = random.randint(1, worst_case)
78
+
79
+ if island_size_max is None:
80
+ island_size_max = random.randint(island_size_min, worst_case)
81
+
82
+ if island_with_coconut is None:
83
+ island_with_coconut = random.randint(1, num_islands)
84
+
85
+ if total_coconuts is None:
86
+ total_coconuts = min(random.randint(island_with_coconut, island_with_coconut * island_size_min), 6)
87
+
88
+ self.N = N
89
+ self.num_islands = num_islands
90
+ self.island_size_min = island_size_min
91
+ self.island_size_max = island_size_max
92
+ self.island_with_coconut = island_with_coconut
93
+ self.total_coconuts = total_coconuts
94
+
95
+ def _validate(self, answer: str) -> (bool, str):
96
+
97
+ # clean up the input, to make it more flexible towards formatting
98
+ answer = answer.split("\n")
99
+ answer = [a.replace(" ", "").lower().strip() for a in answer]
100
+
101
+ # check the size
102
+ if len(answer) != self.N or len(answer[0]) != self.N:
103
+ val_msg = f"2D grid is not {self.N} x {self.N}. ({len(answer)} x {len(answer[0])})"
104
+ return False, val_msg
105
+
106
+ # check the tiles, ensure they are valid
107
+ for a in answer:
108
+ for c in a:
109
+ if c != 'o' and c != '.' and c != '#':
110
+ val_msg = f'2D contains invalid character ({c})'
111
+ return False, val_msg
112
+
113
+ islands = []
114
+ # build the islands, denoted as a set of coordinate and tile
115
+ visited = [[False] * self.N for _ in range(self.N)] # for flood-fill
116
+
117
+ # helper flood-fill
118
+ def flood_fill(x, y, answer, visited, island_set):
119
+
120
+ if x < 0 or y < 0 or x == self.N or y == self.N or answer[x][y] == '.' or visited[x][y]:
121
+ return
122
+
123
+ visited[x][y] = True
124
+ island_set.add((x, y, answer[x][y]))
125
+
126
+ flood_fill(x + 1, y, answer, visited, island_set)
127
+ flood_fill(x, y + 1, answer, visited, island_set)
128
+ flood_fill(x - 1, y, answer, visited, island_set)
129
+ flood_fill(x, y - 1, answer, visited, island_set)
130
+
131
+ for i in range(self.N):
132
+ for j in range(self.N):
133
+ if answer[i][j] != '.' and visited[i][j] == False:
134
+ island_set = set()
135
+ flood_fill(i, j, answer, visited, island_set)
136
+ islands.append(island_set)
137
+
138
+ # constraint 1: has exactly K islands
139
+ if len(islands) != self.num_islands:
140
+ val_msg = f"There must be exactly {self.num_islands} islands, but you provided {len(islands)} islands"
141
+ return False, val_msg
142
+
143
+ # constraint 2: island size
144
+ for island in islands:
145
+ if len(island) < self.island_size_min or len(island) > self.island_size_max:
146
+ val_msg = f"The size of each island must be from {self.island_size_min} to {self.island_size_max} tiles"
147
+ return False, val_msg
148
+
149
+ # constraint 3: islands with coconut
150
+ solution_island_with_coconut = 0
151
+
152
+ for island in islands:
153
+ has_coconut = any(c == 'o' for _, _, c in island)
154
+ if has_coconut:
155
+ solution_island_with_coconut += 1
156
+ if solution_island_with_coconut != self.island_with_coconut:
157
+ val_msg = f"There must be exactly {self.island_with_coconut} islands that have coconut trees on them"
158
+ return False, val_msg
159
+
160
+ # constraint 4: total coconut trees
161
+ solution_total_coconuts = sum(c == 'o' for island in islands for _, _, c in island)
162
+
163
+ if solution_total_coconuts != self.total_coconuts:
164
+ val_msg = f"There must be exactly {self.total_coconuts} total coconut trees."
165
+ return False, val_msg
166
+
167
+ return True, ""
168
+
169
+ def _get_prompt(self):
170
+ if self.island_with_coconut == 0:
171
+ prompt = f"""You are asked to construct a 2D {self.N} x {self.N} grid, consisting of water tiles (denoted by ’.’),
172
+ land tiles (denoted by ’#’).
173
+
174
+ A group of connected land tiles in 4 cardinal directions forms an island.
175
+
176
+ Your 2D grid must follow the following rules:
177
+ - There must be exactly {self.num_islands} islands.
178
+ - The size of each island must be from {self.island_size_min} to {self.island_size_max} tiles.
179
+
180
+ Print only the answer.
181
+ """
182
+ else:
183
+ prompt = f"""You are asked to construct a 2D {self.N} x {self.N} grid, consisting of water tiles (denoted by ’.’),
184
+ land tiles (denoted by ’#’), and coconut tree tiles (denoted by ’o’).
185
+ Coconut tree tiles are also considered as land tiles.
186
+
187
+ A group of connected land tiles in 4 cardinal directions forms an island.
188
+
189
+ Your 2D grid must follow the following rules:
190
+ - There must be exactly {self.num_islands} islands.
191
+ - The size of each island must be from {self.island_size_min} to {self.island_size_max} tiles.
192
+ - There must be exactly {self.island_with_coconut} islands that have coconut trees on them.
193
+ - There must be exactly {self.total_coconuts} total coconut trees.
194
+
195
+ Print only the answer.
196
+ """
197
+ return prompt