publication.ipynb 249 KB
Newer Older
1
2
3
4
{
 "cells": [
  {
   "cell_type": "markdown",
5
   "id": "190bc476",
6
7
   "metadata": {},
   "source": [
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
    "# “Embed, embed! There’s knocking at the gate.\"\n",
    "##  Detecting Intertextuality with the Vectorian Notebook of Embeddings\n",
    "\n",
    "<i>Bernhard Liebl & Manuel Burghardt <br>\n",
    "    Computational Humanities Group, Leipzig University</i>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55a187a5",
   "metadata": {},
   "source": [
    "## Introduction"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08900f82",
   "metadata": {},
   "source": [
    "The detection of intertextual references in text corpora is a digital humanities topic that has gained a lot of attention in recent years (for instance Bamman & Crane, 2008; Burghardt et al., 2019; Büchler et al., 2013; Forstall et al., 2015; Scheirer et al., 2014). While intertextuality – from a literary studies perspective – describes the phenomenon of one text being present in another text (cf. Genette, 1993), the computational problem at hand is the task of text similarity detection (Bär et al., 2012), and more concretely, semantic similarity detection. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "931e786e",
   "metadata": {},
   "source": [
    "In the following example of Shakespearean intertextuality, the words *bleed* and *leak* are semantically (and phonetically) similar, demonstrating that *Star Trek* here is quoting Shakespeare without any doubt: \n",
    "\n",
    "> Shylock: If you prick *us*, do *we* not **bleed**. <br>\n",
    "(Shakespeare; The Merchant of Venice)\n",
    "\n",
    "> Data: If you prick *me*, do *I* not **leak**. <br>\n",
    "(Star Trek: The Next Generation; The Measure of a Man)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d93736f9",
   "metadata": {},
   "source": [
    "### Enter: word embeddings"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7d2d01c6",
   "metadata": {},
   "source": [
    "Over the years, there have been various attempts for measuring semantic similarity, some of them knowledge-based (e.g. based on WordNet), others corpus-based, like LDA (Chandrasekaran & Vijay, 2021). The arrival of word embeddings (Mikolov et al., 2013) has changed the field considerably by introducing a new and fast way to tackle the notion of word meaning. On the one hand, word embeddings are building blocks that can be combined with a number of other methods, such as alignments, soft cosine or Word Mover's Distance, to implement some kind of sentence similarity (Manjavacas et al., 2019). On the other hand, the concept of embeddings can be extended to work one the sentence-level as well, which is a conceptually different approach (Wieting et al., 2016). "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe1c1073",
   "metadata": {},
   "source": [
    "We introduce the **Vectorian** as a framework that allows researchers to try out different embedding-based methods for intertextuality detection. In contrast to previous versions of the Vectorian (Liebl & Burghardt, 2020a/b) as a mere web interface with a limited set of static parameters, we now present a clean and completely redesigned API that is showcased in an interactive Jupyter notebook. In this notebook, we first use the Vectorian to build queries where we plug in static word embeddings such as FastText (Mikolov et al., 2018) and GloVe (Pennington et al., 2014). We evaluate the influence of computing similarity through alignments such as Waterman-Smith-Beyer (WSB; Waterman et al., 1976) and two variants of Word Mover’s Distance (WMD; Kusner et al., 2015). We also investigate the performance of state-of-art sentence embeddings like Siamese BERT networks (Reimers & Gurevych, 2019) for the task - both on a document level (as document embeddings) and as contextual token embeddings. Overall, we find that POS tag-weighted WSB with fastText offers highly competitive performance. Readers can upload their own data for performing search queries and try out additional vector space metrics such as p-norms or improved sqrt‐cosine similarity (Sohangir & Wang, 2017)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "76ec578f",
   "metadata": {},
   "source": [
    "### Outline of the notebook"
75
76
77
78
   ]
  },
  {
   "cell_type": "markdown",
79
   "id": "3354577a",
80
81
   "metadata": {},
   "source": [
82
    "In the notebook, we will go through different examples of intertextuality to demonstrate and explain the implications of different embeddings and similarity measures. To achieve this we provide a small ground truth corpus of intertextual Shakespeare references that can be used for some controlled evaluation experiments. Our main goal is to provide an interactive environment, where researchers can test out different methods for text reuse and intertextuality detection. This notebook thus adds to a critical reflection of digital methods and can help to shed some light on their epistemological implications for the field of computational intertextuality detection. At the end of the notebook, researchers can also easily import their own data and investigate all the showcased methods for their specific texts. "
Bernhard Liebl's avatar
Bernhard Liebl committed
83
84
85
86
   ]
  },
  {
   "cell_type": "markdown",
87
   "id": "81127404",
Bernhard Liebl's avatar
Bernhard Liebl committed
88
89
   "metadata": {},
   "source": [
90
91
92
93
94
95
96
97
98
    "## Overview of different types of embeddings"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37c44475",
   "metadata": {},
   "source": [
    "**Word embeddings** take up the linguistic concept of collocations. For each word in a corpus it is recorded with which other words it occurs. These collocation profiles are then represented as vectors. If, for example, two words (e.g. \"car\" and \"truck\") occur with very similar words (e.g. „wheels, drive, street, etc.“) then they would also have very similar word vectors, i.e. they would be semantically - or at least structurally - very similar.\n",
Bernhard Liebl's avatar
Bernhard Liebl committed
99
    "\n",
100
    "There are now various established ways to compute embeddings for word similarity tasks. A first important distinction to be made is between *token* / *word* embeddings and *document* embeddings (see diagram below). While **token embeddings** model one embedding per token, **document embeddings** try to  map an entire document (i.e. a set of tokens) into one single embedding. There are two common ways to compute document embeddings. One way is to derive them from token embeddings, for instance by averaging those. More complex approaches train dedicated models that are optimized to produce good document embeddings.\n",
101
    "\n",
102
103
104
105
106
    "This means that, all in all, we can distinguish three types of embeddings: \n",
    "\n",
    "* original token embeddings\n",
    "* document embeddings derived from token embeddings\n",
    "* document embeddings from dedicated models, such as Sentence-BERT (Reimers & Gurevych, 2019)\n",
Bernhard Liebl's avatar
Bernhard Liebl committed
107
108
109
110
111
112
    "\n",
    "![Different kinds of embeddings](miscellaneous/diagram_embeddings_1.svg)\n"
   ]
  },
  {
   "cell_type": "markdown",
113
   "id": "c5fe82b4",
Bernhard Liebl's avatar
Bernhard Liebl committed
114
115
   "metadata": {},
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
116
117
118
    "For token embeddings, there are also various options, as the diagram below illustrates. The most recent option are contextual token embeddings (also sometimes called *dynamic* embeddings), which will incorporate a specific token's context and can be obtained from architectures like ELMO or BERT. Another option are static token embeddings, which map one token to one embedding, independent of its specific occurence in a text. For an overview of static and contextual embeddings, and their differences, see (Wang et al. 2020).\n",
    "\n",
    "For static embeddings there is now a variety of established options like fastText or GloVe. We can also combine embeddings or stack them (i.e. concatenate embedding vectors) to simply create new embeddings from existing ones.\n",
Bernhard Liebl's avatar
Bernhard Liebl committed
119
120
121
122
123
124
    "\n",
    "![Different kinds of embeddings](miscellaneous/diagram_embeddings_2.svg)\n"
   ]
  },
  {
   "cell_type": "markdown",
125
   "id": "df308da6",
Bernhard Liebl's avatar
Bernhard Liebl committed
126
127
   "metadata": {},
   "source": [
128
    "In this notebook, we showcase the following four classes of embeddings:\n",
129
    "\n",
130
131
132
133
    "* **Static token embeddings**: these operate on the token level. We experiment with GloVe (Pennington et al. 2014), fastText (Mikolov et al., 2018) and Numberbatch (Speer et al, 2017). We use these three embeddings to compute token similarity and combine them with alignment algorithms (such as Waterman-Smith-Beyer) to compute document similarity. We also investigate the effect of stacking two static embeddings (fastText and Numberbatch).\n",
    "* **Contextual token embeddings**: these also operate on the token level, but embeddings can change according to a specific token instance's context. In this notebook we experiment with using such token embeddings from the Sentence-BERT model (Reimers & Gurevych, 2019).\n",
    "* **Document embeddings derived from specially trained models**: document embeddings represent one document via one single embedding. We use document embeddings obtained from a BERT model. More specifically, we use a Siamese BERT model named Sentence-BERT, which is trained specifically for the semantic textual similarity (STS) task (Reimers & Gurevych, 2019).\n",
    "* **Document embeddings derived from token embeddings**: We also experiment with averaging different kinds of token embeddings (static and contextual) to derive document embeddings.\n"
134
135
   ]
  },
136
137
  {
   "cell_type": "markdown",
138
   "id": "2b0dbc82",
139
140
   "metadata": {},
   "source": [
141
    "## Technical setup"
142
143
144
145
   ]
  },
  {
   "cell_type": "markdown",
146
   "id": "43f94243",
147
148
   "metadata": {},
   "source": [
149
150
151
    "We import a couple of helper functions for visualizations and various computations (`nbutils`), a wrapper to load our gold standard data (`gold`), and finally the Vectorian library (`vectorian`), through which we will perform searches and evaluations later on.\n",
    "\n",
    "In `nbutils.initialize` we check whether there is a [bokeh server](https://docs.bokeh.org/en/latest/index.html) available. This typically *is* the case for local Jupyter installations, but is *not* the case for notebooks running on *mybinder*. In the latter case, the notebook has some limitations regarding interactivity."
152
153
154
155
   ]
  },
  {
   "cell_type": "code",
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
   "execution_count": 1,
   "id": "6bb0f486",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "        <div>Running notebook in <b>SERVER</b> mode.</div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <a href=\"https://bokeh.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
       "        <span id=\"1002\">Loading BokehJS ...</span>\n",
       "    </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "\n",
       "(function(root) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  var force = true;\n",
       "\n",
       "  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
       "    root._bokeh_onload_callbacks = [];\n",
       "    root._bokeh_is_loading = undefined;\n",
       "  }\n",
       "\n",
       "  var JS_MIME_TYPE = 'application/javascript';\n",
       "  var HTML_MIME_TYPE = 'text/html';\n",
       "  var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
       "  var CLASS_NAME = 'output_bokeh rendered_html';\n",
       "\n",
       "  /**\n",
       "   * Render data to the DOM node\n",
       "   */\n",
       "  function render(props, node) {\n",
       "    var script = document.createElement(\"script\");\n",
       "    node.appendChild(script);\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when an output is cleared or removed\n",
       "   */\n",
       "  function handleClearOutput(event, handle) {\n",
       "    var cell = handle.cell;\n",
       "\n",
       "    var id = cell.output_area._bokeh_element_id;\n",
       "    var server_id = cell.output_area._bokeh_server_id;\n",
       "    // Clean up Bokeh references\n",
       "    if (id != null && id in Bokeh.index) {\n",
       "      Bokeh.index[id].model.document.clear();\n",
       "      delete Bokeh.index[id];\n",
       "    }\n",
       "\n",
       "    if (server_id !== undefined) {\n",
       "      // Clean up Bokeh references\n",
       "      var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
       "      cell.notebook.kernel.execute(cmd, {\n",
       "        iopub: {\n",
       "          output: function(msg) {\n",
       "            var id = msg.content.text.trim();\n",
       "            if (id in Bokeh.index) {\n",
       "              Bokeh.index[id].model.document.clear();\n",
       "              delete Bokeh.index[id];\n",
       "            }\n",
       "          }\n",
       "        }\n",
       "      });\n",
       "      // Destroy server and session\n",
       "      var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
       "      cell.notebook.kernel.execute(cmd);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when a new output is added\n",
       "   */\n",
       "  function handleAddOutput(event, handle) {\n",
       "    var output_area = handle.output_area;\n",
       "    var output = handle.output;\n",
       "\n",
       "    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
       "    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n",
       "      return\n",
       "    }\n",
       "\n",
       "    var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
       "\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
       "      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
       "      // store reference to embed id on output_area\n",
       "      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
       "    }\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
       "      var bk_div = document.createElement(\"div\");\n",
       "      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
       "      var script_attrs = bk_div.children[0].attributes;\n",
       "      for (var i = 0; i < script_attrs.length; i++) {\n",
       "        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
       "        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n",
       "      }\n",
       "      // store reference to server id on output_area\n",
       "      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
       "    }\n",
       "  }\n",
       "\n",
       "  function register_renderer(events, OutputArea) {\n",
       "\n",
       "    function append_mime(data, metadata, element) {\n",
       "      // create a DOM node to render to\n",
       "      var toinsert = this.create_output_subarea(\n",
       "        metadata,\n",
       "        CLASS_NAME,\n",
       "        EXEC_MIME_TYPE\n",
       "      );\n",
       "      this.keyboard_manager.register_events(toinsert);\n",
       "      // Render to node\n",
       "      var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
       "      render(props, toinsert[toinsert.length - 1]);\n",
       "      element.append(toinsert);\n",
       "      return toinsert\n",
       "    }\n",
       "\n",
       "    /* Handle when an output is cleared or removed */\n",
       "    events.on('clear_output.CodeCell', handleClearOutput);\n",
       "    events.on('delete.Cell', handleClearOutput);\n",
       "\n",
       "    /* Handle when a new output is added */\n",
       "    events.on('output_added.OutputArea', handleAddOutput);\n",
       "\n",
       "    /**\n",
       "     * Register the mime type and append_mime function with output_area\n",
       "     */\n",
       "    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
       "      /* Is output safe? */\n",
       "      safe: true,\n",
       "      /* Index of renderer in `output_area.display_order` */\n",
       "      index: 0\n",
       "    });\n",
       "  }\n",
       "\n",
       "  // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
       "  if (root.Jupyter !== undefined) {\n",
       "    var events = require('base/js/events');\n",
       "    var OutputArea = require('notebook/js/outputarea').OutputArea;\n",
       "\n",
       "    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
       "      register_renderer(events, OutputArea);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  \n",
       "  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "    root._bokeh_timeout = Date.now() + 5000;\n",
       "    root._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  var NB_LOAD_WARNING = {'data': {'text/html':\n",
       "     \"<div style='background-color: #fdd'>\\n\"+\n",
       "     \"<p>\\n\"+\n",
       "     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "     \"</p>\\n\"+\n",
       "     \"<ul>\\n\"+\n",
       "     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "     \"</ul>\\n\"+\n",
       "     \"<code>\\n\"+\n",
       "     \"from bokeh.resources import INLINE\\n\"+\n",
       "     \"output_notebook(resources=INLINE)\\n\"+\n",
       "     \"</code>\\n\"+\n",
       "     \"</div>\"}};\n",
       "\n",
       "  function display_loaded() {\n",
       "    var el = document.getElementById(\"1002\");\n",
       "    if (el != null) {\n",
       "      el.textContent = \"BokehJS is loading...\";\n",
       "    }\n",
       "    if (root.Bokeh !== undefined) {\n",
       "      if (el != null) {\n",
       "        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
       "      }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(display_loaded, 100)\n",
       "    }\n",
       "  }\n",
       "\n",
       "\n",
       "  function run_callbacks() {\n",
       "    try {\n",
       "      root._bokeh_onload_callbacks.forEach(function(callback) {\n",
       "        if (callback != null)\n",
       "          callback();\n",
       "      });\n",
       "    } finally {\n",
       "      delete root._bokeh_onload_callbacks\n",
       "    }\n",
       "    console.debug(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(css_urls, js_urls, callback) {\n",
       "    if (css_urls == null) css_urls = [];\n",
       "    if (js_urls == null) js_urls = [];\n",
       "\n",
       "    root._bokeh_onload_callbacks.push(callback);\n",
       "    if (root._bokeh_is_loading > 0) {\n",
       "      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    }\n",
       "    if (js_urls == null || js_urls.length === 0) {\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "    root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
       "\n",
       "    function on_load() {\n",
       "      root._bokeh_is_loading--;\n",
       "      if (root._bokeh_is_loading === 0) {\n",
       "        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
       "        run_callbacks()\n",
       "      }\n",
       "    }\n",
       "\n",
       "    function on_error(url) {\n",
       "      console.error(\"failed to load \" + url);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < css_urls.length; i++) {\n",
       "      const url = css_urls[i];\n",
       "      const element = document.createElement(\"link\");\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.rel = \"stylesheet\";\n",
       "      element.type = \"text/css\";\n",
       "      element.href = url;\n",
       "      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
       "      document.body.appendChild(element);\n",
       "    }\n",
       "\n",
       "    const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.2.min.js\": \"XypntL49z55iwGVUW4qsEu83zKL3XEcz0MjuGOQ9SlaaQ68X/g+k1FcioZi7oQAc\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.2.min.js\": \"bEsM86IHGDTLCS0Zod8a8WM6Y4+lafAL/eSiyQcuPzinmWNgNO2/olUF0Z2Dkn5i\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.2.min.js\": \"TX0gSQTdXTTeScqxj6PVQxTiRW8DOoGVwinyi1D3kxv7wuxQ02XkOxv0xwiypcAH\"};\n",
       "\n",
       "    for (let i = 0; i < js_urls.length; i++) {\n",
       "      const url = js_urls[i];\n",
       "      const element = document.createElement('script');\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.async = false;\n",
       "      element.src = url;\n",
       "      if (url in hashes) {\n",
       "        element.crossOrigin = \"anonymous\";\n",
       "        element.integrity = \"sha384-\" + hashes[url];\n",
       "      }\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "  };\n",
       "\n",
       "  function inject_raw_css(css) {\n",
       "    const element = document.createElement(\"style\");\n",
       "    element.appendChild(document.createTextNode(css));\n",
       "    document.body.appendChild(element);\n",
       "  }\n",
       "\n",
       "  \n",
       "  var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.2.min.js\"];\n",
       "  var css_urls = [];\n",
       "  \n",
       "\n",
       "  var inline_js = [\n",
       "    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "    function(Bokeh) {\n",
       "    \n",
       "    \n",
       "    }\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    \n",
       "    if (root.Bokeh !== undefined || force === true) {\n",
       "      \n",
       "    for (var i = 0; i < inline_js.length; i++) {\n",
       "      inline_js[i].call(root, root.Bokeh);\n",
       "    }\n",
       "    if (force === true) {\n",
       "        display_loaded();\n",
       "      }} else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!root._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      root._bokeh_failed_load = true;\n",
       "    } else if (force !== true) {\n",
       "      var cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n",
       "      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "    }\n",
       "\n",
       "  }\n",
       "\n",
       "  if (root._bokeh_is_loading === 0) {\n",
       "    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "    run_inline_js();\n",
       "  } else {\n",
       "    load_libs(css_urls, js_urls, function() {\n",
       "      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "      run_inline_js();\n",
       "    });\n",
       "  }\n",
       "}(window));"
      ],
      "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  var force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  \n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  var NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    var el = document.getElementById(\"1002\");\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.2.min.js\": \"XypntL49z55iwGVUW4qsEu83zKL3XEcz0MjuGOQ9SlaaQ68X/g+k1FcioZi7oQAc\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.2.min.js\": \"bEsM86IHGDTLCS0Zod8a8WM6Y4+lafAL/eSiyQcuPzinmWNgNO2/olUF0Z2Dkn5i\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.2.min.js\": \"TX0gSQTdXTTeScqxj6PVQxTiRW8DOoGVwinyi1D3kxv7wuxQ02XkOxv0xwiypcAH\"};\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      if (url in hashes) {\n        element.crossOrigin = \"anonymous\";\n        element.integrity = \"sha384-\" + hashes[url];\n      }\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.2.min.js\"];\n  var css_urls = [];\n  \n\n  var inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (var i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    if (force === true) {\n        display_loaded();\n      }} else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      var cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
492
493
494
   "source": [
    "import sys\n",
    "\n",
495
    "# make \"nbutils\" and \"code\" importable\n",
496
497
498
499
500
501
    "sys.path.append(\"code\")\n",
    "\n",
    "import nbutils\n",
    "import gold\n",
    "import vectorian\n",
    "import ipywidgets as widgets\n",
502
    "import importlib\n",
503
504
    "from ipywidgets import interact\n",
    "\n",
505
    "# initialize nbutils\n",
506
507
508
    "nbutils.initialize(\"auto\")"
   ]
  },
509
510
  {
   "cell_type": "markdown",
511
512
513
514
515
516
517
518
519
   "id": "69a0586f",
   "metadata": {},
   "source": [
    "## Introducing the gold standard dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9e9b0560",
520
521
   "metadata": {},
   "source": [
522
    "In the following we use a collection of 100 short text snippets (=documents) that quote a total of 20 different Shakespeare phrases. All of these documents were derived from the [WordWeb IDEM portal](http://wordweb-idem.ch/about-us.html). Each document quotes exactly one of the 20 phrases. For some phrases, e.g. \"to be or not to be\", there are more quoting documents than for others (see interactive overview of documents below). If there are multiple documents that quote the same phrase, we selected them in a way each of them does this in a different way. There are no verbatim quotes in the documents, but always more or less complex variations of the original phrase."
Bernhard Liebl's avatar
Bernhard Liebl committed
523
524
525
526
   ]
  },
  {
   "cell_type": "markdown",
527
   "id": "2e212a0b",
Bernhard Liebl's avatar
Bernhard Liebl committed
528
529
   "metadata": {},
   "source": [
530
    "We use this collection of quote documents as a gold standard, to be able to assess how well different embeddings work for different types of quotes. "
531
532
533
534
   ]
  },
  {
   "cell_type": "code",
535
536
   "execution_count": 2,
   "id": "dc9fb99d",
537
   "metadata": {},
Bernhard Liebl's avatar
Bernhard Liebl committed
538
   "outputs": [],
539
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
540
    "gold_data = gold.Data(\"data/raw_data/gold.json\")"
541
542
543
544
   ]
  },
  {
   "cell_type": "markdown",
545
   "id": "1d2043de",
546
547
   "metadata": {},
   "source": [
548
    "Technically speaking, our gold standard consists of a number of `Patterns`. Each `Pattern` is associated with a phrase, e.g. \"to be or not to be\", which occurs in a rephrased form in other works and contexts. These reoccurences, which model text reuse, are called `Occurrences` in our data. Each such `Occurrence` carries the actual phrase and a larger context in which it occurs, which together we call the `Evidence`. The data layout for our gold standard looks as follows:"
549
550
551
552
   ]
  },
  {
   "cell_type": "markdown",
553
   "id": "964b86d2",
554
555
   "metadata": {},
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
556
557
558
559
560
    "![UML of gold standard data](miscellaneous/gold_uml.svg)"
   ]
  },
  {
   "cell_type": "markdown",
561
   "id": "0baa21e8",
Bernhard Liebl's avatar
Bernhard Liebl committed
562
563
   "metadata": {},
   "source": [
564
    "One specific example in this data is the `Occurrence` of the `Pattern` \"to be or not to be\" in a `Source` titled \"The Phoenix\". The `Evidence` to be found here is the phrase \"to be named or not be named\". "
565
566
567
   ]
  },
  {
568
569
   "cell_type": "markdown",
   "id": "870a650d",
570
   "metadata": {},
571
572
573
574
575
576
577
578
579
580
581
582
583
   "source": [
    "All of the 20 quote patterns can be browsed in the 100 associated documents via the following widget."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "64ca0683",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
584
       "model_id": "a71f313e5c634f0eace0af5aa3f7f900",
585
586
587
588
589
590
591
592
593
594
595
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "VBox(children=(HBox(children=(Dropdown(description='pattern:', layout=Layout(width='max-content'), options=(('…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
596
   "source": [
597
    "nbutils.Browser(gold_data, \"to be or not to be\", \"The Phoenix\")"
598
599
600
601
   ]
  },
  {
   "cell_type": "markdown",
602
   "id": "88bebe94",
603
604
   "metadata": {},
   "source": [
605
    "For a further exploration of the dataset, we also provide a visualization of the gold standard dataset, with `Patterns` indicated as blue circles and `Evidence` indicated as green circles. Matching evidence and patterns are connected via edges and each bouqet consists of one pattern and the matching instances of text reuse. Hovering the mouse over the nodes reveals their actual contents."
606
607
608
609
   ]
  },
  {
   "cell_type": "code",
610
611
612
613
614
615
616
617
618
619
620
621
622
   "execution_count": 4,
   "id": "29d62e2c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
623
       "  <div class=\"bk-root\" id=\"aee0fffe-6d12-4799-af95-213d4a41adb1\" data-root-id=\"1005\"></div>\n"
624
625
626
627
628
629
630
631
632
633
634
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "(function(root) {\n",
       "  function embed_document(root) {\n",
       "    \n",
635
636
       "  var docs_json = {\"0d6c2201-6e68-40e3-a325-707ae6c0dc48\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"height\":400,\"output_backend\":\"svg\",\"renderers\":[{\"id\":\"1010\"}],\"title\":{\"id\":\"1033\"},\"toolbar\":{\"id\":\"1009\"},\"width\":1000,\"x_range\":{\"id\":\"1003\"},\"x_scale\":{\"id\":\"1032\"},\"y_range\":{\"id\":\"1004\"},\"y_scale\":{\"id\":\"1031\"}},\"id\":\"1005\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1038\",\"type\":\"NodesOnly\"},{\"attributes\":{},\"id\":\"1031\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1043\",\"type\":\"NodesOnly\"},{\"attributes\":{\"active_multi\":null,\"tools\":[{\"id\":\"1008\"}]},\"id\":\"1009\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1032\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1047\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_width\":{\"value\":1.5}},\"id\":\"1025\",\"type\":\"MultiLine\"},{\"attributes\":{\"callback\":null,\"tooltips\":\"\\n        @phrase\\n        @context\\n        \"},\"id\":\"1008\",\"type\":\"HoverTool\"},{\"attributes\":{\"end\":2.5,\"start\":-1.0},\"id\":\"1004\",\"type\":\"Range1d\"},{\"attributes\":{\"fill_color\":{\"field\":\"node_color\"},\"size\":{\"value\":10}},\"id\":\"1020\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"context\":[\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Those Five Questions (Tusculanae) (1561)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Perchance I have not told you all that I think; for <span style=\\\"font-weight:bold;\\\">not to be when you have been,</span> I think is the greatest misery that may be.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Mirum in Modum (1602)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">And which of both (thinkst thou) would Reason choose? <span style=\\\"font-weight:bold;\\\">To be made capable of endless bliss,</span> With possibility the same to lose, And win a Hell, where all is quite amiss; <span style=\\\"font-weight:bold;\\\">Or not to Be at all,</span> both those to miss: Sure, Reas'n the first would chose, because the last Is lowest hell, where highest horror is; For in Not-beings bottom, being fast, Ought would to worse than nought, unworn waste.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Phoenix (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Fidelio:] As also neither to touch, attempt, molest, or incumber any part, or parts whatsoever, either <span style=\\\"font-weight:bold;\\\">to be named or not to be named,</span> either hidden or unhidden, either those that boldly look abroad, or those that dare not show their faces -[.]</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Epigraph (1649)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Killed by ingratitude here blessed within doth rest: <span style=\\\"font-weight:bold;\\\">To marry or not to marry</span> which is best.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Northern Lass (1629)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Trainwell:] Not to be mad, sir, because she is melancholy. Not by taking a wrong course for her recovery to ruin her, and forfeit your judgment. Do you think that commands with chidings, threats or stripes, have power to work upon her, when she has neither will nor reason within herself <span style=\\\"font-weight:bold;\\\">to do, or not to do</span> anything whatsoever?</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Philosophical Rudiments Concerning Government and Society (1651)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Now the gathering together of many men, who deliberate of what is <span style=\\\"font-weight:bold;\\\">to be done or not to be done</span> for the common good of all men, is that which I call a council.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">An Essay Concerning Human Understanding (1689)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">All the Actions, that we have any Idea of, reducing themselves, as has been said, to these two, viz. Thinking and Motion, so far as a Man has a power <span style=\\\"font-weight:bold;\\\">to think, or not to think: to move, or not to move,</span> according to the preference or direction of his own mind, so far is a Man Free.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Dives and Lazarus (1685)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Come now, thou that pretend'st to Act the Man, Something there needs must be, which ne'er began. As all were nothing once, So 'twould be now. A Number from bare Cyphers could not grow. Nothing's a Barren Womb. If that could breed, <span style=\\\"font-weight:bold;\\\">To be and not to be</span> were well agreed.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Duke of Guise (1682)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[King:] Tomorrow Guise is made Lieutenant-General, Why then tomorrow I no more am King; 'Tis time to push my slackened vengeance home, <span style=\\\"font-weight:bold;\\\">To be a King, or not to be at all;</span> The Vow that manacled my Rage is loosed, Even Heaven is wearied with repeated Crimes, Till lightning flashes round to guard the Throne, And the curbed Thunder grumbles to be gone.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Book of Common Prayer (1562)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[...] May so pass <span style=\\\"font-weight:bold;\\\">the waves of this troublesome world</span> [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">On the State of Matrimony (1571)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">So shall we passe through the dangers of <span style=\\\"font-weight:bold;\\\">the troublous sea</span> of this world</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Britain's Remembrancer (1628)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Yet went I to his Work the furthest way: And, travelled, as mine own occasions lay. Which he perceiving, sent a Storm that crest me; Made shipwreck of my hopes; my labour lost me; Befooled my wisdom; of much joy bereft me; Within the <span style=\\\"font-weight:bold;\\\">Sea of many troubles</span> left me; And what with speed and ease I might have done At first; hath long with pain been lingered on.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Loyal Lovers (1652)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Adrastus:] Thanks, good Clarathea , for thy remembrance; For I had almost lost my self in joyes unspeakable. My dear Letesia , (so I dare call the now) Hast thou made choice of any course to steer in this Same <span style=\\\"font-weight:bold;\\\">sea of trouble,</span> mixt with joy?</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Paradise Lost (1667)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">These were from without The growing miseries, which <span style=\\\"font-weight:bold;\\\">Adam</span> saw Already in part, though hid in gloomiest shade, To sorrow abandoned, but worse felt within, And in <span style=\\\"font-weight:bold;\\\">a troubled Sea of passion</span> tossed, Thus to disburden sought with sad complaint [...].</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Ovid's Metamorphoses (1567)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">What? is it I that did behold <span style=\\\"font-weight:bold;\\\">the pampered Jades of Thrace</span> With Mangers full of flesh of men on which they fed apace? Ist I that down at sight thereof their greasy Mangers threw, And both the fatted Jades themselves and eke their master slew?</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Tamburlaine Part 2 (1587)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Tamburlaine:] [...] The <span style=\\\"font-weight:bold;\\\">headstrong jades of Thrace</span> [...] <span style=\\\"font-weight:bold;\\\">Alcides</span> tamed, That King Aegeus fed with human flesh, And made so wanton that they knew their strengths, Were not subdued with valour more divine Than you by this unconquered arm of mine.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Coxcomb (1609)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Dorothy:] God's precious you young contagious whore must you be ticing? and is your flesh so wrank sir, that two may live upon't? I am glad to hear your curtail grown so lusty; he was dry foundered t'other day, weehee <span style=\\\"font-weight:bold;\\\">my pampered jade of Asia.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Rich Cabinet, or Galateo (1616)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Idle Bees gather no honey, and so become drones to rob the hive: thus are <span style=\\\"font-weight:bold;\\\">pampered jades unapt to travel,</span> and lazy rogues unwilling to work.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The World Runs on Wheels (1623)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">In what state I would lean over the Boot, and look, and pry if I saw any of my acquaintance, and then I would stand up, veiling my Bonnet, kissing my right claw, extending my arms as I had been swimming, with God save your Lordship, Worship, or how dost thou honest neighbour or good-fellow? in a word, the Coach made me think myself better than my betters that went on foot, and that I was but little inferior to Tamburlaine, being jolted thus in state by <span style=\\\"font-weight:bold;\\\">those pampered Jades of Belgia</span> [...].</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Ovid's Metamorphoses (1567)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Instead of legs, to both her sides stick fingers long and fine: <span style=\\\"font-weight:bold;\\\">The rest is belly.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">A Fig for Fortune (1596)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Catechysius the Hermit:] Now all is but the action of the Mind, That rectified, <span style=\\\"font-weight:bold;\\\">the rest is all but wind.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Love's Pilgrimage (1616)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Rodorigo:] Why should such plants as you are, pleasure's children That owe their blushing years to gentle objects, Tenderly bred, and brought up in all fulness, Desire the stubborn wars? [Marcantonio:] In those 'tis wonder, That make their ease their god, and not their honour: But noble General, my end is other, Desire of knowledge Sir, and hope of tying Discretion to my time, which only shows me, And not my years, a man, and makes that more. Which we call handsome, <span style=\\\"font-weight:bold;\\\">the rest is but boys' beauty,</span> And with the boy consumed.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Five Love Letters from a Nun to a Cavalier (1678)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">And I dare assure you that it will not be the worse for you neither, if you never set your heart upon any other woman: for certainly a Passion under the degree of mine, will never content you: You may find more Beauty perhaps elswhere (tho' the time was when you found no fault with mine) but you shall never meet with so true a heart; <span style=\\\"font-weight:bold;\\\">and all the rest is nothing.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">To Alexis in Answer to His Poem against Fruition (1688)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Man! our great business and our aim, For whom we spread our fruitless snares, No sooner kindles the designing flame, But to the next bright object bears The Trophies of his conquest and our shame: Inconstancy's the good supreme <span style=\\\"font-weight:bold;\\\">The rest is airy Notion,</span> empty Dream!</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Sententiae Pueriles (1540)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\"><span style=\\\"font-weight:bold;\\\">Old Men are twice Children. Bis pueri senes.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Cordila (1574)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Yet nevertheless, my father did me not mislike: But age so simple is, and easy to subdue: As childhood weak, that's void of wit and reason quite: They think there's nought, you flatter feigned, but all is true: <span style=\\\"font-weight:bold;\\\">Once old and twice a child,</span> 'tis said with you, Which I affirm by proof, that was defined: In age my father had a childish mind.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The New Academy, or The New Exchange (1636)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Ephraim:] But sir, beware you fall not back again Into your childish follies: but go forwards In manly actions, for <span style=\\\"font-weight:bold;\\\">non progredi id est regredi.</span> [Nehemiah:] I know the meaning of that too, Ephraim: that's <span style=\\\"font-weight:bold;\\\">once a man and twice a child.</span> But if I turn child again, while I have teeth in my head, I'll give Mistress Blith leave to dig 'em out with sugar plums, as she almost did these two of 'em yesterday, with her knuckles.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Religio Medici (1642)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">I find my growing Judgement daily instructs me how to be better, but my untamed affections and confirmed vitiosity makes me daily do worse; I find in my confirmed age the same sins I discovered in my youth, I committed many then because I was a child, and because I commit them still I am yet an Infant. Therefore I perceive <span style=\\\"font-weight:bold;\\\">a man may be twice a child</span> before the days of dotage, and stand in need of Aeson's bath before threescore.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Advice to an Old Man of Sixty-Three, about to Marry a Girl of Sixteen (1686)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Now fie upon him! what is Man, Whose life at best is but a span? When to an Inch it dwindles down, Ice in his bones, Snow on his crown, That he within his crazy brain, Kind thoughts of Love should entertain, That he, when Harvest comes should plow, And when 'tis time to reap, go sow, Who in imagination only strong, Though <span style=\\\"font-weight:bold;\\\">twice a Child</span>, can never twice grow young.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Canterbury Tales (1387)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">But yet never Christian Britons so exiled That there near some that in their privacy Honoured Christ and heathen folk beguiled And near the castle such there dwelt three. That one of hem was blind and might not see, But it were <span style=\\\"font-weight:bold;\\\">with the eye of their mind</span> With which men see, after that they [have] been blind.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Acolastus (English) (1540)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Pelargus:] I learn by myself how much the care of the father is toward his son, being absent, or being away from him, because my son is now lately put away from me, my mind can not abide or suffer to be in rest or quiet, but that he diligently haunteth before <span style=\\\"font-weight:bold;\\\">mine eyes, and before my mind.</span> i. but that he continually or still is present or haunteth or walketh to and fro, <span style=\\\"font-weight:bold;\\\">before mine eyes, and in my mind</span> (by reason of my much thinking upon him) I take care or thought for him being absent, not otherwise.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">A Treatise Of Self-Denial (1675)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">You have had many a thought of it, and bestowed many a day's labour for it, and yet do you not know it? O but you never saw it for all this? Answ. It is a spiritual Blessedness that Flesh and Blood can neither enjoy nor see: But <span style=\\\"font-weight:bold;\\\">by the eye of the Mind</span> you have often seen, at least some glimpse of it; You know that it is the present intuition and full fruition of God himself and your glorified Redeemer with his blessed Angels and Saints in perfect Love, and Joy, and Praise. And if you know this, you are not altogether Strangers to Heaven.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Battle of Alcazar (1588)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Muly Mahamet:] Villain, <span style=\\\"font-weight:bold;\\\">a horse.</span> [Boy:] Oh my Lord, if you return you die. [Muly Mahamet:] Villain I say, give me <span style=\\\"font-weight:bold;\\\">a horse to fly,</span> To swim the river villain, and to flie. [Muly Mahamet:] <span style=\\\"font-weight:bold;\\\">A horse, a horse, villain a horse,</span> That I may take the river straight and fly.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Scourge of Villainy (1598)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\"><span style=\\\"font-weight:bold;\\\">A man, a man, a kingdom for a man!</span> Why, how now, currish, mad Athenian? Thou cynic dog, see'st not streets do swarm With troops of men?</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Eastward Ho! (1605)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Security:] [...] <span style=\\\"font-weight:bold;\\\">A boat, a boat, a boat, a full hundred Marks for a boat.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Fawn, or Parasitaster (1605)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Don Zuccone:] [...] <span style=\\\"font-weight:bold;\\\">A fool, a fool, a fool! my Coxcomb for a fool!</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Poor Man's Comfort (1616)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Sigismond:] [...] but where is Europa? See where she swims away upon a bull's back; <span style=\\\"font-weight:bold;\\\">my kingdom for a boat, for a muscle boat;</span> lay more sails on!</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Little French Laywer (1620)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Sampson:] [...] Look up brave friend, I have no means to rescue thee, <span style=\\\"font-weight:bold;\\\">my Kingdom for a sword.</span> [Champernell:] I'll sword you presently. I'll claw your skin-coat too.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Iter Boreale (1647)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Upon this Hill they met; why, he could tell The Inch where Richmond stood, where Richard fell; Besides what of his knowledge he could say, He had Authentic notice from the Play; Which I might guess by his mustering up the Ghosts, And policies not incident to hosts: But chiefly by that one perspicuous thing, Where he mistook a Player for a King, For when he would have said, <span style=\\\"font-weight:bold;\\\">King Richard</span> died, And called <span style=\\\"font-weight:bold;\\\">a horse, a horse,</span> he Burbage cried.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Don Carlos, Prince of Spain (1676)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[King Philip of Spain:] I've all this while been angry but in vain; She heats me first, then strokes me tame again. Oh wert thou true how happy should I be! Think'st Thou that I have Joy to part with thee? No, <span style=\\\"font-weight:bold;\\\">all my Kingdom for the bliss I'd give:</span> Nay though it were not so but to believe.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Spanish Tragedy (1587)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[King:] Who is he that interrupts our business? [Hieronimo:] Not I. (Aside) <span style=\\\"font-weight:bold;\\\">Hieronimo, beware, go by, go by.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Blurt, Master Constable (1601)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Simperina:] <span style=\\\"font-weight:bold;\\\">Go from my window go, go from, and away, go by old Hieronimo</span>; nay and you shrink i'th wetting, walk, walk, walk.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Satiromastix, or The Untrussing of the Humorous Poet (1601)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Tucca:] <span style=\\\"font-weight:bold;\\\">Go by Hieronimo, go by</span>; and here, drop the ten shillings into this basin; do, drop, when Jack?</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Captain (1612)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Fabritio:] [...] And call thee bloody bones, and Spade, and Spitfire, And Gaffer Madman; <span style=\\\"font-weight:bold;\\\">and go by Hieronimo</span>, And will with wisp and come aloft, and crack rope, And old Saint Dennis with the dudgeon Codpiece: And twenty such names.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Rebellion (1633)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[First Tailor:] Who shall act Prince Belthazer and the King? [Third Tailor:] I will do Prince Belthazer too: and for the King Who but I? which of you all has such a face for a King, Or such a leg to trip up the heels of a Traitor? [Second Tailor:] You will do all I think. [Third Tailor:] Yes marry will I; who but Uirmine? yet I will Leave all to play the King: <span style=\\\"font-weight:bold;\\\">Pass by Hieronimo.</span></div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Garland or Chaplet of Laurel (1568)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Yet, though I say it, <span style=\\\"font-weight:bold;\\\">thereby lieth a tale</span> [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Ram Alley (1608)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Sir Oliver Smallshank:] We old men have our crotchets, our conundrums, Our fegares, quirks and quibibles, As well as youth, Justice Tutchim I go To hunt no Buck, but prick a lusty Doe, I go in truth a wooing. [Justice Tutchin:] Then ride with me, I'll bring you to my sister Somerfield. [Sir Oliver Smallshank:] Justice not so: <span style=\\\"font-weight:bold;\\\">by her there hangs a Tale.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">A Maidenhead Well Lost (1629)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Clown:] I confess it; but whether you have served him well, or no, <span style=\\\"font-weight:bold;\\\">there hangs a Tale.</span></div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Tears of an Affectionate Shepherd Sick for Love (1594)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">I have a fine bow, and an ivory arrow: And if thou miss, yet meat thou shalt lack, I'll hang a bag and bottle at thy back. <span style=\\\"font-weight:bold;\\\">Wilt thou set springs in a frosty Night, To catch the long-billed Woodcock</span> and the Snipe? (By the bright glimmering of the Starry light) The Partridge, Phaesant, or the greedy Crype?</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Grimello's Fortunes (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Ganuzido:] Why, what have you taken then? or have you authority to take fools as you finde them in your way? If you have, you may happen yet to be deceived. [Grimello:] Why sir, I set no <span style=\\\"font-weight:bold;\\\">springs for Woodcocks</span>, and though I be no great wise man, yet I can do something else, than shoo the Goose for my living: and therefore, I pray you neither fear your Purse, nor play too much with my folly.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Roaring Girl (1611)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Sir Davy:] Here's <span style=\\\"font-weight:bold;\\\">the spring I ha' set to catch this woodcock in:</span> an action In a false name - unknown to him - is entered. I'th' counter to arrest Jack Dapper.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Laquei Ridiculosi (1613)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">My honest friends that reads, I you beseech To make the best construction of each letter; And not to blame my lavishness of speech, In paying soundly where I am a debtor: My word and credit else you should infringe, Which was <span style=\\\"font-weight:bold;\\\">to catch the Woodcock in a Springe</span>.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The House of Correction (1619)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Alas, poor Book, hunt not thou after praise, Nor dare to stretch thy hand unto the Bays Upon a Poets head: let it suffice To thee and me, the world doth us despise. For 'tis a mad World, and it turns on hinges, Whilst some a-birding go, and <span style=\\\"font-weight:bold;\\\">set their springes For to catch Woodcocks.</span> Others sting and bite Like Wasps and Mastiffs, and do take delight To quarrel with their shadows, nay, themselves, And their own brood.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Citizen Turned Gentleman (1672)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Young Jorden:] By that means we shall get quit of him. [Trickmore:] The posture our affairs are in at present, do not much seem to require his absence, therefore I have contrived a defeat, and will keep him yet in play. I have set another <span style=\\\"font-weight:bold;\\\">Spring, which if it catch the Woodcock</span>, 'twill hold him fast. Look here comes forth our Knight in Petti-coats: muffle yourself up in your Cloak, and be gone. [Young Jorden:] A stately dame on my word.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The London Cuckolds (1682)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Roger:] Her's a Letter, Sir, to be delivered to you with all speed. [Ramble:] Ha - let me see't quickly (Opens it and reads.) From Eugenia [Townly:] Ay the Devil's coming abroad again to hinder your conversion. [Ramble (reads):] Sir, My Husband will be from home all this morning, I am very desirous to be informed the particulars of last nights misfortune; curiosity forces me, in spite of blushes to give you this invitation. Enter at the back-door without knocking, if you meet not Jane below come directly up stairs. - Good. [Townly:] <span style=\\\"font-weight:bold;\\\">Here's another springe laid to catch the Woodcock.</span> [Ramble:] Frank, is not here temptation now, is it to be resisted think you, can flesh and blood forbear going? [Townly:] Truly here is a very fair appearance.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Dutch Courtesan (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Master Mulligrub:] Who goes there: <span style=\\\"font-weight:bold;\\\">Illo, ho, ho:</span> sounds shall I run mad, Loose my wits: shall I be hanged, hark who goes there? Do not fear to be poor Mullegrub, Thou hast a sure stock now.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Poor Man's Comfort (1616)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Sigismond:] <span style=\\\"font-weight:bold;\\\">Ho! illo, illo, illo.</span> [Cazzo:] The game's not up yet Sir. I think some gelder had a hand in the getting of him, he understands no language but the horn.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Thierry, King of France, and His Brother Theodoret (1617)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Devitry:] Here Sir, here, I could beat my brains out, that could not think of boots, boots Sir, wide-topped boots, I shall love them the better whilst I live; but are you sure your Jewels are here Sir? [Protaldye:] Sure sayst thou? ha, ha, ha. [Devitry:] <span style=\\\"font-weight:bold;\\\">So ho, illo ho.</span> [Soldiers within] Here Captain. here. [Protaldye:] 'Foot what do you mean Sir? (Enter Soldiers.) [Devitry:] A trick to boot, say you; here you dull slaves, purchase, purchase the soul of the Rock, Diamonds, sparkling Diamonds.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Child Hath Found His Father, or The Birth of Merlin (1622)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Clown:] If there be any man that wants a name, will come in for conscience sake, and acknowledge himself to be a Whore-Master, he shall have that laid to his charge in an hour, he shall not be rid on in an age; if he have Lands, he shall have an heir, if he have patience, he shall have a wife, if he have neither Lands nor patience, he shall have a whore, so ho boy, so ho, so, so. [Prince Uter (within):] <span style=\\\"font-weight:bold;\\\">So, ho, by, so, ho, illo ho, illo ho.</span> [Clown:] Har, hark sister, there's one hollows to us, what a wicked world's this, a man cannot so soon name a whore but a knave comes presently, and see where he is, stand close a while, sister.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Seven Champions of Christendom (1634)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Calib the Witch:] Ha, ha, ha; and when will that be Tarpax? Vanish like smoke, my fear, come kiss me my Love, Thou hast earned thy breakfast Chuck; here suck thy fill. [Clown (within):] <span style=\\\"font-weight:bold;\\\">Illo ho, ho Illo.</span> [Tarpax:] What mortal's that disturbs us? Shall I blast him? [Calib the Witch:] Hold my Love, 'tis Suckabus our son; fall off.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Triumph of Beauty (1634)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Bottle:] Weather? You are wise; do you think, Sir, I have so little honesty, to be Sir Pandarus to your Melancholy. <span style=\\\"font-weight:bold;\\\">Illo, ho . -</span> [Paris:] What, art thou mad? [Bottle:] You are little better: if you can get their consent. [Paris:] Whose consent? [Bottle:] Hobinoll, Crab, Toad-stool, - <span style=\\\"font-weight:bold;\\\">Illo ho , boys.</span> Some friends of yours, that sent me to hunt out your Highness, your humble Subjects and Play-fellows, that have a mind to be merry.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Macbeth, A Tragedy (1664)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Maid:] Yes, I have heard stories, how some men Have in such lonely places been affrighted With dreadful shapes and noises. (Macduff hollows.) [Lady Macduff:] But hark, my lord sure hollows; 'Tis he; answer him quickly. [Servant:] <span style=\\\"font-weight:bold;\\\">Illo, ho, ho, ho.</span> (Enter Macduff.) [Lady Macduff:] Now I begin to see him: are you afoot, my Lord?</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">King Lear (1605)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Edgar:] O, matter and impertinency mixed, <span style=\\\"font-weight:bold;\\\">Reason in madness!</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Fatal Jealousy (1672)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Don Gerardo:] These Actions sure did seem a perfect madness. [Servant:] It seemed indeed <span style=\\\"font-weight:bold;\\\">a madness methodized</span>, Like theirs who are Transported far with Passion.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">A Sermon Preached at the Funeral of Mr. Henry Stubbs (1676)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">The wonder of that Foreigner in Henry VIII's days, Deus bone quomodo hic vivunt gentes, that saw men killed for being Protestants, and for being Papists, was not so contradictory a subject as the Papists usage of the Saints, a stupendous instance of <span style=\\\"font-weight:bold;\\\">man's madness and Satan's methods</span>, that at the same time can rack, and burn, and Murder Saints, and yet Honour the Relics, Names and Memories of the Dead that were before them.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Devil of a Wife (1686)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Rowland:] Methought <span style=\\\"font-weight:bold;\\\">there was a Method in her madness,</span> she did not know herself i'th Glass.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">A Fool's Preferment (1688)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Lyonel:] [...] (Sings) There's nothing so fatal as Woman, To hurry a Man to his Grave, You must think, you may plot, You may sigh like a Sot: She uses you more like a Slave. But a Bottle, although it be common, The Cheats of the Fair will undo, It will drive from your Head The Delights of the Bed; He that's drunk is not able to woo. (Exit Lyonel) [Celia:] <span style=\\\"font-weight:bold;\\\">Method in Madness</span>, Grace even in Distraction: I'll never leave him, 'till, by Art or Prayer, I have restored his Senses to their Office.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Every Man In His Humour (1598)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Bobadill:] [...] sure <span style=\\\"font-weight:bold;\\\">I was struck with a planet</span> then, for I had no power to touch my weapon. [Ed. Knowell:] Aye, like enough, I have heard of many that have been beaten under a planet: go, get you to a surgeon.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Titus Andronicus (1592)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Marcus:] Who is this? My niece, that flies away so fast? - Cousin, a word. Where is your husband? If I do dream, would all my wealth would wake me. If I do wake, <span style=\\\"font-weight:bold;\\\">some planet strike me down</span> That I may slumber an eternal sleep.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Coriolanus (1608)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Cominius:] [...] Alone he entered The mortal gate o' th' city, which he painted With shunless destiny; aidless came off And with a sudden reinforcement <span style=\\\"font-weight:bold;\\\">struck Corioles like a planet.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Atheist's Tragedy (1610)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[D'Amville:] With an amazement behold thine error and <span style=\\\"font-weight:bold;\\\">be planet struck.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Winter's Tale (1611)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Leontes:] [...] Physic for 't there's none. It is <span style=\\\"font-weight:bold;\\\">a bawdy planet, that will strike</span> Where 'tis predominant; and 'tis powerful, think it, From east, west, north, and south.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Dutch Courtesan (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Mrs. Mulligrub:] [...] <span style=\\\"font-weight:bold;\\\">nay and I bear not a brain</span> [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Fawn, or Parasitaster (1605)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Gonzago:] [...] is't not well thought my Lord, <span style=\\\"font-weight:bold;\\\">we must bear brain</span> [...]</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Ram Alley (1608)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Throat:] [...] Dash, <span style=\\\"font-weight:bold;\\\">we must bear some brain</span> to St. John's street, go, run, fly: and afar off enquire [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Golden Age (1611)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Clown:] [...] As I can bear a pack, so <span style=\\\"font-weight:bold;\\\">I can bear a brain</span> [...].</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Henry IV Part 2 (1597)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Falstaff:] [...] left the <span style=\\\"font-weight:bold;\\\">liver white and pale</span>, which is the badge of pusillanimity and cowardice.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Hamlet (1600)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Hamlet:] [...] <span style=\\\"font-weight:bold;\\\">But I am pigeon-livered and lack gall</span> [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">King Lear (1605)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Kent:] [...] a <span style=\\\"font-weight:bold;\\\">lily-livered,</span> action-taking, whoreson, glass-gazing [...] the composition of a knave, beggar, coward, pander, and the son and heir of a mongrel bitch.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Damon and Pythias (Edwards) (1564)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Damon:] [...] <span style=\\\"font-weight:bold;\\\">Pythagoras</span> said that <span style=\\\"font-weight:bold;\\\">this world was like a stage Whereon many play their parts.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Roman Actor (1626)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Aretinus:] Are you on <span style=\\\"font-weight:bold;\\\">the stage,</span> You talk so boldly? [Paris:] <span style=\\\"font-weight:bold;\\\">The whole world being one</span> This place is not exempted [...].</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Every Man Out of His Humour (1599)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Puntarvolo:] [...] Here comes one that will <span style=\\\"font-weight:bold;\\\">carry coals</span>; ergo, will hold my dog [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Henry V (1599)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Boy:] [...] Nym and Bardolph are sworn brothers in filching, and in Calais they stole a fire shovel. I knew by that piece of service the men would <span style=\\\"font-weight:bold;\\\">carry coals.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Antonio's Revenge (1600)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Balurdo:] [...] I were as he, <span style=\\\"font-weight:bold;\\\">I would bear no coals</span>, law I, I begin to swell, puff.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Malcontent (1603)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Malevole:] Great slaves fear better than love, born naturally for <span style=\\\"font-weight:bold;\\\">a coal-basket</span> [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">May Day (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Quintiliano:] And yet take heed you swear by no man's beard but your own, for that may breed a quarrel; above all things <span style=\\\"font-weight:bold;\\\">you must carry no coals.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">May Day (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Quintiliano:] Why sir, because I entertained this Gentleman for my Antient, (being my dear friend and an excellent scholar) he takes pepper ith' nose and sneezes it out upon my Antient; now sir <span style=\\\"font-weight:bold;\\\">(he being of an uncoal-carrying spirit)</span> falls foul on him, calls him gull openly [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Law-Tricks (1604)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Lurdo:] [...] <span style=\\\"font-weight:bold;\\\">I'll carry coals and you will,</span> no horns, I know the law.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">On the State of Matrimony (1571)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\"><span style=\\\"font-weight:bold;\\\">The woman is a weak creature</span> [...] <span style=\\\"font-weight:bold;\\\">She is the weaker vessel, of a frail heat, inconstant</span> [...]. <span style=\\\"font-weight:bold;\\\">The woman is the more frail part</span> [...]. <span style=\\\"font-weight:bold;\\\">The woman is a frail vessel.</span></div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Woman-Hater (1606)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Gondarino:] My Lord, I speak not this to gain new grace, But howsoever you esteem my words, My love and duty will not suffer me To see you favour such a prostitute, And I stand by dumb; without Rack, Torture, Or Strappado, I'll unrip myself, I do confess I was in company with <span style=\\\"font-weight:bold;\\\">that pleasing peace of frailty, that we call woman</span>; I do confess after along and tedious siege, I yielded.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Samson Agonistes (1671)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Dalila:] \\\"[...] To what I did thou shewdst me first the way. But I to enemies revealed, and should not. Nor shouldst thou have trusted that to <span style=\\\"font-weight:bold;\\\">woman's frailty</span>: Ere I to thee, thou to thyself wast cruel. [...]\\\"</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Sonnet (1687)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">How could you once so kind appear, To kiss, to sigh, and shed a tear, To cherish and caress me so, And now not let but bid me go? <span style=\\\"font-weight:bold;\\\">Oh Woman! Frailty is thy name</span>, Since she's untrue y'are all to blame, And but in man no truth is sound: 'Tis a fair Sex, we all must love it, But (on my conscience) could we prove it, They all are false even under ground.</div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Bishop's Bible (1568)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Therefore <span style=\\\"font-weight:bold;\\\">gapeth hell and openeth her mouth marvellous wide,</span> that their glory, multitude, and wealth, with such as rejoice in her, may descend into it.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">Doctor Faustus (1588)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Faustus:] [...] My God, my God, look not so fierce on me. Adders and serpents, let me breathe awhile. <span style=\\\"font-weight:bold;\\\">Ugly hell, gape not</span>, come not, Lucifer! I'll burn my books. Ah, Mephistophilis!</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Lovesick King (1619)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Canutus:] Thou'st spoke enough to damn thee, Impudent Traitor, go die unpitied; Though thou hast my hate, thou shalt not have the honour of my sword to take away thy life, you of our Guard; See a base death performed upon this Slave. [Captain:] Farewell my Liege you once must have a grave. (Exit with Guard.) [Harold:] My Resolution's firm, and I will speak, <span style=\\\"font-weight:bold;\\\">though hell should gape</span> to swallow me alive; What's he that's gone to death my Sovereign? [Canutus:] Traytor (Harold) to my best content.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Perfect-Cursed-Blessed Man (1628)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">This Sin faln Man raise-up t'integrity, Or rase Me out from Heav'ns society. What though He sinned? alas He was but Earth! Though dead in Sin? thy Grace can give new birth! Though grieved with pains? O thou canst 'ford him ease! <span style=\\\"font-weight:bold;\\\">Though Hell gape for Him?</span> thou canst Hell appease! Thou mad'st Him Thee to bless eternally: But damned Souls curse everlastingly.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Fatal Contract (1633)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[Clovis:] What is it, Eunuch? [...] <span style=\\\"font-weight:bold;\\\">Though death stood gaping wide to swallow me, I would not shrink nor fear.</span></div>\\n        </div>\\n        \",\"\",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Geneva Bible (1560)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Then God turned himself away and gave them up to serve <span style=\\\"font-weight:bold;\\\">the host of heaven,</span> as it is written in the book of the Prophets [...].</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Geneva Bible (1560)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">Thou art Lord alone: thou hast made heaven, and <span style=\\\"font-weight:bold;\\\">the heaven of all heavens, with all their host,</span> the earth, and all things that are therein, the seas, and all that are in them, and thou preservest them all, and <span style=\\\"font-weight:bold;\\\">the host of the heaven</span> worshippeth thee.</div>\\n        </div>\\n        \",\"\\n        <div style=\\\"margin-left:2em\\\">\\n            <span style=\\\"font-variant:small-caps; font-size: 14pt;\\\">The Atheist's Tragedy (1610)</style>\\n            <hr>\\n            <div style=\\\"font-variant:normal; font-size: 10pt;\\\">[D'Amville:] Now <span style=\\\"font-weight:bold;\\\">all the host of heaven</span> forbid!</div>\\n        </div>\\n        \"],\"index\":[\"to be or not to be\",\"ww_594e076e93ed4ccf\",\"ww_caf27ffdc954c844\",\"ww_66a52436edb537eb\",\"ww_a2a0ab6fbca2028d\",\"ww_90d74567307f904e\",\"ww_669475d1f67eb920\",\"ww_19b54f39c1d245a7\",\"ww_295a0d9237083fe7\",\"ww_971c475bea921406\",\"sea of troubles\",\"ww_13c9cec7f15c0056\",\"ww_01d64039ef29add5\",\"ww_22f51d85f231b2c7\",\"ww_6cc712b23bbafc5e\",\"ww_293034ae2a49b418\",\"pampered jades of Asia\",\"ww_4c352e527d12797b\",\"ww_f38739f4c2391f47\",\"ww_b0913df56f856f27\",\"ww_7ecb8d5ef454d329\",\"ww_8c5990fb7392c89b\",\"The rest is silence.\",\"ww_b7e69820855e7384\",\"ww_00ce5b9c822fbaca\",\"ww_3a359a22623b0162\",\"ww_d9ad6d0b3d1a5598\",\"ww_1bfaaa3ed70bb1ac\",\"an old man is twice a child\",\"ww_663f0143320cc310\",\"ww_6821daa19a2840e1\",\"ww_2239f6f9bbcb7446\",\"ww_18fac1f2fb1ce41f\",\"ww_028ce75225433cb6\",\"In my mind's eye\",\"ww_880962580e78c61f\",\"ww_909a37b5a02277e8\",\"ww_b4cc414fb56c2490\",\"a horse, a horse, my kingdom for a horse\",\"ww_32c26a7909c83bda\",\"ww_782a5cebdaa9d8ae\",\"ww_b5b8083a6a1282bc\",\"ww_a59a84adf088089f\",\"ww_9a6cb20b0b157545\",\"ww_d62468b11823d4c9\",\"ww_4d363cb4783e0b62\",\"ww_6f12e582a20c2675\",\"go, by Saint Hieronimo\",\"ww_d2361763e8343194\",\"ww_870f29a7dd6f45d9\",\"ww_e01ecfd8de9acc61\",\"ww_a6f4b0e3428ad510\",\"ww_e2adb2be413fd5a5\",\"thereby hangs a tale\",\"ww_b71ba2ae83103344\",\"ww_0dbc3e90bbb46334\",\"ww_d67a1f9d4d50f936\",\"springes to catch woodcocks\",\"ww_8e68a517bc3ecceb\",\"ww_ff8f000dd9cb7a3b\",\"ww_10ba3fba1c0c1529\",\"ww_3b6425a2159f1d62\",\"ww_8bdc1e03f5a6a253\",\"ww_379b8583a4d90080\",\"ww_d2d2a262485c5d23\",\"Illo, ho, ho, my lord\",\"ww_07f94c5a14cdc619\",\"ww_235b7f298b54d631\",\"ww_c2f29658555093e7\",\"ww_585eaf1c6368e7af\",\"ww_6e3b338bf16ebf06\",\"ww_98df9ad5de049472\",\"ww_25e51ae4b6234004\",\"though this be madness, yet there is method in it\",\"ww_ba8b881de92fd8a4\",\"ww_7286ff06f562c07b\",\"ww_1917adced358cb4a\",\"ww_89443854a5459695\",\"ww_b42fadea9f893c6e\",\"planets strike\",\"ww_57dcec5b9ff2c4b9\",\"ww_aaeb0dba8a5ac513\",\"ww_3bed848d2566166b\",\"ww_aef241d5b9263438\",\"ww_2560885c478fdfe0\",\"I do bear a brain.\",\"ww_ff2cef3775c5331c\",\"ww_58a0dec287a4170c\",\"ww_01bd7d0624c8a955\",\"ww_97b67e22685ce125\",\"livers white as milk\",\"ww_415def570b10b5b9\",\"ww_215595adbf8efd41\",\"ww_5cdd4abfb59f6f0f\",\"All the world's a stage\",\"ww_c9d35c25f4fc4189\",\"ww_7795f933b612f710\",\"we will not carry coals\",\"ww_0eaf5058b7a910c7\",\"ww_51946dd5d1d57d4a\",\"ww_21a4c5dc5b2f6ed6\",\"ww_994d23875f3f8ca7\",\"ww_f32f713a36985f62\",\"ww_7be6a3588e6b5de0\",\"ww_83e9ca4d103b86e1\",\"frailty, thy name is woman\",\"ww_95966dab4576ec42\",\"ww_3a6f583779747368\",\"ww_2b785e10c908c7ec\",\"ww_0747839b540f70c7\",\"hell itself should gape\",\"ww_2e3d7768539ae2ab\",\"ww_a055872533d2ab57\",\"ww_84f20b8b2eb71001\",\"ww_eb3ebae9ea90daa0\",\"ww_6c565da6889f5269\",\"O all you host of heaven!\",\"ww_3101379204640286\",\"ww_c6bb592912665657\",\"ww_cd82c881f4f118d0\"],\"node_color\":[\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#abdda4\",\"#2b83ba\",\"#abdda4\",\"#abdda4\",\"#abdda4\"],\"phrase\":[\"<i>to be or not to be</i>\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"<i>sea of troubles</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>pampered jades of Asia</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>The rest is silence.</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>an old man is twice a child</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>In my mind's eye</i>\",\"\",\"\",\"\",\"<i>a horse, a horse, my kingdom for a horse</i>\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"<i>go, by Saint Hieronimo</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>thereby hangs a tale</i>\",\"\",\"\",\"\",\"<i>springes to catch woodcocks</i>\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"<i>Illo, ho, ho, my lord</i>\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"<i>though this be madness, yet there is method in it</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>planets strike</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>I do bear a brain.</i>\",\"\",\"\",\"\",\"\",\"<i>livers white as milk</i>\",\"\",\"\",\"\",\"<i>All the world's a stage</i>\",\"\",\"\",\"<i>we will not carry coals</i>\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"<i>frailty, thy name is woman</i>\",\"\",\"\",\"\",\"\",\"<i>hell itself should gape</i>\",\"\",\"\",\"\",\"\",\"\",\"<i>O all you host of heaven!</i>\",\"\",\"\",\"\"],\"subset\":[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,18,18,18,18,18,18,19,19,19,19]},\"selected\":{\"id\":\"1044\"},\"selection_policy\":{\"id\":\"1045\"}},\"id\":\"1012\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1016\"}},\"id\":\"1018\",\"type\":\"CDSView\"},{\"attributes\":{\"edge_renderer\":{\"id\":\"1017\"},\"inspection_policy\":{\"id\":\"1043\"},\"layout_provider\":{\"id\":\"1019\"},\"node_renderer\":{\"id\":\"1013\"},\"selection_policy\":{\"id\":\"1038\"}},\"id\":\"1010\",\"type\":\"GraphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1012\"}},\"id\":\"1014\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"end\":[\"ww_594e076e93ed4ccf\",\"ww_caf27ffdc954c844\",\"ww_66a52436edb537eb\",\"ww_a2a0ab6fbca2028d\",\"ww_90d74567307f904e\",\"ww_669475d1f67eb920\",\"ww_19b54f39c1d245a7\",\"ww_295a0d9237083fe7\",\"ww_971c475bea921406\",\"ww_13c9cec7f15c0056\",\"ww_01d64039ef29add5\",\"ww_22f51d85f231b2c7\",\"ww_6cc712b23bbafc5e\",\"ww_293034ae2a49b418\",\"ww_4c352e527d12797b\",\"ww_f38739f4c2391f47\",\"ww_b0913df56f856f27\",\"ww_7ecb8d5ef454d329\",\"ww_8c5990fb7392c89b\",\"ww_b7e69820855e7384\",\"ww_00ce5b9c822fbaca\",\"ww_3a359a22623b0162\",\"ww_d9ad6d0b3d1a5598\",\"ww_1bfaaa3ed70bb1ac\",\"ww_663f0143320cc310\",\"ww_6821daa19a2840e1\",\"ww_2239f6f9bbcb7446\",\"ww_18fac1f2fb1ce41f\",\"ww_028ce75225433cb6\",\"ww_880962580e78c61f\",\"ww_909a37b5a02277e8\",\"ww_b4cc414fb56c2490\",\"ww_32c26a7909c83bda\",\"ww_782a5cebdaa9d8ae\",\"ww_b5b8083a6a1282bc\",\"ww_a59a84adf088089f\",\"ww_9a6cb20b0b157545\",\"ww_d62468b11823d4c9\",\"ww_4d363cb4783e0b62\",\"ww_6f12e582a20c2675\",\"ww_d2361763e8343194\",\"ww_870f29a7dd6f45d9\",\"ww_e01ecfd8de9acc61\",\"ww_a6f4b0e3428ad510\",\"ww_e2adb2be413fd5a5\",\"ww_b71ba2ae83103344\",\"ww_0dbc3e90bbb46334\",\"ww_d67a1f9d4d50f936\",\"ww_8e68a517bc3ecceb\",\"ww_ff8f000dd9cb7a3b\",\"ww_10ba3fba1c0c1529\",\"ww_3b6425a2159f1d62\",\"ww_8bdc1e03f5a6a253\",\"ww_379b8583a4d90080\",\"ww_d2d2a262485c5d23\",\"ww_07f94c5a14cdc619\",\"ww_235b7f298b54d631\",\"ww_c2f29658555093e7\",\"ww_585eaf1c6368e7af\",\"ww_6e3b338bf16ebf06\",\"ww_98df9ad5de049472\",\"ww_25e51ae4b6234004\",\"ww_ba8b881de92fd8a4\",\"ww_7286ff06f562c07b\",\"ww_1917adced358cb4a\",\"ww_89443854a5459695\",\"ww_b42fadea9f893c6e\",\"ww_57dcec5b9ff2c4b9\",\"ww_aaeb0dba8a5ac513\",\"ww_3bed848d2566166b\",\"ww_aef241d5b9263438\",\"ww_2560885c478fdfe0\",\"ww_ff2cef3775c5331c\",\"ww_58a0dec287a4170c\",\"ww_01bd7d0624c8a955\",\"ww_97b67e22685ce125\",\"ww_415def570b10b5b9\",\"ww_215595adbf8efd41\",\"ww_5cdd4abfb59f6f0f\",\"ww_c9d35c25f4fc4189\",\"ww_7795f933b612f710\",\"ww_0eaf5058b7a910c7\",\"ww_51946dd5d1d57d4a\",\"ww_21a4c5dc5b2f6ed6\",\"ww_994d23875f3f8ca7\",\"ww_f32f713a36985f62\",\"ww_7be6a3588e6b5de0\",\"ww_83e9ca4d103b86e1\",\"ww_95966dab4576ec42\",\"ww_3a6f583779747368\",\"ww_2b785e10c908c7ec\",\"ww_0747839b540f70c7\",\"ww_2e3d7768539ae2ab\",\"ww_a055872533d2ab57\",\"ww_84f20b8b2eb71001\",\"ww_eb3ebae9ea90daa0\",\"ww_6c565da6889f5269\",\"ww_3101379204640286\",\"ww_c6bb592912665657\",\"ww_cd82c881f4f118d0\"],\"start\":[\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"to be or not to be\",\"sea of troubles\",\"sea of troubles\",\"sea of troubles\",\"sea of troubles\",\"sea of troubles\",\"pampered jades of Asia\",\"pampered jades of Asia\",\"pampered jades of Asia\",\"pampered jades of Asia\",\"pampered jades of Asia\",\"The rest is silence.\",\"The rest is silence.\",\"The rest is silence.\",\"The rest is silence.\",\"The rest is silence.\",\"an old man is twice a child\",\"an old man is twice a child\",\"an old man is twice a child\",\"an old man is twice a child\",\"an old man is twice a child\",\"In my mind's eye\",\"In my mind's eye\",\"In my mind's eye\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"a horse, a horse, my kingdom for a horse\",\"go, by Saint Hieronimo\",\"go, by Saint Hieronimo\",\"go, by Saint Hieronimo\",\"go, by Saint Hieronimo\",\"go, by Saint Hieronimo\",\"thereby hangs a tale\",\"thereby hangs a tale\",\"thereby hangs a tale\",\"springes to catch woodcocks\",\"springes to catch woodcocks\",\"springes to catch woodcocks\",\"springes to catch woodcocks\",\"springes to catch woodcocks\",\"springes to catch woodcocks\",\"springes to catch woodcocks\",\"Illo, ho, ho, my lord\",\"Illo, ho, ho, my lord\",\"Illo, ho, ho, my lord\",\"Illo, ho, ho, my lord\",\"Illo, ho, ho, my lord\",\"Illo, ho, ho, my lord\",\"Illo, ho, ho, my lord\",\"though this be madness, yet there is method in it\",\"though this be madness, yet there is method in it\",\"though this be madness, yet there is method in it\",\"though this be madness, yet there is method in it\",\"though this be madness, yet there is method in it\",\"planets strike\",\"planets strike\",\"planets strike\",\"planets strike\",\"planets strike\",\"I do bear a brain.\",\"I do bear a brain.\",\"I do bear a brain.\",\"I do bear a brain.\",\"livers white as milk\",\"livers white as milk\",\"livers white as milk\",\"All the world's a stage\",\"All the world's a stage\",\"we will not carry coals\",\"we will not carry coals\",\"we will not carry coals\",\"we will not carry coals\",\"we will not carry coals\",\"we will not carry coals\",\"we will not carry coals\",\"frailty, thy name is woman\",\"frailty, thy name is woman\",\"frailty, thy name is woman\",\"frailty, thy name is woman\",\"hell itself should gape\",\"hell itself should gape\",\"hell itself should gape\",\"hell itself should gape\",\"hell itself should gape\",\"O all you host of heaven!\",\"O all you host of heaven!\",\"O all you host of heaven!\"]},\"selected\":{\"id\":\"1046\"},\"selection_policy\":{\"id\":\"1047\"}},\"id\":\"1016\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1033\",\"type\":\"Title\"},{\"attributes\":{\"data_source\":{\"id\":\"1012\"},\"glyph\":{\"id\":\"1020\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"1014\"}},\"id\":\"1013\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1016\"},\"glyph\":{\"id\":\"1025\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"1018\"}},\"id\":\"1017\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"graph_layout\":{\"All the world's a stage\":[5.25,0.75],\"I do bear a brain.\":[3.75,0.75],\"Illo, ho, ho, my lord\":[1.5,0.75],\"In my mind's eye\":[3.75,0.0],\"O all you host of heaven!\":[2.25,1.5],\"The rest is silence.\":[2.25,0.0],\"a horse, a horse, my kingdom for a horse\":[4.5,0.0],\"an old man is twice a child\":[3.0,0.0],\"frailty, thy name is woman\":[0.75,1.5],\"go, by Saint Hieronimo\":[5.25,0.0],\"hell itself should gape\":[1.5,1.5],\"livers white as milk\":[4.5,0.75],\"pampered jades of Asia\":[1.5,0.0],\"planets strike\":[3.0,0.75],\"sea of troubles\":[0.75,0.0],\"springes to catch woodcocks\":[0.75,0.75],\"thereby hangs a tale\":[0.0,0.75],\"though this be madness, yet there is method in it\":[2.25,0.75],\"to be or not to be\":[0.0,0.0],\"we will not carry coals\":[0.0,1.5],\"ww_00ce5b9c822fbaca\":[2.1806160389693057,-0.366898346639858],\"ww_01bd7d0624c8a955\":[4.050709756440373,0.9061607962298147],\"ww_01d64039ef29add5\":[0.7474910238892268,-0.3573850467082261],\"ww_028ce75225433cb6\":[3.1002772584109124,-0.238653331030303],\"ww_0747839b540f70c7\":[0.6448593288831476,1.896261551057316],\"ww_07f94c5a14cdc619\":[1.6230029417388454,0.5911342195896405],\"ww_0dbc3e90bbb46334\":[-0.3335216420546097,0.8936583152915304],\"ww_0eaf5058b7a910c7\":[-0.10600984201008412,1.8455591830222278],\"ww_10ba3fba1c0c1529\":[0.5309638523991903,0.9974190930225472],\"ww_13c9cec7f15c0056\":[0.6032483023448547,-0.38941780015378635],\"ww_18fac1f2fb1ce41f\":[3.261371308271508,-0.09845010087964938],\"ww_1917adced358cb4a\":[2.3817655753313027,1.0285536740538654],\"ww_19b54f39c1d245a7\":[-0.2824995557282708,-0.16983147560966583],\"ww_1bfaaa3ed70bb1ac\":[2.306556816900381,-0.3833169903857811],\"ww_215595adbf8efd41\":[4.8325631198868155,0.8241039827987686],\"ww_21a4c5dc5b2f6ed6\":[-0.31194165031028626,1.8000183617128156],\"ww_2239f6f9bbcb7446\":[2.9855312006799632,-0.34290265939520576],\"ww_22f51d85f231b2c7\":[0.48291093089585285,-0.14657200917516383],\"ww_235b7f298b54d631\":[1.4085638952866744,0.5296802880395927],\"ww_2560885c478fdfe0\":[3.2882423536722896,0.8265579275402954],\"ww_25e51ae4b6234004\":[1.2729641761109314,0.6849905939189921],\"ww_293034ae2a49b418\":[0.6341425698296869,-0.25687959698724205],\"ww_295a0d9237083fe7\":[-0.36691863137108227,-0.2846048615364402],\"ww_2b785e10c908c7ec\":[0.7385993474903242,1.8472062325620653],\"ww_2e3d7768539ae2ab\":[1.3167714590490185,1.8086814162432907],\"ww_3101379204640286\":[2.4640844348570314,1.7762269914326743],\"ww_32c26a7909c83bda\":[4.680282031205081,-0.19981945978255],\"ww_379b8583a4d90080\":[0.6699012910674952,1.0103909214743554],\"ww_3a359a22623b0162\":[2.419177182307824,-0.31241214068441386],\"ww_3a6f583779747368\":[0.5413422733468942,1.825053240780394],\"ww_3b6425a2159f1d62\":[0.6021444085762157,0.5398291445329253],\"ww_3bed848d2566166b\":[3.2405448928580496,0.6724011752264972],\"ww_415def570b10b5b9\":[4.797449807050105,0.9444917081901322],\"ww_4c352e527d12797b\":[1.327196845853391,-0.2065483614082911],\"ww_4d363cb4783e0b62\":[4.687510776276939,-0.3687728059906602],\"ww_51946dd5d1d57d4a\":[-0.41998954659084187,1.5946787469599326],\"ww_57dcec5b9ff2c4b9\":[3.243924853385352,0.9531348003426063],\"ww_585eaf1c6368e7af\":[1.3923789025042366,1.0274013351803677],\"ww_58a0dec287a4170c\":[4.028105602592358,0.767883196951829],\"ww_594e076e93ed4ccf\":[-0.17228806554730422,-0.27122171601921885],\"ww_5cdd4abfb59f6f0f\":[4.715335293246486,1.046721050393761],\"ww_663f0143320cc310\":[3.239357385407447,-0.25854861191167666],\"ww_669475d1f67eb920\":[-0.4201450801788418,-0.16568591604049854],\"ww_66a52436edb537eb\":[-0.44918366782598884,-0.047660818614224054],\"ww_6821daa19a2840e1\":[3.1359249942186196,-0.3737221370721633],\"ww_6c565da6889f5269\":[1.566939480605123,1.9035321472748197],\"ww_6cc712b23bbafc5e\":[0.49170426525271055,-0.29104131903575714],\"ww_6e3b338bf16ebf06\":[1.287250479297802,0.891475412227882],\"ww_6f12e582a20c2675\":[4.759628572209931,-0.03312795932924693],\"ww_7286ff06f562c07b\":[2.2322641090811235,0.9976132454425444],\"ww_7795f933b612f710\":[5.6253658748086455,0.8151088677714676],\"ww_782a5cebdaa9d8ae\":[4.879842296503753,-0.0015132780226166432],\"ww_7be6a3588e6b5de0\":[-0.3489063451826583,1.502501762173664],\"ww_7ecb8d5ef454d329\":[1.5628282125378106,-0.3817610331864436],\"ww_83e9ca4d103b86e1\":[-0.3973013226446812,1.7116746287658582],\"ww_84f20b8b2eb71001\":[1.656825448963007,1.8121775965744131],\"ww_870f29a7dd6f45d9\":[5.5244335700860585,-0.27132537244212596],\"ww_880962580e78c61f\":[3.9695591008893647,-0.25357501965597606],\"ww_89443854a5459695\":[2.381022782879765,0.5900414500470155],\"ww_8bdc1e03f5a6a253\":[0.3933150496140838,0.7391241807810467],\"ww_8c5990fb7392c89b\":[1.432215572432258,-0.3848441346250371],\"ww_8e68a517bc3ecceb\":[0.5232370092884081,0.7893645993316524],\"ww_909a37b5a02277e8\":[4.005165610314815,-0.11235211925077326],\"ww_90d74567307f904e\":[-0.26342992170911567,-0.36579857973950514],\"ww_95966dab4576ec42\":[0.4964521017992168,1.722182516251702],\"ww_971c475bea921406\":[-0.11252169335376765,-0.3804884811882719],\"ww_97b67e22685ce125\":[4.005134832556061,1.0297697762455236],\"ww_98df9ad5de049472\":[1.5538783563659984,1.0138964980170608],\"ww_994d23875f3f8ca7\":[-0.2465052854446582,1.679729094010497],\"ww_9a6cb20b0b157545\":[4.782634659176425,0.14680700831712748],\"ww_a055872533d2ab57\":[1.4255778180812326,1.9131829496400654],\"ww_a2a0ab6fbca2028d\":[-0.3044481332954167,-0.024574696963830946],\"ww_a59a84adf088089f\":[4.85848432038274,-0.1607396287414826],\"ww_a6f4b0e3428ad510\":[5.645710192076713,-0.1868844374367851],\"ww_aaeb0dba8a5ac513\":[3.183909269339717,1.0603719160113598],\"ww_aef241d5b9263438\":[3.0635500810102254,1.037641780917466],\"ww_b0913df56f856f27\":[1.5938336931997958,-0.25018273393072027],\"ww_b42fadea9f893c6e\":[2.487592242913563,0.7640839982105613],\"ww_b4cc414fb56c2490\":[3.8587191063790085,-0.32692625892320337],\"ww_b5b8083a6a1282bc\":[4.547839600961205,-0.3222936283468012],\"ww_b71ba2ae83103344\":[-0.3692355872112537,0.6803933091708508],\"ww_b7e69820855e7384\":[2.447434413446813,-0.18345783024998044],\"ww_ba8b881de92fd8a4\":[2.4739895120814666,0.926555688239607],\"ww_c2f29658555093e7\":[1.6809936719899459,0.8909637448768922],\"ww_c6bb592912665657\":[2.390747169141568,1.8782674684391722],\"ww_c9d35c25f4fc4189\":[5.561777912583119,0.9462155802352491],\"ww_caf27ffdc954c844\":[-0.380951420015761,0.07902506492325904],\"ww_cd82c881f4f118d0\":[2.26893543205227,1.8554835556118947],\"ww_d2361763e8343194\":[5.560266195432452,-0.0885591924337202],\"ww_d2d2a262485c5d23\":[0.4217858291265533,0.9037723230479447],\"ww_d62468b11823d4c9\":[4.802956087995286,-0.29107529351652717],\"ww_d67a1f9d4d50f936\":[-0.4100244512833014,0.7829777123292684],\"ww_d9ad6d0b3d1a5598\":[2.1759819393044553,-0.24986949573223347],\"ww_e01ecfd8de9acc61\":[5.607677542504633,0.10667164672812285],\"ww_e2adb2be413fd5a5\":[5.661375550491671,-0.011979776882975668],\"ww_eb3ebae9ea90daa0\":[1.4788811326738172,1.7820999407455484],\"ww_f32f713a36985f62\":[-0.22152157882266868,1.8810533980345603],\"ww_f38739f4c2391f47\":[1.3217101718035402,-0.33957779403504473],\"ww_ff2cef3775c5331c\":[3.8854014923442954,1.0456368710847144],\"ww_ff8f000dd9cb7a3b\":[0.4640795518067643,0.5965671119282911]}},\"id\":\"1019\",\"type\":\"StaticLayoutProvider\"},{\"attributes\":{},\"id\":\"1045\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"end\":6.25,\"start\":-1.0},\"id\":\"1003\",\"type\":\"Range1d\"}],\"root_ids\":[\"1005\"]},\"title\":\"Bokeh Application\",\"version\":\"2.3.2\"}};\n",
       "  var render_items = [{\"docid\":\"0d6c2201-6e68-40e3-a325-707ae6c0dc48\",\"root_ids\":[\"1005\"],\"roots\":{\"1005\":\"aee0fffe-6d12-4799-af95-213d4a41adb1\"}}];\n",
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
       "  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "\n",
       "  }\n",
       "  if (root.Bokeh !== undefined) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    var attempts = 0;\n",
       "    var timer = setInterval(function(root) {\n",
       "      if (root.Bokeh !== undefined) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else {\n",
       "        attempts++;\n",
       "        if (attempts > 100) {\n",
       "          clearInterval(timer);\n",
       "          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
       "        }\n",
       "      }\n",
       "    }, 10, root)\n",
       "  }\n",
       "})(window);"
      ],
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "1005"
      }
     },
     "output_type": "display_data"
    }
   ],
669
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
670
    "nbutils.plot_gold(gold_data)"
671
672
673
674
   ]
  },
  {
   "cell_type": "markdown",
675
   "id": "e746071b",
676
677
   "metadata": {},
   "source": [
678
    "## \"Shapespeare in the Vectorian Age\" – Meet the Vectorian framework"
679
680
681
   ]
  },
  {
Bernhard Liebl's avatar
Bernhard Liebl committed
682
   "cell_type": "markdown",
683
   "id": "e5afbd3e",
684
685
   "metadata": {},
   "source": [
686
    "To conduct our actual investigations, we rely on a framework called the *Vectorian*, which we first introduced in 2020 (Liebl & Burghardt, 2020a/b). Using highly optimized algorithms and data structures, the Vectorian enables fast searching over the gold standard data using a variety of approaches and strategies. "
Bernhard Liebl's avatar
Bernhard Liebl committed
687
688
689
690
   ]
  },
  {
   "cell_type": "markdown",
691
   "id": "f1cb0e38",
Bernhard Liebl's avatar
Bernhard Liebl committed
692
693
   "metadata": {},
   "source": [
694
695
    "In order to use the Vectorian, we need to map the gold standard concepts to Vectorian concepts as follows: From the gold standard, we want to gather all texts that contain some kind of text reuse. These texts reside in the `context` attribute of the `Evidence` instances (see Figure above). In the Vectorian, we then create `Documents` from those texts. A `Document` in Vectorian terminology is something we can perform a search on. `Documents` in the Vectorian are created using different kinds of `Importers` that perform necessary natural language processing tasks using an additional `NLP` class (see diagram below). Since this step can be very time-consuming, we precomputed this step and use the `Corpus` class to quickly load these preprocessed Documents into the notebook. For details about the full preprocessing, see `code/prepare_corpus.ipynb`. \n",
    "\n"
696
697
698
699
   ]
  },
  {
   "cell_type": "markdown",
700
   "id": "f467944b",
701
702
   "metadata": {},
   "source": [
703
    "Using the loaded `Documents` and a set of `Embeddings` we want to work with, we can then create a `Session` that allows us to perform intertextuality searches. More about the specific steps we take can be found in [Vectorian's Python API](https://github.com/poke1024/vectorian-2021)."
704
705
706
707
   ]
  },
  {
   "cell_type": "markdown",
708
   "id": "fe62e898",
709
710
   "metadata": {},
   "source": [
711
    "## Loading word embeddings"
Bernhard Liebl's avatar
Bernhard Liebl committed
712
713
714
715
   ]
  },
  {
   "cell_type": "markdown",
716
   "id": "a9406706",
Bernhard Liebl's avatar
Bernhard Liebl committed
717
718
   "metadata": {},
   "source": [
719
    "In this step the static embeddings that were described above are loaded from Vectorian's model zoo. This zoo contains a number of prebuilt embeddings for various languages, for instance GloVe, fastText and Numberbatch. "
720
721
722
723
   ]
  },
  {
   "cell_type": "code",
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
   "execution_count": 5,
   "id": "994c5c17",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('fasttext-yo',\n",
       " 'fasttext-zea',\n",
       " 'fasttext-zh',\n",
       " 'glove-42B-300',\n",
       " 'glove-6B-100',\n",
       " 'glove-6B-200',\n",
       " 'glove-6B-300',\n",
       " 'glove-6B-50',\n",
       " 'glove-840B-300',\n",
       " 'glove-twitter.27B-100',\n",
       " 'glove-twitter.27B-200',\n",
       " 'glove-twitter.27B-25',\n",
       " 'glove-twitter.27B-50',\n",
       " 'numberbatch-19.08-de-50',\n",
       " 'numberbatch-19.08-en-50')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
753
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
754
    "from vectorian.embeddings import Zoo\n",
755
    "\n",
Bernhard Liebl's avatar
Bernhard Liebl committed
756
757
758
759
760
    "Zoo.list()[-15:]"
   ]
  },
  {
   "cell_type": "markdown",
761
   "id": "673a5d4b",
Bernhard Liebl's avatar
Bernhard Liebl committed
762
763
   "metadata": {},
   "source": [
764
    "For reasons of limited RAM in the interactive Binder environment (and to limit download times), we use smaller or compressed versions of the static embeddings:\n",
765
    "\n",
766
767
768
    "* for **GloVe**, we use the official 50-dimensional version of the 6B variant\n",
    "* for **fastText** we use a version that was compressed using the standard settings in https://github.com/avidale/compress-fasttext\n",
    "* for **Numberbatch** we use a 50-dimension version that was reduced using a standard PCA"
769
770
771
772
   ]
  },
  {
   "cell_type": "code",
773
774
   "execution_count": 6,
   "id": "d1bc8611",
775
   "metadata": {},
Bernhard Liebl's avatar
Bernhard Liebl committed
776
   "outputs": [],
Bernhard Liebl's avatar
Bernhard Liebl committed
777
778
779
   "source": [
    "the_embeddings = {}\n",
    "\n",
780
781
782
    "the_embeddings[\"glove\"] = Zoo.load(\"glove-6B-50\")\n",
    "the_embeddings[\"numberbatch\"] = Zoo.load(\"numberbatch-19.08-en-50\")\n",
    "the_embeddings[\"fasttext\"] = Zoo.load(\"fasttext-en-mini\")"
Bernhard Liebl's avatar
Bernhard Liebl committed
783
784
785
786
   ]
  },
  {
   "cell_type": "markdown",
787
   "id": "fae47fc7",
Bernhard Liebl's avatar
Bernhard Liebl committed
788
789
   "metadata": {},
   "source": [
790
    "We also use one **stacked embedding**, in which we combine fastText and Numberbatch."
Bernhard Liebl's avatar
Bernhard Liebl committed
791
792
793
794
   ]
  },
  {
   "cell_type": "code",
795
796
   "execution_count": 7,
   "id": "e7d9f16c",
Bernhard Liebl's avatar
Bernhard Liebl committed
797
798
   "metadata": {},
   "outputs": [],
799
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
800
801
    "from vectorian.embeddings import StackedEmbedding\n",
    "\n",
802
803
804
    "the_embeddings[\"fasttext_numberbatch\"] = StackedEmbedding(\n",
    "    [the_embeddings[\"fasttext\"], the_embeddings[\"numberbatch\"]]\n",
    ")"
Bernhard Liebl's avatar
Bernhard Liebl committed
805
806
807
808
   ]
  },
  {
   "cell_type": "markdown",
809
   "id": "04037dac",
Bernhard Liebl's avatar
Bernhard Liebl committed
810
811
   "metadata": {},
   "source": [
812
    "Next, we instantiate an NLP parser that is able to provide embeddings based on Sentence-BERT (Reimers & Gurevych, 2019)."
813
814
815
816
   ]
  },
  {
   "cell_type": "code",
817
818
819
820
821
822
823
   "execution_count": 8,
   "id": "84dd961f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
824
825
826
       "[('tok2vec', <spacy.pipeline.tok2vec.Tok2Vec at 0x7fe54a29c4d0>),\n",
       " ('tagger', <spacy.pipeline.tagger.Tagger at 0x7fe54a2bcbf0>),\n",
       " ('parser', <spacy.pipeline.dep_parser.DependencyParser at 0x7fe5495416e0>),\n",
827
       " ('attribute_ruler',\n",
828
       "  <spacy.pipeline.attributeruler.AttributeRuler at 0x7fe54a5c9870>),\n",
829
       " ('lemmatizer',\n",
830
       "  <spacy.lang.en.lemmatizer.EnglishLemmatizer at 0x7fe54a5b3c30>),\n",
831
       " ('sentence_bert',\n",
832
       "  <spacy_sentence_bert.language.SentenceBert at 0x7fe549542950>)]"
833
834
835
836
837
838
839
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
840
   "source": [
841
842
    "nlp = nbutils.make_nlp()\n",
    "nlp.pipeline"
Bernhard Liebl's avatar
Bernhard Liebl committed
843
844
845
846
   ]
  },
  {
   "cell_type": "markdown",
847
   "id": "994ec251",
Bernhard Liebl's avatar
Bernhard Liebl committed
848
849
   "metadata": {},
   "source": [
850
    "Finally, we add a wrapper that allows us to use Sentence-BERT's contextual token embeddings in the Vectorian."
Bernhard Liebl's avatar
Bernhard Liebl committed
851
852
853
854
   ]
  },
  {
   "cell_type": "code",
855
856
   "execution_count": 9,
   "id": "16ef1ef5",
Bernhard Liebl's avatar
Bernhard Liebl committed
857
858
859
   "metadata": {},
   "outputs": [],
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
860
    "from vectorian.embeddings import SentenceBertEmbedding\n",
Bernhard Liebl's avatar
Bernhard Liebl committed
861
    "\n",
862
    "the_embeddings[\"sbert\"] = SentenceBertEmbedding(nlp, 768)"
Bernhard Liebl's avatar
Bernhard Liebl committed
863
864
865
866
   ]
  },
  {
   "cell_type": "markdown",
867
   "id": "65d16656",
Bernhard Liebl's avatar
Bernhard Liebl committed
868
869
   "metadata": {},
   "source": [
870
    "## Creating the session"
871
872
873
874
   ]
  },
  {
   "cell_type": "markdown",
875
   "id": "7f2c3ada",
876
877
   "metadata": {},
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
878
    "The Vectorian `Session` is created with the specified embeddings and the preprocessed documents, which are loaded via the `Corpus` class:"
879
880
881
882
   ]
  },
  {
   "cell_type": "code",
883
884
885
886
887
888
889
890
891
892
   "execution_count": 10,
   "id": "7c2ab856",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Opening glove-6B-50: 100%|██████████\n",
      "Opening numberbatch-19.08-en-50: 100%|██████████\n",
893
894
      "1587it [00:00, 21137.68it/s]\n",
      "1587it [00:00, 16643.40it/s]\n"
895
896
897
     ]
    }
   ],
898
899
900
901
902
903
   "source": [
    "from vectorian.session import LabSession\n",
    "from vectorian.corpus import Corpus\n",
    "\n",
    "session = LabSession(\n",
    "    Corpus.load(\"data/processed_data/corpus\"),\n",
Bernhard Liebl's avatar
Bernhard Liebl committed
904
    "    embeddings=the_embeddings.values(),\n",
905
906
    "    normalizers=\"default\",\n",
    ")"
907
908
   ]
  },
Bernhard Liebl's avatar
Bernhard Liebl committed
909
910
  {
   "cell_type": "markdown",
911
   "id": "24786e14",
Bernhard Liebl's avatar
Bernhard Liebl committed
912
913
   "metadata": {},
   "source": [
Bernhard Liebl's avatar
Bernhard Liebl committed
914
    "The session now contains all embeddings we will work with as well as the list of documents that contain the texts from the gold standard `Evidence` items."
Bernhard Liebl's avatar
Bernhard Liebl committed
915
916
917
918
   ]
  },
  {
   "cell_type": "markdown",
919
   "id": "ec8c309d",
Bernhard Liebl's avatar
Bernhard Liebl committed
920
921
   "metadata": {},
   "source": [
922
    "## An introduction to word embeddings and token similarity"
Bernhard Liebl's avatar
Bernhard Liebl committed
923
924
925
926
   ]
  },
  {
   "cell_type": "markdown",
927
   "id": "936bfeb6",
Bernhard Liebl's avatar
Bernhard Liebl committed
928
929
   "metadata": {},
   "source": [
930
    "Before we dive into the acutal intertextuality analyses, we first take a brief look at the inner workings of embeddings. Mathematically speaking, a word embedding is a vector **x** of dimension $n$, i.e. a vector consisting of $n$ scalars.\n",
931
932
933
934
935
    "\n",
    "\\begin{equation*}\n",
    "\\mathbf{x}=(x_1, x_2, ..., x_{n-1}, x_n)\n",
    "\\end{equation*}\n",
    "\n",
936
    "For example, the compressed numberbatch embedding we use has $n=50$ and thus represents the word \"coffee\" with the following 50 scalar values:"
Bernhard Liebl's avatar
Bernhard Liebl committed
937
938
939
940
   ]
  },
  {
   "cell_type": "code",
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
   "execution_count": 11,
   "id": "474c8b2e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9e246caffedb496aa5d5109ef0279cc3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "GridBox(children=(Label(value='-0.05'), Label(value='-0.13'), Label(value='0.06'), Label(value='-0.09'), Label…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
Bernhard Liebl's avatar
Bernhard Liebl committed
960
   "source": [
961
    "widgets.GridBox(\n",
962
963
964
965
966
967
    "    [\n",
    "        widgets.Label(f\"{x:.2f}\")\n",
    "        for x in session.word_vec(the_embeddings[\"numberbatch\"], \"coffee\")\n",
    "    ],\n",
    "    layout=widgets.Layout(grid_template_columns=\"repeat(10, 50px)\"),\n",
    ")"
Bernhard Liebl's avatar
Bernhard Liebl committed
968
969
970
971
   ]
  },
  {
   "cell_type": "markdown",
972
   "id": "9bea3512",
Bernhard Liebl's avatar
Bernhard Liebl committed
973
974
   "metadata": {},
   "source": [
975
    "Since the above representation is difficult to understand, we visualize the values of\n",
976
977
978
    "\n",
    "\\begin{equation*}x_1, x_2, ..., x_{n-1}, x_n\\end{equation*}\n",
    "\n",
979
    "through different colors. By default, all values are normalized by ||**x**||&#x2082;, i.e. the dot product of these values gives the cosine similarity."
Bernhard Liebl's avatar
Bernhard Liebl committed
980
981
982
983
   ]
  },
  {
   "cell_type": "code",
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
   "execution_count": 12,
   "id": "ea9c7758",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "66372b22b55d4fc8b80d8f9bc955c352",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='embedding', index=1, options=(('glove', <vectorian.embeddings.Pret…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
For faster browsing, not all history is shown. View entire blame