{ "cells": [ { "cell_type": "markdown", "id": "fa6fc62e-901e-4bff-9b08-2392391d9415", "metadata": {}, "source": [ "# Using n-gram in Text-Fabric (N1904-TF)" ] }, { "cell_type": "markdown", "id": "c311e7fb-1c3e-4a8f-95b2-6d836468afbd", "metadata": {}, "source": [ "## Table of content (TOC)\n", "* 1 - Introduction\n", "* 2 - Load Text-Fabric app and data\n", "* 3 - Extracting n-grams\n", " * 3.1 - Define the n-gram size\n", " * 3.2 - Iterate through the text and extract n-grams\n", "* 4 - Analyzing the n-grams\n", " * 4.1 - N-gram frequency analysis\n", " * 4.2 - POS-sequence frequency analysis\n", " * 4.3 - N-grams and ambiguity\n", " * 4.4 - Correlating preceding n-grams with final POS tagging\n", "* 5 - Required libraries\n", "* 6 - Notebook and environment details" ] }, { "cell_type": "markdown", "id": "0e808d8e-91f5-498a-b04a-dcc487277f18", "metadata": {}, "source": [ "# 1 - Introduction \n", "##### [Back to TOC](#TOC)\n", "\n", "An n-gram is a contiguous sequence of n items (typically words or characters) from a given text or speech. In the context of a text corpus, an n-gram is used to analyze patterns of word usage and co-occurrence by grouping items into chunks of size n. For example, a 1-gram (unigram) would analyze individual words, while a 2-gram (bigram) would examine pairs of consecutive words. N-grams are particularly useful in natural language processing (NLP) for tasks like text prediction, language modeling, and understanding the structure and context within a large corpus of texts. This notebook will show how to create n-grams within the Text-Fabric environment." ] }, { "cell_type": "markdown", "id": "9409098f-b094-48ab-b76a-97272b44ea00", "metadata": {}, "source": [ "# 2 - Load app and data \n", "##### [Back to TOC](#TOC)" ] }, { "cell_type": "code", "execution_count": 3, "id": "8fc72cc8-6148-49e2-9cf5-9552cca7bf8a", "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 4, "id": "a30445d0-3299-4cf2-9ce4-50d17110a6da", "metadata": {}, "outputs": [], "source": [ "# Loading the Text-Fabric code\n", "# Note: it is assumed Text-Fabric is installed in your environment\n", "from tf.fabric import Fabric\n", "from tf.app import use" ] }, { "cell_type": "code", "execution_count": 7, "id": "1c331d20-2d5c-4af2-af50-6042be0c34cc", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "**Locating corpus resources ...**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "app: ~/text-fabric-data/github/CenterBLC/N1904/app" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/github/CenterBLC/N1904/tf/1.0.0" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " TF: TF API 12.5.5, CenterBLC/N1904/app v3, Search Reference
\n", " Data: CenterBLC - N1904 1.0.0, Character table, Feature docs
\n", "
Node types\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", "\n", "
Name# of nodes# slots / node% coverage
book275102.93100
chapter260529.92100
verse794417.34100
sentence801117.20100
group89457.0146
clause425068.36258
wg1068686.88533
phrase690071.9095
subphrase1161781.60135
word1377791.00100
\n", " Sets: no custom sets
\n", " Features:
\n", "
Nestle 1904 Greek New Testament\n", "
\n", "\n", "
\n", "
\n", "after\n", "
\n", "
str
\n", "\n", " material after the end of the word\n", "\n", "
\n", "\n", "
\n", " \n", "
int
\n", "\n", " 1 if it is an apposition container\n", "\n", "
\n", "\n", "
\n", "
\n", "articular\n", "
\n", "
int
\n", "\n", " 1 if the sentence, group, clause, phrase or wg has an article\n", "\n", "
\n", "\n", "
\n", "
\n", "before\n", "
\n", "
str
\n", "\n", " this is XML attribute before\n", "\n", "
\n", "\n", "
\n", "
\n", "book\n", "
\n", "
str
\n", "\n", " book name (full name)\n", "\n", "
\n", "\n", "
\n", "
\n", "bookshort\n", "
\n", "
str
\n", "\n", " book name (abbreviated) from ref attribute in xml\n", "\n", "
\n", "\n", "
\n", "
\n", "case\n", "
\n", "
str
\n", "\n", " grammatical case\n", "\n", "
\n", "\n", "
\n", "
\n", "chapter\n", "
\n", "
int
\n", "\n", " chapter number, from ref attribute in xml\n", "\n", "
\n", "\n", "
\n", "
\n", "clausetype\n", "
\n", "
str
\n", "\n", " clause type\n", "\n", "
\n", "\n", "
\n", "
\n", "cls\n", "
\n", "
str
\n", "\n", " this is XML attribute cls\n", "\n", "
\n", "\n", "
\n", "
\n", "cltype\n", "
\n", "
str
\n", "\n", " clause type\n", "\n", "
\n", "\n", "
\n", "
\n", "criticalsign\n", "
\n", "
str
\n", "\n", " this is XML attribute criticalsign\n", "\n", "
\n", "\n", "
\n", "
\n", "crule\n", "
\n", "
str
\n", "\n", " clause rule (from xml attribute Rule)\n", "\n", "
\n", "\n", "
\n", "
\n", "degree\n", "
\n", "
str
\n", "\n", " grammatical degree\n", "\n", "
\n", "\n", "
\n", "
\n", "discontinuous\n", "
\n", "
int
\n", "\n", " 1 if the word is out of sequence in the xml\n", "\n", "
\n", "\n", "
\n", "
\n", "domain\n", "
\n", "
str
\n", "\n", " domain\n", "\n", "
\n", "\n", "
\n", "
\n", "framespec\n", "
\n", "
str
\n", "\n", " this is XML attribute framespec\n", "\n", "
\n", "\n", "
\n", "
\n", "function\n", "
\n", "
str
\n", "\n", " this is XML attribute function\n", "\n", "
\n", "\n", "
\n", "
\n", "gender\n", "
\n", "
str
\n", "\n", " grammatical gender\n", "\n", "
\n", "\n", "
\n", "
\n", "gloss\n", "
\n", "
str
\n", "\n", " English gloss (BGVB)\n", "\n", "
\n", "\n", "
\n", "
\n", "id\n", "
\n", "
str
\n", "\n", " xml id\n", "\n", "
\n", "\n", "
\n", "
\n", "junction\n", "
\n", "
str
\n", "\n", " type of junction\n", "\n", "
\n", "\n", "
\n", "
\n", "lang\n", "
\n", "
str
\n", "\n", " language the text is in\n", "\n", "
\n", "\n", "
\n", "
\n", "lemma\n", "
\n", "
str
\n", "\n", " lexical lemma\n", "\n", "
\n", "\n", "
\n", "
\n", "lemmatranslit\n", "
\n", "
str
\n", "\n", " transliteration of the word lemma\n", "\n", "
\n", "\n", "
\n", "
\n", "ln\n", "
\n", "
str
\n", "\n", " ln\n", "\n", "
\n", "\n", "
\n", "
\n", "mood\n", "
\n", "
str
\n", "\n", " verbal mood\n", "\n", "
\n", "\n", "
\n", "
\n", "morph\n", "
\n", "
str
\n", "\n", " morphological code\n", "\n", "
\n", "\n", "
\n", "
\n", "nodeid\n", "
\n", "
str
\n", "\n", " node id (as in the XML source data)\n", "\n", "
\n", "\n", "
\n", "
\n", "normalized\n", "
\n", "
str
\n", "\n", " lemma normalized\n", "\n", "
\n", "\n", "
\n", "
\n", "note\n", "
\n", "
str
\n", "\n", " annotation of linguistic nature\n", "\n", "
\n", "\n", "
\n", "
\n", "num\n", "
\n", "
int
\n", "\n", " generated number (not in xml): book: (Matthew=1, Mark=2, ..., Revelation=27); sentence: numbered per chapter; word: numbered per verse.\n", "\n", "
\n", "\n", "
\n", "
\n", "number\n", "
\n", "
str
\n", "\n", " grammatical number\n", "\n", "
\n", "\n", "
\n", "
\n", "otype\n", "
\n", "
str
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "person\n", "
\n", "
str
\n", "\n", " grammatical person\n", "\n", "
\n", "\n", "
\n", "
\n", "punctuation\n", "
\n", "
str
\n", "\n", " punctuation found after a word\n", "\n", "
\n", "\n", "
\n", "
\n", "ref\n", "
\n", "
str
\n", "\n", " biblical reference with word counting\n", "\n", "
\n", "\n", "
\n", "
\n", "referent\n", "
\n", "
str
\n", "\n", " number of referent\n", "\n", "
\n", "\n", "
\n", "
\n", "rela\n", "
\n", "
str
\n", "\n", " this is XML attribute rela\n", "\n", "
\n", "\n", "
\n", "
\n", "role\n", "
\n", "
str
\n", "\n", " role\n", "\n", "
\n", "\n", "
\n", "
\n", "rule\n", "
\n", "
str
\n", "\n", " syntactical rule\n", "\n", "
\n", "\n", "
\n", "
\n", "sp\n", "
\n", "
str
\n", "\n", " part-of-speach\n", "\n", "
\n", "\n", "
\n", "
\n", "strong\n", "
\n", "
int
\n", "\n", " strong number\n", "\n", "
\n", "\n", "
\n", "
\n", "subjrefspec\n", "
\n", "
str
\n", "\n", " this is XML attribute subjrefspec\n", "\n", "
\n", "\n", "
\n", "
\n", "tense\n", "
\n", "
str
\n", "\n", " verbal tense\n", "\n", "
\n", "\n", "
\n", "
\n", "text\n", "
\n", "
str
\n", "\n", " the text of a word\n", "\n", "
\n", "\n", "
\n", "
\n", "trailer\n", "
\n", "
str
\n", "\n", " material after the end of the word (excluding critical signs)\n", "\n", "
\n", "\n", "
\n", "
\n", "trans\n", "
\n", "
str
\n", "\n", " translation of the word surface text according to the Berean Interlinear Bible\n", "\n", "
\n", "\n", "
\n", "
\n", "translit\n", "
\n", "
str
\n", "\n", " transliteration of the word surface text\n", "\n", "
\n", "\n", "
\n", "
\n", "typ\n", "
\n", "
str
\n", "\n", " syntactical type (on sentence, group, clause or phrase)\n", "\n", "
\n", "\n", "
\n", "
\n", "typems\n", "
\n", "
str
\n", "\n", " morphological type (on word), syntactical type (on sentence, group, clause, phrase or wg)\n", "\n", "
\n", "\n", "
\n", "
\n", "unaccent\n", "
\n", "
str
\n", "\n", " word in unicode characters without accents and diacritical markers\n", "\n", "
\n", "\n", "
\n", "
\n", "unicode\n", "
\n", "
str
\n", "\n", " word in unicode characters plus material after it\n", "\n", "
\n", "\n", "
\n", "
\n", "variant\n", "
\n", "
str
\n", "\n", " this is XML attribute variant\n", "\n", "
\n", "\n", "
\n", "
\n", "verse\n", "
\n", "
int
\n", "\n", " verse number, from ref attribute in xml\n", "\n", "
\n", "\n", "
\n", "
\n", "voice\n", "
\n", "
str
\n", "\n", " verbal voice\n", "\n", "
\n", "\n", "
\n", "
\n", "frame\n", "
\n", "
str
\n", "\n", " frame\n", "\n", "
\n", "\n", "
\n", "
\n", "oslots\n", "
\n", "
none
\n", "\n", " \n", "\n", "
\n", "\n", "
\n", "
\n", "parent\n", "
\n", "
none
\n", "\n", " parent relationship between words\n", "\n", "
\n", "\n", "
\n", "
\n", "sibling\n", "
\n", "
int
\n", "\n", " this is XML attribute sibling\n", "\n", "
\n", "\n", "
\n", "
\n", "subjref\n", "
\n", "
none
\n", "\n", " number of subject referent\n", "\n", "
\n", "\n", "
\n", "
\n", "\n", " Settings:
specified
  1. apiVersion: 3
  2. appName: CenterBLC/N1904
  3. appPath: C:/Users/tonyj/text-fabric-data/github/CenterBLC/N1904/app
  4. commit: gdb630837ae89b9468c9e50d13bda05cfd3de4f18
  5. css: ''
  6. dataDisplay:
    • excludedFeatures: []
    • noneValues:
      • none
      • unknown
      • no value
      • NA
    • sectionSep1:
    • sectionSep2: :
    • textFormat: text-orig-full
  7. docs:
    • docBase: https://github.com/CenterBLC/N1904/tree/main/docs
    • docPage: about
    • docRoot: https://github.com/CenterBLC/N1904
    • featureBase:https://github.com/CenterBLC/N1904/blob/main/docs/features/<feature>.md
    • featurePage: README
  8. interfaceDefaults: {fmt: text-orig-full}
  9. isCompatible: True
  10. local: local
  11. localDir:C:/Users/tonyj/text-fabric-data/github/CenterBLC/N1904/_temp
  12. provenanceSpec:
    • branch: main
    • corpus: Nestle 1904 Greek New Testament
    • doi: 10.5281/zenodo.13117910
    • moduleSpecs: []
    • org: CenterBLC
    • relative: /tf
    • repo: N1904
    • repro: N1904
    • version: 1.0.0
    • webBase: https://learner.bible/text/show_text/nestle1904/
    • webHint: Show this on the website
    • webLang: en
    • webUrl:https://learner.bible/text/show_text/nestle1904/<1>/<2>/<3>
    • webUrlLex: {webBase}/word?version={version}&id=<lid>
  13. release: 1.0.0
  14. typeDisplay:
    • clause:
      • condense: True
      • label: {typ} {function} {rela} \\\\ {cls} {role} {junction}
      • style: ''
    • group:
      • label: {typ} {function} {rela} \\\\ {typems} {role} {rule}
      • style: ''
    • phrase:
      • condense: True
      • label: {typ} {function} {rela} \\\\ {typems} {role} {rule}
      • style: ''
    • sentence:
      • label: {typ} {function} {rela} \\\\ {role} {rule}
      • style: ''
    • subphrase:
      • label: {typ} {function} {rela} \\\\ {typems} {role} {rule}
      • style: ''
    • verse:
      • condense: True
      • label: {book} {chapter}:{verse}
      • style: ''
    • wg:
      • condense: True
      • label: {typems} {role} {rule} {junction}
      • style: ''
    • word:
      • features:
        • lemma
        • sp
      • featuresBare: [gloss]
  15. writing: grc
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
TF API: names N F E L T S C TF Fs Fall Es Eall Cs Call directly usable

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "Display is setup for viewtype [syntax-view](https://github.com/CenterBLC/N1904/blob/main/docs/syntax-view.md#start)" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "See [here](https://github.com/CenterBLC/N1904/blob/main/docs/viewtypes.md#start) for more information on viewtypes" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# load the N1904 app and data\n", "N1904 = use (\"CenterBLC/N1904\", version=\"1.0.0\", hoist=globals())" ] }, { "cell_type": "code", "execution_count": 8, "id": "81e79d70-8c6a-4ddf-890c-f8af2072da27", "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# The following will push the Text-Fabric stylesheet to this notebook (to facilitate proper display with notebook viewer)\n", "N1904.dh(N1904.getCss())" ] }, { "cell_type": "markdown", "id": "c8a39b26-0a59-4142-bd1a-b9b27baab294", "metadata": {}, "source": [ "# 3 - Extracting n-grams \n", "##### [Back to TOC](#TOC)\n", "\n", "We'll extract n-grams of words along with their POS tags.\n", "\n", "In the following script we rely upon the following Text-Fabric features:\n", " - Greek word in Unicode from feature [unicode](https://centerblc.github.io/N1904/features/unicode.html#start)\n", " - Part of speech tag from feature [sp](https://centerblc.github.io/N1904/features/sp.html#start).\n", " - The lemma (dictionary form) from feature [lemma](https://centerblc.github.io/N1904/features/lemma.html#start).\n", " - The morphological tag from feature [morph](https://centerblc.github.io/N1904/features/morph.html#start)." ] }, { "cell_type": "markdown", "id": "2d43a656-beba-4336-a28a-d83070616737", "metadata": {}, "source": [ "## 3.1 - Define the n-gram size \n", "\n", "Set the size of the n-gram you wish to extract. For example, `n = 2` for bi-grams or `n = 3` for tri-grams. A lower n (e.g., 1 or 2) provides a more granular and fine analysis, focusing on smaller units, which can be useful for basic statistics or initial insights. A higher n (e.g., 3 or more) captures more nuanced and structured relationships, which can be useful in more complex linguistic or computational tasks." ] }, { "cell_type": "code", "execution_count": 39, "id": "fcd15761-5c4c-41ab-a0b6-161c9198f53e", "metadata": {}, "outputs": [], "source": [ "# Setting the size of the n-gram\n", "n = 3 # This would be for bigrams, change to 3 for trigrams, etc." ] }, { "cell_type": "markdown", "id": "16579093-d32e-4e8a-a352-749e3d93eb91", "metadata": {}, "source": [ "## 3.2 - Iterate through the text and extract n-grams \n", "\n", "The following script retrieves first all chapter nodes with `F.otype.s('chapter')` and gets their word descendants using `L.d(chapterNode, 'word')`. The `extractNGrams(words, n)` function generates n-grams from these word lists. Features features like unicode, sp, lemma, and morph are used to create each n-gram item. The n-grams are stored as dictionaries, and the first five are printed for verification." ] }, { "cell_type": "code", "execution_count": 42, "id": "d95453b8-0b59-4181-a6c2-415b6afbe0de", "metadata": {}, "outputs": [], "source": [ "# Function to extract n-grams from a list of words\n", "def extractNGrams(words, n):\n", " return [words[i:i+n] for i in range(len(words) - n + 1)]\n", "\n", "# Collect all n-grams in a list\n", "allNGrams = []\n", "\n", "# Iterate over all verses in the New Testament\n", "for chapterNode in F.otype.s('chapter'):\n", " wordsInChapter = L.d(chapterNode, 'word')\n", " nGramsInChapter = extractNGrams(wordsInChapter, n)\n", " \n", " for nGram in nGramsInChapter:\n", " nGramData = []\n", " for wordNode in nGram:\n", " wordText = F.unicode.v(wordNode) # Greek word in Unicode\n", " posTag = F.sp.v(wordNode) # Part of Speech\n", " lemma = F.lemma.v(wordNode) # Lemma of the word\n", " morph = F.morph.v(wordNode) # Morphological code\n", " \n", " # Collect data for each word in the n-gram\n", " nGramData.append({\n", " 'wordText': wordText,\n", " 'posTag': posTag,\n", " 'lemma': lemma,\n", " 'morph': morph\n", " })\n", " \n", " # Add the n-gram data to the list\n", " allNGrams.append(nGramData)\n" ] }, { "cell_type": "code", "execution_count": 44, "id": "b6959340-8034-42d0-9202-0ba8ee98f0e0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Words: Βίβλος γενέσεως Ἰησοῦ\n", "POS Tags: ['subs', 'subs', 'subs']\n", "--------------------------------------------------\n", "Words: γενέσεως Ἰησοῦ Χριστοῦ\n", "POS Tags: ['subs', 'subs', 'subs']\n", "--------------------------------------------------\n", "Words: Ἰησοῦ Χριστοῦ υἱοῦ\n", "POS Tags: ['subs', 'subs', 'subs']\n", "--------------------------------------------------\n", "Words: Χριστοῦ υἱοῦ Δαυεὶδ\n", "POS Tags: ['subs', 'subs', 'subs']\n", "--------------------------------------------------\n", "Words: υἱοῦ Δαυεὶδ υἱοῦ\n", "POS Tags: ['subs', 'subs', 'subs']\n", "--------------------------------------------------\n" ] } ], "source": [ "# verification - Print the first 5 n-grams\n", "for nGramData in allNGrams[:5]:\n", " words = [wordData['wordText'] for wordData in nGramData]\n", " posTags = [wordData['posTag'] for wordData in nGramData]\n", " print(f\"Words: {' '.join(words)}\")\n", " print(f\"POS Tags: {posTags}\")\n", " print('-' * 50)" ] }, { "cell_type": "markdown", "id": "e403c6e9-6682-4183-ba97-ce12270fdd1c", "metadata": {}, "source": [ "# 4 - Analyzing the n-grams \n", "##### [Back to TOC](#TOC)\n", "\n", "Once the n-grams are obtained, we can perform various analyses on the extracted n-grams. This section provides a few examples." ] }, { "cell_type": "markdown", "id": "3cd6b3a5-099c-419c-bb87-22948ef5d086", "metadata": {}, "source": [ "## 4.1 - N-gram frequency analysis \n", "\n", "The following script provides an statistic overview of the most frequent n-grams. " ] }, { "cell_type": "code", "execution_count": 45, "id": "f5dc6f4b-a1da-4274-9ea3-4536eae24172", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Most common n-grams

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
N-GramFrequency
0ὁ Υἱὸς τοῦ60
1ὁ δὲ εἶπεν54
2τοῦ Κυρίου ἡμῶν47
3λέγω ὑμῖν ὅτι42
4ὁ δὲ Ἰησοῦς42
5Υἱὸς τοῦ ἀνθρώπου41
6τοῦ Θεοῦ καὶ40
7αὐτοῖς ὁ Ἰησοῦς39
8ὁ Ἰησοῦς εἶπεν38
9δὲ ἐγέννησεν τὸν37
\n", "
" ], "text/plain": [ " N-Gram Frequency\n", "0 ὁ Υἱὸς τοῦ 60\n", "1 ὁ δὲ εἶπεν 54\n", "2 τοῦ Κυρίου ἡμῶν 47\n", "3 λέγω ὑμῖν ὅτι 42\n", "4 ὁ δὲ Ἰησοῦς 42\n", "5 Υἱὸς τοῦ ἀνθρώπου 41\n", "6 τοῦ Θεοῦ καὶ 40\n", "7 αὐτοῖς ὁ Ἰησοῦς 39\n", "8 ὁ Ἰησοῦς εἶπεν 38\n", "9 δὲ ἐγέννησεν τὸν 37" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from collections import Counter\n", "import pandas as pd\n", "from IPython.display import display\n", "\n", "# Convert n-grams to tuples of word texts for counting\n", "nGramTuples = [tuple(wordData['wordText'] for wordData in nGram) for nGram in allNGrams]\n", "\n", "# Count the frequency of each n-gram\n", "nGramFrequency = Counter(nGramTuples)\n", "\n", "# Prepare the data for the DataFrame\n", "nGramData = [{'N-Gram': ' '.join(nGram), 'Frequency': freq} for nGram, freq in nGramFrequency.most_common(10)]\n", "\n", "# Create a pandas DataFrame\n", "df = pd.DataFrame(nGramData)\n", "\n", "# Display the title and the DataFrame\n", "display(HTML(\"

Most common n-grams

\")) \n", "display(df)" ] }, { "cell_type": "markdown", "id": "50f8cee9-7bac-42ef-b15e-3c0183b2d58b", "metadata": {}, "source": [ "## 4.2 - POS-sequence frequency analysis " ] }, { "cell_type": "code", "execution_count": 46, "id": "8b51006a-2429-4108-bbdd-aeb2bda4e3dc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Most common POS tag sequences

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
POS Tag SequenceFrequency
0prep art subs3568
1verb art subs3513
2art subs pron3390
3art subs art2846
4subs art subs2765
5art subs verb2666
6art subs conj2402
7verb prep art1837
8conj art subs1818
9subs conj verb1719
\n", "
" ], "text/plain": [ " POS Tag Sequence Frequency\n", "0 prep art subs 3568\n", "1 verb art subs 3513\n", "2 art subs pron 3390\n", "3 art subs art 2846\n", "4 subs art subs 2765\n", "5 art subs verb 2666\n", "6 art subs conj 2402\n", "7 verb prep art 1837\n", "8 conj art subs 1818\n", "9 subs conj verb 1719" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from collections import Counter\n", "import pandas as pd\n", "from IPython.display import display, HTML\n", "\n", "# Extract POS tag sequences from n-grams\n", "posSequences = [tuple(wordData['posTag'] for wordData in nGram) for nGram in allNGrams]\n", "\n", "# Count the frequency of POS tag sequences\n", "posSequenceFrequency = Counter(posSequences)\n", "\n", "# Prepare the data for the DataFrame\n", "posSequenceData = [{'POS Tag Sequence': ' '.join(posSeq), 'Frequency': freq} for posSeq, freq in posSequenceFrequency.most_common(10)]\n", "\n", "# Create a pandas DataFrame\n", "df_pos = pd.DataFrame(posSequenceData)\n", "\n", "# Display the title and the DataFrame\n", "display(HTML(\"

Most common POS tag sequences

\")) # Title added here\n", "display(df_pos)" ] }, { "cell_type": "markdown", "id": "3c201844-fb6c-4b76-a1eb-1f9f6a64f050", "metadata": {}, "source": [ "## 4.3 - N-grams and ambiguity \n", "\n", "N-grams can be used improve POS tagging by identifying common contexts in which words appear. For instance, if a word is often preceded by a definite article, it's likely a noun. It can also be used for disambiguation. Suppose you encounter the word \"ἕως\" which (according the the MACULA XML Treebank) can be (in the context of the Greek New Testament) be either a preposition, a conjunction or a adverbial. The following script will generate a pie chart displaing the frequency distribution of the POS for the word \"ἕως\"." ] }, { "cell_type": "code", "execution_count": 47, "id": "e5f0cf11-943c-49e2-8a42-1b5a8b212969", "metadata": {}, "outputs": [ { "data": { "image/png": "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/XaEh4cjNTUV77//PgYNGoQTJ04gMDAQQPkh64ULF+K2227DokWLUFJSgqNHj2LPnj2488476/T6qpKdnY2RI0di/PjxmDhxItasWYNHH30UnTp1wqhRo2p87MWLF3HDDTdAoVBgyZIlcHJywkcffQSdTlfl9rGxsZg8eTJmz56Ne++9F23btgUAvPvuu+jQoQPGjRsHtVqNtWvXYu7cuTCbzZg3b16FfZw5cwZ33nknZs+ejbvuugsvv/wyxo4di/feew+PP/445s6dCwB4/vnnMXHiRMTGxkKprHoqqru7Ozp27IitW7di4cKFAMrfAwqFAllZWThx4gQ6dOgAANi2bZvlsx4on/c1Y8YM9OjRA88//zxSU1Px+uuvY8eOHTh06FCFUVij0YgRI0agf//+ePnlly2fdbNmzcKqVatw5513om/fvti8eTNGjx5d47+5bEndpOqrthEZIYRwc3MTXbp0sfz92t9wX331VQFApKenV7uPffv2VRjpuNqgQYMEAPHee+9VeV9VIzJBQUEiLy/Pcvvq1asFgAptvC4jMrVlu3ZE5ueffxYAxH//+98K2912221CoVBU+M0VgNBqtRVuO3LkiAAg3nzzzUrPdbXXXntNABCrVq2y3FZWVib69OkjnJ2dK7z26kZZqhIaGipuvPFGkZ6eLtLT08WRI0fEpEmTBACxYMGCCs9d00hBVlaWACDGjx9vuW3q1KkCgPDw8BC33nqrePnll8XJkyfrlCs9Pb3a31yKiooq3fbNN98IAGLr1q2W28aOHSscHR3FxYsXLbfFxcUJtVpd7/drdS7/1nu1+r4nlEqliImJqfdzCyHEmjVrBACxd+/earfZtGmTACBeeeWVarcxGAzC1dVVDBgwwHLb5d+8V65cWWn7a0eW6qKuXzc3Nzcxb968eu//pZdeqnaUoq7fezNnzhQBAQGVRokmTZok3NzcqnwNV7v2M6akpESYTKYK25w7d07odDrxzDPPWG67+eabK72P6vP6qnL5c/SLL76w3FZaWir8/f3FhAkTan38ggULhEKhEIcOHbLclpmZKTw9PasckQEg/vjjj0r7qerfbMSIEaJly5YVbru8j507d1pu+/PPPwUAodfrRWJiouX2999/v8IIaHXmzZtXYaTlwQcfFAMHDhS+vr7i3XfftbwmhUJh+VlRVlYmfH19RceO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rgDKfzNXq9WWia+tWrXCnj17YDAYrnvZgbp+3S4LCAjA3LlzMXfuXKSlpaFr16549tlnaywy1/uZ4uPjAxcXF5hMpnp/zauzZs0a3HDDDfj4448r3J6Tk2OZsHuZk5MT7rjjDtxxxx0oKyvD+PHj8eyzz2LJkiVwcHBoskUHN27cWOHvl4twaGhonb9/qrN27VqUlpbi119/rTDasmXLlgamrb8BAwZg69atCA8PR3R0NFxcXBAVFQU3Nzf88ccfOHjwYIWyePn7MzY2FkOGDKmwr9jY2Dp9/4aGhsJsNltGNa9+vDWyqZq2efNmrFixAuHh4dUeJwXKh5Cvdfk46+Xj8pfPs2+sVSq/+OKLCoc+1qxZg0uXLlX44GvVqhV2796NsrIyy22//fabZej9svpku+mmm2AymfDWW29VuP3VV1+FQqG4rt8gr32elJQUfPfdd5bbjEYj3nzzTTg7O2PQoEGN8jxVcXR0xMMPP4zY2FgsXbq00v2///47PvvsM4wYMcIy5yElJQUnTpyotG1ZWRk2bdoEpVJZ46je5Zn/134NLpeoa38Te+211yptN2zYMPz8888V5lqcOXOm0hyVurxf66O53hNA+VwTg8FQYW7StXr27AkA+PPPPwGUj7xs374dPj4++OuvvwCU/xvs27cPXbt2tZSW2267DRkZGZVeR0PU9etmMpkqHW7w9fVFYGBgrV+L6/1MUalUmDBhAn744QccP3680v0NWftIpVJVes3ff/99pTlimZmZFf6u1WrRvn17CCEsI2WN/Zl52bBhwyr8uTxCM2LECOzatavCCudZWVn46quv6rzvqr7uubm5+PTTTxsnfB0MGDAACQkJ+O677yyHmpRKJfr27YuVK1fCYDBUOGOpe/fu8PX1xXvvvVfhPbd+/XqcPHmyTmceXf4ef+ONNyrcfu373VpY7YjM+vXrcerUKRiNRqSmpmLz5s3YuHEjQkND8euvv9a4YNczzzyDrVu3YvTo0QgNDUVaWhreeecdBAcHo3///gDKS4W7uzvee+89uLi4wMnJCb169WrwfAFPT0/0798fM2bMQGpqKl577TVERERUOEV81qxZWLNmDUaOHImJEyciPj4eq1atqnQcsz7Zxo4dixtuuAFLly5FQkICoqKisGHDBvzyyy9YvHhxvU9Rrc59992H999/H9OnT8eBAwcQ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from collections import Counter\n", "\n", "# Define the target word in unicode\n", "targetWord = 'ἕως'\n", "\n", "# Prepare list to store the POS tags for \"ἕως\" when it's the last word\n", "posTagsForTargetWord = []\n", "\n", "# Find n-grams where \"ἕως\" is the last word and collect its POS tag\n", "for nGramData in allNGrams:\n", " words = [wordData['wordText'] for wordData in nGramData]\n", " if words[-1] == targetWord: # Only include if \"ἕως\" is the last word\n", " posTagsForTargetWord.append(nGramData[-1]['posTag']) # Collect the POS tag of \"ἕως\"\n", "\n", "# Count the frequency of each POS tag for \"ἕως\"\n", "posTagFrequency = Counter(posTagsForTargetWord)\n", "\n", "# Prepare data for the pie chart\n", "labels = list(posTagFrequency.keys())\n", "sizes = list(posTagFrequency.values())\n", "\n", "# Function to display absolute numbers and percentages on the pie chart\n", "def absolute_and_percentage(pct, allvals):\n", " absolute = int(pct/100. * sum(allvals))\n", " return f\"{absolute} ({pct:.1f}%)\"\n", "\n", "# Plot the pie chart\n", "plt.figure(figsize=(7,7))\n", "plt.pie(sizes, labels=labels, autopct=lambda pct: absolute_and_percentage(pct, sizes), \n", " startangle=140, shadow=False)\n", "plt.title(\"Distribution of POS tags for 'ἕως' as the last n-gram word\")\n", "plt.axis('equal') # Equal aspect ratio ensures that pie chart is drawn as a circle.\n", "\n", "# Show the pie chart\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "d2d8141f-3264-4c1d-8962-4766cae4c734", "metadata": {}, "source": [ "## 4.4 - Correlating preceding n-grams with final POS tagging" ] }, { "cell_type": "markdown", "id": "4f532fce-fbd1-47c7-a879-0de9f684f0a0", "metadata": {}, "source": [ "This script analyzes the correlation between the part-of-speech (POS) tag sequences preceding the word \"ἕως\" and its POS tag when it appears as the last word in n-grams. It iterates through the n-grams, extracting the POS tags that precede \"ἕως\" and the POS tag assigned to \"ἕως.\" These sequences are then grouped and counted, and a heatmap is generated to visualize how different preceding POS tag sequences are distributed across various POS tags of \"ἕως,\" allowing to show the grammatical patterns leading up to its usage." ] }, { "cell_type": "code", "execution_count": 51, "id": "f9afd4f5-514e-4ad3-84d8-7e7be752b2bd", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6UAAAL2CAYAAAC5TDCrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADUFUlEQVR4nOzdZ3gUZfv38d8mQBISEiCEEum9996rSJUiTZSiCEonioBKUzSACEgRBQuoFEUFEW8pIk2adJAO0gQh9ECAAMk8L3iyf4YkkN1syZLv5z72uN3Z2XPOmZ0Z5sp5zTUWwzAMAQAAAADgBl7uTgAAAAAAkHrRKAUAAAAAuA2NUgAAAACA29AoBQAAAAC4DY1SAAAAAIDb0CgFAAAAALgNjVIAAAAAgNvQKAUAAAAAuA2NUgAAADzW3bt3dfHiRV27ds06LTo6WhcvXlRMTIwbMwPg6WiUAqncqFGjZLFYTNPy5s2rbt26uSchAHazWCwaNWqUu9Mw6datm/LmzeuU2CdOnJDFYtHs2bOTPO+ECROckounOHLkiJ5++mkFBQXJYrFo8eLFSf7uhg0bFBISogYNGkiSbt++rdq1a6t3795OyhZAakGjFLDR7NmzZbFYrC9fX18VLlxYffv21fnz592dnsd7cNt6eXkpNDRUTz/9tNasWRNv3rt372rKlCmqVKmSMmTIoICAAFWqVElTpkzR3bt3481/584dffzxxypXrpwCAwOVMWNGlShRQj179tTBgwcfmdfZs2c1atQo7dq1y0FrCqQc+/fv16hRo3TixAl3p5Js//vf/5zSMF+zZo3p/JQ2bVrlz59fXbp00T///BNv/kuXLmnw4MEqUqSIfH19lTlzZjVu3FhLly5NMP6FCxc0YMAAFS1aVH5+fsqaNasqV66sIUOG6MaNGw5bj65du2rv3r16//339c0336hixYoJzhfXiH/w3JshQwYVKFBAI0aMkCT16NFDISEhmjt3rry9vR2W46PUrVuXP5oCT6A07k4A8FTvvvuu8uXLp9u3b+vPP//UjBkz9L///U9///230qdP7+70kuXQoUPy8nLf36waNWqkLl26yDAMHT9+XJ988onq16+vX3/9VU2aNJEkRUVFqVmzZlq7dq2aN2+ubt26ycvLS8uWLdOAAQP0008/6ddff5W/v781btu2bfXbb7+pU6dOeuWVV3T37l0dPHhQS5cuVfXq1VW0aNFEczp79qxGjx6tvHnzqmzZss7eBIBL7d+/X6NHj1bdunWdVtV0hjx58ujWrVtKmzatddr//vc/TZ8+3WkV4/79+6tSpUq6e/euduzYoZkzZ+rXX3/V3r17FRoaKun+ObRBgwa6cOGCunfvrooVK+rq1auaO3euWrRooTfeeEMffvihNebly5dVsWJFRUZG6qWXXlLRokV16dIl7dmzRzNmzNBrr72mgICAZOd+69Ytbdq0SW+//bb69u1r8/dLly6tgIAAvfvuuwoJCVGGDBn0+eefm7Y/ANiDRilgpyZNmlj/wtyjRw8FBwdr4sSJ+vnnn9WpU6cEvxMVFWVqJKVUPj4+bl1+4cKF9cILL1jft27dWqVLl9bkyZOtjdKwsDCtXbtWU6dONV1cvfbaa5o+fbr69u2rN954QzNmzJAkbd26VUuXLtX777+vt956y7S8adOm6erVq85fMSABiZ0XDMPQ7du35efn54asPENcbxVXqlWrlp577jlJUvfu3VW4cGH1799fc+bM0bBhw3T37l0999xzunLlitatW6cqVapYvzto0CB17txZEyZMUMWKFdWhQwdJ0hdffKFTp05pw4YNql69uml5kZGRSpcunUNyv3DhgiQpY8aMdn0/bdq02rJli44dO6bixYurWrVqDskLAOi+CzhI/fr1JUnHjx+XdP8+qoCAAB07dkxNmzZVhgwZ1LlzZ0lSbGysJk+erBIlSsjX11fZsmVTr169dOXKlXhxf/vtN9WpU0cZMmRQYGCgKlWqpHnz5pnm2bJli5555hkFBQUpffr0qlOnjjZs2BAv1p9//qlKlSrJ19dXBQoU0GeffZbgujx8T2lcl+UNGzYoLCxMISEh8vf3V+vWra0XOXFiY2M1atQohYaGKn369KpXr57279+frPtUS5UqpSxZsli37b///qsvvvhC9evXT/Cv/X369FG9evX0+eef699//5UkHTt2TJJUo0aNePN7e3srODg40eWvWbNGlSpVknT/IjSu+17cfWzr169Xu3btlDt3bvn4+ChXrlwaNGiQbt26FS/WwoULVbx4cfn6+qpkyZJatGhRku+527Ztmxo3bqwsWbLIz89P+fLl00svvWSaJ6n7lmEYGjNmjHLmzGn9nfbt2xfvd0ronmPp//aJh7t7/vbbb6pVq5b8/f2VIUMGNWvWTPv27TPNE3dsnDlzRq1atVJAQIBCQkL0xhtvxBssJTY2Vh9//LFKlSolX19fhYSE6JlnntG2bdtM83377beqUKGC/Pz8lDlzZnXs2FGnT582zXPkyBG1bdtW2bNnl6+vr3LmzKmOHTuaBm1JzJYtW9S0aVNlypRJ/v7+Kl26tD7++GPTPH/88Yd13TNmzKhnn31WBw4cMM0Ttz3379+v559/XpkyZVLNmjUl3T/umjdvruXLl6tixYry8/OzHqNXr17VwIEDlStXLvn4+KhgwYIaN26cYmNjH5n3yZMn1bt3bxUpUkR+fn4KDg5Wu3btTL/b7Nmz1a5dO0lSvXr1rPv3g902k/K7StLixYtVsmRJ0/6dFGFhYQoODpZhGNZp/fr1k8Vi0ZQpU6zTzp8/L4vFYv1j08P3lHbr1k3Tp0+XZL4V4GEzZ85UgQIF5OPjo0qVKmnr1q1JyjMhD5/7f/zxR/39998aOnSoqUEq3T/XfPbZZ8qYMaOpknvs2DF5e3uratWq8eIHBgYmqeG9c+dONWnSRIGBgQoICFCDBg20efNm6+ejRo1Snjx5JEmDBw+WxWKxuSpuGIamTJmiNm3aWI+1ypUr66effrLOc+/ePT311FNq3rx5gjFu3rypoKAga4P8QQcPHlT79u0VEhIiPz8/FSlSRG+//bZNOQLwTFRKAQeJa/Q82Li5d++eGjdurJo1a2rChAnWbr29evXS7Nmz1b17d/Xv31/Hjx/XtGnTtHPnTm3YsMHaFWr27Nl66aWXVKJECQ0bNkwZM2bUzp07tWzZMj3//POS7l8IN2nSRBUqVNDIkSPl5eWlr776SvXr19f69etVuXJlSdLevXv19NNPKyQkRKNGjdK9e/c0cuRIZcuWLcnr2K9fP2XKlEkjR47UiRMnNHnyZPXt21ffffeddZ5hw4Zp/PjxatGihRo3bqzdu3ercePGun37tt3b9sqVK7py5YoKFiwo6f4FckxMjLp06ZLod7p06aLVq1dr2bJl6tGjh/VibO7cuapRo4bSpEn66a9YsWJ69913NWLECPXs2VO1atWSJGtFY+HChbp586Zee+01BQcH66+//tLUqVP177//auHChdY4v/76qzp06KBSpUopPDxcV65c0csvv6ynnnrqsTlERERYf7+hQ4cqY8aMOnHihOliUEr6vjVixAiNGTNGTZs2VdOmTbVjxw49/fTTunPnTpK3y8O++eYbde3aVY0bN9a4ceN08+ZNzZgxQzVr1tTOnTtNF8AxMTFq3LixqlSpogkTJuj333/XRx99pAIFCui1116zzvfyyy9r9uzZatKkiXr06KF79+5p/fr12rx5s7Wnwvvvv6/hw4erffv26tGjhy5cuKCpU6eqdu3a2rlzpzJmzKg7d+6ocePGio6OVr9+/ZQ9e3adOXNGS5cu1dWrVxUUFJToeq1cuVLNmzdXjhw5NGDAAGXPnl0HDhzQ0qVLNWDAAEnS77//riZNmih//vwaNWqUbt26palTp6pGjRrasWNHvIv/du3aqVChQvrggw9MDbFDhw6pU6dO6tWrl1555RUVKVJEN2/eVJ06dXTmzBn16tVLuXPn1saNGzVs2DD9999/mjx5cqK5b926VRs3blTHjh2VM2dOnThxQjNmzFDdunW1f/9+pU+fXrVr11b//v01ZcoUvfXWWypWrJgkWf8/qb/rihUr1LZtWxUvXlzh4eG6dOmSunfvrpw5cz5236lVq5YmTZqkffv2qWTJkpLu/7HHy8tL69evV//+/a3TJKl27doJxunVq5fOnj2rlStX6ptvvklwnnnz5un69evq1auXLBaLxo8frzZt2uiff/6xqxvqw+f+X375RZISPT8FBQXp2Wef1Zw5c3T06FEVLFhQefLkUUxMjHVb22rfvn2qVauWAgMD9eabbypt2rT67LPPVLduXa1du1ZVqlRRmzZtlDFjRg0aNEidOnVS06ZNbe4SPGnSJL355ptq3bq1wsLCrLdAREZGWuf55ZdfdPbsWVP35AelT59ebdq00dy5c3Xx4kVlyZJFkrRnzx7VqlVLadOmVc+ePZU3b14dO3ZMv/zyi95//32btwkAD2MAsMlXX31lSDJ+//1348KFC8bp06eNBQsWGMHBwYafn5/x77//GoZhGF27djUkGUOHDjV9f/369YYkY+7cuabpy5YtM02/evWqkSFDBqNKlSrGrVu3TPPGxsZa/79QoUJG48aNrdMMwzBu3rxp5MuXz2jUqJF1WqtWrQxfX1/j5MmT1mn79+83vL29jYdPBXny5DG6du0ab50bNmxoWs6gQYMMb29v4+rVq4ZhGMa5c+eMNGnSGK1atTLFGzVqlCHJFDMxkoyXX37ZuHDhghER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52rSpIlKlCih7t2766mnntKZM2e0evVqBQYGWh9PMHr0aC1btky1atVS7969de/ePU2dOlUlSpSwdiVLrmzZsmnAgAH66KOP1LJlSz3zzDPavXu3fvvtN2XJksWhFYxJkybp4MGD6t27t5YtW2atiC5fvlw///yz6tSpY6oOxd2L1qRJE9WqVUuZM2fWmTNnNGfOHJ09e1aTJ09+ZJfSAgUKKGPGjPr000+VIUMG+fv7q0qVKipatKgKFCigN954Q2fOnFFgYKB+/PHHBCvDH3zwgZ599lnVqFFD3bt315UrVzRt2jSVLFkywT8qPGjOnDn65JNP1Lp1axUoUEDXr1/XrFmzFBgYaG30JHXfinsmaHh4uJo3b66mTZtq586d1t/pQU8//bRy586tl19+WYMHD5a3t7e+/PJLhYSEmC4eAwMDNWPGDL344osqX768OnbsaJ3n119/VY0aNWz+40S9evX04osvasqUKTpy5IieeeYZxcbGav369apXr5769u2rAgUKaMyYMRo2bJhOnDihVq1aKUOGDDp+/LgWLVqknj176o033tAff/yhvn37ql27dipcuLDu3bunb775Rt7e3mrbtm2iOXh5eWnGjBlq0aKFypYtq+7duytHjhw6ePCg9u3bZ20ofvjhh2rSpImqVauml19+2fpImKCgINPzKO0xePBgLVmyRM2bN1e3bt1UoUIFRUVFae/evfrhhx904sSJeL9bnObNm+ubb75RUFCQihcvrk2bNun333+P91zesmXLytvbW+PGjdO1a9fk4+Oj+vXrK2vWrEn+XcPDw9WsWTPVrFlTL730ki5fvmw9xzxu/45Tq1YtLViwQKVKlbJW6cuXLy9/f38dPnw4SfeTxlVS+/fvr8aNG8vb21sdO3ZM0vIdIV26dPrhhx/UoEED1axZU927d1fFihV19epVzZs3Tzt27NDrr79uyumbb77R3Llz1bp1a1WoUEHp0qXTgQMH9OWXX8rX11dvvfXWI5c5ZswYrVy5UjVr1lTv3r2VJk0affbZZ4qOjn5kVdNWL7zwgj755BO1bNnSum2PHj2qiIgIff3115LuD+73448/qn379urZs6cmT56sXr166csvv9SLL76oChUq6P3331dwcLA6depkjT116lTVrFlT5cuXV69evVSuXDnVqVPHrtsOAHgg1w72C3i+uEdh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3rlzp+bNm6cFCxbowoULeuaZZ/TCCy+oRYsWyXpeX2o7nzrr2Pf29tZ///2nrFmzysvL65GNXYvFokKFCumTTz557L+TcVLz+US6v37z5s3Tjh07VL58eb3wwgvq0KGDsmfPblc8yXH7qZeXl86dO2f97R/H29tb48eP16BBgxKdxxXXUps3b9bzzz+vkydPxut1ZbFYrA1AWxQpUkQzZsxQ/fr1tWnTJjVs2FCTJk3S0qVLlSZNGv300082x+zQoYN27typqVOnmq57BgwYoLJly2rBggU2x4QHMpAs2bNnN77++muHx/X19TVOnTplGIZhvPjii8aQIUMMwzCMkydPGv7+/nbFLFmypPHKK68Y9+7ds067d++e0bNnT6NkyZLJTzoRW7duNQIDA236jo+Pj3H69GnDMAzjlVdeMQYMGGAYhmH8888/RoYMGezKo2rVqkaLFi2My5cvW6ddvnzZaNmypVGtWjW7Yj4oKirK+Pbbb42mTZsa6dKlM/Lnz29XnCxZshjz5s2LN33evHlGcHCw3fkFBwcbv/76q93fT4ifn59x8uRJwzAMo127dsaoUaMMwzCMU6dOGX5+fnbFzJ8/vzF8+PB400eMGGH3Nk2Ko0ePGj4+PjZ9h2163z///GOMGTPGKFGihOHt7W3Uq1fP7lhPPfWUMXXq1HjTp02bZoSGhtoV0xnnaWeco+PExsYaf/zxh9GjRw8jU6ZMRlBQkNG9e3e746Xm82lSJPXYX7NmjXH37l3DMAxj9erVxpo1axJ9LV++3HjttdeMIkWKJDkPzif3HTp0yBgxYoRRqFAhI02aNEajRo2MOXPm2BXL2ftpQqKjo42vvvrKyJ49u0Pj2nMtVaZMGaNdu3bG/v37jStXrhhXr141vezx4D715ptvGi+++KJhGIbx999/G1myZLErZvr06Y3169fHm75u3Tojffr0dsWE56FRmkyZM2c2jh496vC4hQoVMr777jvjxo0bRkhIiLFq1SrDMAxj165ddjdMfH19jYMHD8abfvDgQcPX1zdZ+T5KdHS0sXjxYpu+kzt3bmP58uXGvXv3jFy5chlLly41DOP+SS9jxox25eHr62v8/fff8abv3bvXYet/4cIFY+rUqUaJEiUMLy8vu2IEBQUZhw8fjjf90KFDRlBQkN255ciRwzh06JDd309IqVKljI8//tg4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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from collections import Counter\n", "\n", "# Define the target word in unicode\n", "targetWord = 'ἕως'\n", "\n", "# Prepare lists to store preceding POS tags and the POS of \"ἕως\"\n", "precedingPOSTags = []\n", "finalPOSForTargetWord = []\n", "\n", "# Find n-grams where \"ἕως\" is the last word\n", "for nGramData in allNGrams:\n", " words = [wordData['wordText'] for wordData in nGramData]\n", " if words[-1] == targetWord: # Only include if \"ἕως\" is the last word\n", " posTags = [wordData['posTag'] for wordData in nGramData]\n", " precedingPOSTags.append(' '.join(posTags[:-1])) # Collect preceding POS tags\n", " finalPOSForTargetWord.append(posTags[-1]) # Collect POS tag of \"ἕως\"\n", "\n", "# Create a DataFrame to store the relationships\n", "df = pd.DataFrame({\n", " 'Preceding POS Tags': precedingPOSTags,\n", " 'Final POS (ἕως)': finalPOSForTargetWord\n", "})\n", "\n", "# Count occurrences of preceding POS tag sequences grouped by the POS of \"ἕως\"\n", "groupedData = df.groupby(['Final POS (ἕως)', 'Preceding POS Tags']).size().unstack(fill_value=0)\n", "\n", "# Plot a heatmap to visualize the relationship between preceding POS tags and the POS of \"ἕως\"\n", "plt.figure(figsize=(12, 8))\n", "sns.heatmap(groupedData, annot=True, fmt=\"d\", cmap=\"Blues\", cbar=True)\n", "plt.title(\"Preceding POS tag sequences correlated with POS of 'ἕως'\")\n", "plt.xlabel(\"Preceding POS tags\")\n", "plt.ylabel(\"Final POS (ἕως)\")\n", "plt.xticks(rotation=90)\n", "plt.yticks(rotation=0)\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "1fc93973-e993-47b9-8aee-29e5e44eee89", "metadata": { "tags": [] }, "source": [ "# 5 - Required libraries \n", "##### [Back to TOC](#TOC)\n", "\n", "The scripts in this notebook require (beside `text-fabric`) the following Python libraries to be installed in your environment:\n", "\n", " pandas\n", " matplotlib\n", " seaborn\n", " collections\n", "\n", "You can install any missing library from within Jupyter Notebook using either`pip` or `pip3`." ] }, { "cell_type": "markdown", "id": "8031bf58-0511-4fa9-964a-e3c3a86d5416", "metadata": {}, "source": [ "# 6 - Notebook and environment details\n", "##### [Back to TOC](#TOC)\n", "\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AuthorTony Jurg
Version1.0
Date20 October 2024
\n", "
" ] }, { "cell_type": "markdown", "id": "c197770b-f8f9-4479-8f93-b389ee4c1156", "metadata": {}, "source": [ "The following cell displays the active Anaconda environment along with a list of all installed packages and their versions within that environment." ] }, { "cell_type": "code", "execution_count": 49, "id": "f4c5a91f-f6de-4159-9869-109ad425cf03", "metadata": { "editable": true, "scrolled": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Text-Fabric * C:\\Users\\tonyj\\anaconda3\\envs\\Text-Fabric\n" ] }, { "data": { "text/html": [ "
Click to view installed packages
# packages in environment at C:\\Users\\tonyj\\anaconda3\\envs\\Text-Fabric:\r\n",
       "#\r\n",
       "# Name                    Version                   Build  Channel\r\n",
       "anyio                     4.6.2.post1        pyhd8ed1ab_0    conda-forge\r\n",
       "argon2-cffi               23.1.0             pyhd8ed1ab_0    conda-forge\r\n",
       "argon2-cffi-bindings      21.2.0          py312h4389bb4_5    conda-forge\r\n",
       "arrow                     1.3.0              pyhd8ed1ab_0    conda-forge\r\n",
       "asttokens                 2.4.1              pyhd8ed1ab_0    conda-forge\r\n",
       "async-lru                 2.0.4              pyhd8ed1ab_0    conda-forge\r\n",
       "attrs                     24.2.0             pyh71513ae_0    conda-forge\r\n",
       "babel                     2.14.0             pyhd8ed1ab_0    conda-forge\r\n",
       "beautifulsoup4            4.12.3             pyha770c72_0    conda-forge\r\n",
       "bleach                    6.1.0              pyhd8ed1ab_0    conda-forge\r\n",
       "blinker                   1.8.2                    pypi_0    pypi\r\n",
       "brotli-python             1.1.0           py312h275cf98_2    conda-forge\r\n",
       "bzip2                     1.0.8                h2466b09_7    conda-forge\r\n",
       "ca-certificates           2024.8.30            h56e8100_0    conda-forge\r\n",
       "cached-property           1.5.2                hd8ed1ab_1    conda-forge\r\n",
       "cached_property           1.5.2              pyha770c72_1    conda-forge\r\n",
       "certifi                   2024.8.30          pyhd8ed1ab_0    conda-forge\r\n",
       "cffi                      1.17.1          py312h4389bb4_0    conda-forge\r\n",
       "charset-normalizer        3.4.0              pyhd8ed1ab_0    conda-forge\r\n",
       "click                     8.1.7                    pypi_0    pypi\r\n",
       "colorama                  0.4.6              pyhd8ed1ab_0    conda-forge\r\n",
       "comm                      0.2.2              pyhd8ed1ab_0    conda-forge\r\n",
       "contourpy                 1.3.0                    pypi_0    pypi\r\n",
       "cpython                   3.12.7          py312hd8ed1ab_0    conda-forge\r\n",
       "cycler                    0.12.1                   pypi_0    pypi\r\n",
       "debugpy                   1.8.7           py312h275cf98_0    conda-forge\r\n",
       "decorator                 5.1.1              pyhd8ed1ab_0    conda-forge\r\n",
       "defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge\r\n",
       "entrypoints               0.4                pyhd8ed1ab_0    conda-forge\r\n",
       "exceptiongroup            1.2.2              pyhd8ed1ab_0    conda-forge\r\n",
       "executing                 2.1.0              pyhd8ed1ab_0    conda-forge\r\n",
       "flask                     3.0.3                    pypi_0    pypi\r\n",
       "fonttools                 4.54.1                   pypi_0    pypi\r\n",
       "fqdn                      1.5.1              pyhd8ed1ab_0    conda-forge\r\n",
       "h11                       0.14.0             pyhd8ed1ab_0    conda-forge\r\n",
       "h2                        4.1.0              pyhd8ed1ab_0    conda-forge\r\n",
       "hpack                     4.0.0              pyh9f0ad1d_0    conda-forge\r\n",
       "httpcore                  1.0.6              pyhd8ed1ab_0    conda-forge\r\n",
       "httpx                     0.27.2             pyhd8ed1ab_0    conda-forge\r\n",
       "hyperframe                6.0.1              pyhd8ed1ab_0    conda-forge\r\n",
       "idna                      3.10               pyhd8ed1ab_0    conda-forge\r\n",
       "importlib-metadata        8.5.0              pyha770c72_0    conda-forge\r\n",
       "importlib_metadata        8.5.0                hd8ed1ab_0    conda-forge\r\n",
       "importlib_resources       6.4.5              pyhd8ed1ab_0    conda-forge\r\n",
       "intel-openmp              2024.2.1          h57928b3_1083    conda-forge\r\n",
       "ipykernel                 6.29.5             pyh4bbf305_0    conda-forge\r\n",
       "ipython                   8.28.0             pyh7428d3b_0    conda-forge\r\n",
       "isoduration               20.11.0            pyhd8ed1ab_0    conda-forge\r\n",
       "itsdangerous              2.2.0                    pypi_0    pypi\r\n",
       "jedi                      0.19.1             pyhd8ed1ab_0    conda-forge\r\n",
       "jinja2                    3.1.4              pyhd8ed1ab_0    conda-forge\r\n",
       "json5                     0.9.25             pyhd8ed1ab_0    conda-forge\r\n",
       "jsonpointer               3.0.0           py312h2e8e312_1    conda-forge\r\n",
       "jsonschema                4.23.0             pyhd8ed1ab_0    conda-forge\r\n",
       "jsonschema-specifications 2024.10.1          pyhd8ed1ab_0    conda-forge\r\n",
       "jsonschema-with-format-nongpl 4.23.0               hd8ed1ab_0    conda-forge\r\n",
       "jupyter-lsp               2.2.5              pyhd8ed1ab_0    conda-forge\r\n",
       "jupyter_client            8.6.3              pyhd8ed1ab_0    conda-forge\r\n",
       "jupyter_core              5.7.2              pyh5737063_1    conda-forge\r\n",
       "jupyter_events            0.10.0             pyhd8ed1ab_0    conda-forge\r\n",
       "jupyter_server            2.14.2             pyhd8ed1ab_0    conda-forge\r\n",
       "jupyter_server_terminals  0.5.3              pyhd8ed1ab_0    conda-forge\r\n",
       "jupyterlab                4.2.5              pyhd8ed1ab_0    conda-forge\r\n",
       "jupyterlab_pygments       0.3.0              pyhd8ed1ab_1    conda-forge\r\n",
       "jupyterlab_server         2.27.3             pyhd8ed1ab_0    conda-forge\r\n",
       "kiwisolver                1.4.7                    pypi_0    pypi\r\n",
       "krb5                      1.21.3               hdf4eb48_0    conda-forge\r\n",
       "libblas                   3.9.0              24_win64_mkl    conda-forge\r\n",
       "libcblas                  3.9.0              24_win64_mkl    conda-forge\r\n",
       "libexpat                  2.6.3                he0c23c2_0    conda-forge\r\n",
       "libffi                    3.4.2                h8ffe710_5    conda-forge\r\n",
       "libhwloc                  2.11.1          default_h8125262_1000    conda-forge\r\n",
       "libiconv                  1.17                 hcfcfb64_2    conda-forge\r\n",
       "liblapack                 3.9.0              24_win64_mkl    conda-forge\r\n",
       "libsodium                 1.0.20               hc70643c_0    conda-forge\r\n",
       "libsqlite                 3.46.1               h2466b09_0    conda-forge\r\n",
       "libxml2                   2.12.7               h0f24e4e_4    conda-forge\r\n",
       "libzlib                   1.3.1                h2466b09_2    conda-forge\r\n",
       "markdown                  3.7                      pypi_0    pypi\r\n",
       "markdown2                 2.5.1                    pypi_0    pypi\r\n",
       "markupsafe                3.0.1           py312h31fea79_1    conda-forge\r\n",
       "matplotlib                3.9.2                    pypi_0    pypi\r\n",
       "matplotlib-inline         0.1.7              pyhd8ed1ab_0    conda-forge\r\n",
       "mistune                   3.0.2              pyhd8ed1ab_0    conda-forge\r\n",
       "mkl                       2024.1.0           h66d3029_694    conda-forge\r\n",
       "nbclient                  0.10.0             pyhd8ed1ab_0    conda-forge\r\n",
       "nbconvert-core            7.16.4             pyhd8ed1ab_1    conda-forge\r\n",
       "nbformat                  5.10.4             pyhd8ed1ab_0    conda-forge\r\n",
       "nest-asyncio              1.6.0              pyhd8ed1ab_0    conda-forge\r\n",
       "notebook                  7.2.2              pyhd8ed1ab_0    conda-forge\r\n",
       "notebook-shim             0.2.4              pyhd8ed1ab_0    conda-forge\r\n",
       "numpy                     2.1.2           py312hf10105a_0    conda-forge\r\n",
       "openssl                   3.3.2                h2466b09_0    conda-forge\r\n",
       "overrides                 7.7.0              pyhd8ed1ab_0    conda-forge\r\n",
       "packaging                 24.1               pyhd8ed1ab_0    conda-forge\r\n",
       "pandas                    2.2.3           py312h72972c8_1    conda-forge\r\n",
       "pandocfilters             1.5.0              pyhd8ed1ab_0    conda-forge\r\n",
       "parso                     0.8.4              pyhd8ed1ab_0    conda-forge\r\n",
       "pickleshare               0.7.5                   py_1003    conda-forge\r\n",
       "pillow                    11.0.0                   pypi_0    pypi\r\n",
       "pip                       24.2               pyh8b19718_1    conda-forge\r\n",
       "pkgutil-resolve-name      1.3.10             pyhd8ed1ab_1    conda-forge\r\n",
       "platformdirs              4.3.6              pyhd8ed1ab_0    conda-forge\r\n",
       "prometheus_client         0.21.0             pyhd8ed1ab_0    conda-forge\r\n",
       "prompt-toolkit            3.0.48             pyha770c72_0    conda-forge\r\n",
       "psutil                    6.0.0           py312h4389bb4_2    conda-forge\r\n",
       "pthreads-win32            2.9.1                h2466b09_4    conda-forge\r\n",
       "pure_eval                 0.2.3              pyhd8ed1ab_0    conda-forge\r\n",
       "pycparser                 2.22               pyhd8ed1ab_0    conda-forge\r\n",
       "pygments                  2.18.0             pyhd8ed1ab_0    conda-forge\r\n",
       "pyparsing                 3.2.0                    pypi_0    pypi\r\n",
       "pysocks                   1.7.1              pyh0701188_6    conda-forge\r\n",
       "python                    3.12.7          hce54a09_0_cpython    conda-forge\r\n",
       "python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge\r\n",
       "python-fastjsonschema     2.20.0             pyhd8ed1ab_0    conda-forge\r\n",
       "python-json-logger        2.0.7              pyhd8ed1ab_0    conda-forge\r\n",
       "python-tzdata             2024.2             pyhd8ed1ab_0    conda-forge\r\n",
       "python_abi                3.12                    5_cp312    conda-forge\r\n",
       "pytz                      2024.1             pyhd8ed1ab_0    conda-forge\r\n",
       "pywin32                   307             py312h275cf98_3    conda-forge\r\n",
       "pywinpty                  2.0.13          py312h275cf98_1    conda-forge\r\n",
       "pyyaml                    6.0.2           py312h4389bb4_1    conda-forge\r\n",
       "pyzmq                     26.2.0          py312hd7027bb_3    conda-forge\r\n",
       "referencing               0.35.1             pyhd8ed1ab_0    conda-forge\r\n",
       "requests                  2.32.3             pyhd8ed1ab_0    conda-forge\r\n",
       "rfc3339-validator         0.1.4              pyhd8ed1ab_0    conda-forge\r\n",
       "rfc3986-validator         0.1.1              pyh9f0ad1d_0    conda-forge\r\n",
       "rpds-py                   0.20.0          py312h2615798_1    conda-forge\r\n",
       "seaborn                   0.13.2                   pypi_0    pypi\r\n",
       "send2trash                1.8.3              pyh5737063_0    conda-forge\r\n",
       "setuptools                75.1.0             pyhd8ed1ab_0    conda-forge\r\n",
       "six                       1.16.0             pyh6c4a22f_0    conda-forge\r\n",
       "sniffio                   1.3.1              pyhd8ed1ab_0    conda-forge\r\n",
       "soupsieve                 2.5                pyhd8ed1ab_1    conda-forge\r\n",
       "stack_data                0.6.2              pyhd8ed1ab_0    conda-forge\r\n",
       "tbb                       2021.13.0            hc790b64_0    conda-forge\r\n",
       "terminado                 0.18.1             pyh5737063_0    conda-forge\r\n",
       "text-fabric               12.5.5                   pypi_0    pypi\r\n",
       "tinycss2                  1.3.0              pyhd8ed1ab_0    conda-forge\r\n",
       "tk                        8.6.13               h5226925_1    conda-forge\r\n",
       "tomli                     2.0.2              pyhd8ed1ab_0    conda-forge\r\n",
       "tornado                   6.4.1           py312h4389bb4_1    conda-forge\r\n",
       "traitlets                 5.14.3             pyhd8ed1ab_0    conda-forge\r\n",
       "types-python-dateutil     2.9.0.20241003     pyhff2d567_0    conda-forge\r\n",
       "typing-extensions         4.12.2               hd8ed1ab_0    conda-forge\r\n",
       "typing_extensions         4.12.2             pyha770c72_0    conda-forge\r\n",
       "typing_utils              0.1.0              pyhd8ed1ab_0    conda-forge\r\n",
       "tzdata                    2024b                hc8b5060_0    conda-forge\r\n",
       "ucrt                      10.0.22621.0         h57928b3_1    conda-forge\r\n",
       "uri-template              1.3.0              pyhd8ed1ab_0    conda-forge\r\n",
       "urllib3                   2.2.3              pyhd8ed1ab_0    conda-forge\r\n",
       "vc                        14.3                h8a93ad2_22    conda-forge\r\n",
       "vc14_runtime              14.40.33810         hcc2c482_22    conda-forge\r\n",
       "vs2015_runtime            14.40.33810         h3bf8584_22    conda-forge\r\n",
       "wcwidth                   0.2.13             pyhd8ed1ab_0    conda-forge\r\n",
       "webcolors                 24.8.0             pyhd8ed1ab_0    conda-forge\r\n",
       "webencodings              0.5.1              pyhd8ed1ab_2    conda-forge\r\n",
       "websocket-client          1.8.0              pyhd8ed1ab_0    conda-forge\r\n",
       "werkzeug                  3.0.4                    pypi_0    pypi\r\n",
       "wheel                     0.44.0             pyhd8ed1ab_0    conda-forge\r\n",
       "win_inet_pton             1.1.0              pyh7428d3b_7    conda-forge\r\n",
       "winpty                    0.4.3                         4    conda-forge\r\n",
       "xz                        5.2.6                h8d14728_0    conda-forge\r\n",
       "yaml                      0.2.5                h8ffe710_2    conda-forge\r\n",
       "zeromq                    4.3.5                ha9f60a1_6    conda-forge\r\n",
       "zipp                      3.20.2             pyhd8ed1ab_0    conda-forge\r\n",
       "zstandard                 0.23.0          py312h7606c53_1    conda-forge\r\n",
       "zstd                      1.5.6                h0ea2cb4_0    conda-forge\r\n",
       "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import subprocess\n", "from IPython.display import display, HTML\n", "\n", "# Display the active conda environment\n", "!conda env list | findstr \"*\"\n", "\n", "# Run conda list and capture the output\n", "condaListOutput = subprocess.check_output(\"conda list\", shell=True).decode(\"utf-8\")\n", "\n", "# Wrap the output with
and HTML tags\n", "htmlOutput = \"
Click to view installed packages
\"\n",
    "htmlOutput += condaListOutput\n",
    "htmlOutput += \"
\"\n", "\n", "# Display the HTML in the notebook\n", "display(HTML(htmlOutput))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.7" } }, "nbformat": 4, "nbformat_minor": 5 }