Files
DATA101_projects/final_project.ipynb
2022-09-22 22:14:30 -04:00

50 KiB

Setup and Testing

We'll bring plain text files into the notebook for processing. There are 7 text files, written in Latin in the first century BC, comprising Julius Caesar's Commentaries on the Gallic Wars.

Prerequisites

  1. Python versions 3.7, 3.8, or 3.9
  2. The Classical Language Toolkit (https://docs.cltk.org/en/latest/index.html)

First steps

In [1]:
from cltk import NLP
In [2]:
cltk_nlp = NLP(language="lat")
‎𐤀 CLTK version '1.1.1'.
Pipeline for language 'Latin' (ISO: 'lat'): `LatinNormalizeProcess`, `LatinStanzaProcess`, `LatinEmbeddingsProcess`, `StopsProcess`, `LatinLexiconProcess`.
In [5]:
# read the first file, Gallic Wars Book 1, which is in the same directory as this notebook

with open("gall1.txt") as fo:
    caesar_book1 = fo.read()
In [6]:
# text snippet

caesar_book1[:200]
Out [6]:
'Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differun'
In [7]:
# let's get some estimates

print("Character count:", len(caesar_book1))
print("Approximate token count:", len(caesar_book1.split()))
Character count: 57955
Approximate token count: 8173
In [4]:
# removing ``LatinLexiconProcess`` before running cltk_nlp.analyze because it's slow

cltk_nlp.pipeline.processes.pop(-1)
print(cltk_nlp.pipeline.processes)
[<class 'cltk.alphabet.processes.LatinNormalizeProcess'>, <class 'cltk.dependency.processes.LatinStanzaProcess'>, <class 'cltk.embeddings.processes.LatinEmbeddingsProcess'>, <class 'cltk.stops.processes.StopsProcess'>]
In [9]:
# now execute NLP algorithms upon input text
# execution time is ~60 sec on a my Thinkpad T460s

%time cltk_doc = cltk_nlp.analyze(text=caesar_book1)
CPU times: total: 2min 56s
Wall time: 2min 16s
In [41]:
# have a look at the first 10 words

cltk_doc.tokens[:10] # note that punctuation is included here
Out [41]:
['Gallia',
 'est',
 'omnis',
 'divisa',
 'in',
 'partes',
 'tres',
 ',',
 'quarum',
 'unam']
In [47]:
# let's remove punctuation

caesar_tokens_no_punct = [token for token in cltk_doc.tokens if token not in ['.', ',', ':', ';']]
caesar_word_tokens_no_punct[:10]
Out [47]:
['Gallia',
 'est',
 'omnis',
 'divisa',
 'in',
 'partes',
 'tres',
 'quarum',
 'unam',
 'incolunt']
In [43]:
# instead of tokens(words), let's find the root words, or the "lemmata"

cltk_doc.lemmata[:10]
Out [43]:
['Gallia', 'sum', 'omnis', 'divisa', 'in', 'pars', 'tres', ',', 'qui', 'unus']
In [49]:
# let's remove punctuation

caesar_lemmata_no_punct = [token for token in cltk_doc.lemmata if token not in ['.', ',', ':', ';']]
caesar_lemmata_no_punct[:10]
Out [49]:
['Gallia',
 'sum',
 'omnis',
 'divisa',
 'in',
 'pars',
 'tres',
 'qui',
 'unus',
 'incaleo']

Book 1

A cursory look at Book 1 reveals the German King Ariovistus is the enemy most often mentioned by Caesar. Exactly how many times can we find Ariovistus in Book 1?

In [7]:
from collections import Counter
In [60]:
# here is a dictionary of every word in the Book 1 along with how many times each word appears

caesar_word_counts = Counter(caesar_lemmata_no_punct)
caesar_word_counts
Out [60]:
Counter({'Gallia': 15,
         'sum': 223,
         'omnis': 66,
         'divisa': 2,
         'in': 177,
         'pars': 26,
         'tres': 7,
         'qui': 213,
         'unus': 23,
         'incaleo': 4,
         'Belgae': 3,
         'alius': 12,
         'Aquitani': 1,
         'tertius': 10,
         'ipse': 44,
         'lingua': 3,
         'Celtae': 1,
         'noster': 39,
         'Galli': 1,
         'appello': 9,
         'is': 269,
         'instituo': 3,
         'lex': 3,
         'inter': 17,
         'se': 162,
         'differo': 1,
         'Gallos': 4,
         'ab': 102,
         'Aquitanis': 1,
         'Garumna': 3,
         'flumen': 21,
         'Belgis': 1,
         'Matrona': 1,
         'et': 193,
         'Sequana': 1,
         'disco': 5,
         'fortis': 2,
         'propterea': 15,
         'quod': 82,
         'cultus': 2,
         'atque': 75,
         'humanitas': 2,
         'provinciae': 8,
         'longe': 7,
         'absum': 8,
         'minimeque': 1,
         'ad': 107,
         'mercator': 1,
         'saepe': 5,
         'commeo': 1,
         'effemino': 1,
         'animus': 10,
         'pertineo': 6,
         'importo': 1,
         'proximique': 1,
         'Germanis': 5,
         'trans': 7,
         'Rhenum': 15,
         'quicum': 3,
         'continenter': 2,
         'bellum': 29,
         'gero': 8,
         'Qua': 2,
         'de': 36,
         'causa': 25,
         'Helvetii': 23,
         'quoque': 1,
         'reliquus': 17,
         'virtute': 10,
         'praecedo': 1,
         'fere': 3,
         'cotidianus': 2,
         'proelium': 32,
         'cum': 80,
         'contendo': 18,
         'aut': 35,
         'suus': 104,
         'finis': 37,
         'prohibeo': 11,
         'obtineo': 7,
         'dico': 33,
         'initium': 3,
         'capio': 6,
         'Rhodano': 2,
         'contineo': 5,
         'Oceanum': 2,
         'Belgarum': 1,
         'attingo': 1,
         'etiam': 17,
         'Sequanis': 10,
         'Helvetiis': 11,
         'vergit': 1,
         'septentrio': 4,
         'exterior': 2,
         'Galliae': 22,
         'orior': 2,
         'inferus': 1,
         'Rheni': 3,
         'specto': 3,
         'sol': 2,
         'Aquitania': 1,
         'Pyrenaeos': 1,
         'mons': 20,
         'Hispaniam': 1,
         'occasum': 1,
         'Apud': 1,
         'Helvetios': 14,
         'nobilis': 6,
         'ditussus': 1,
         'Orgetorix': 8,
         'Is': 6,
         'M.': 7,
         'Messala': 2,
         '[et': 1,
         'P.': 2,
         ']': 12,
         'Pisone': 3,
         'consulus': 3,
         'regnum': 7,
         'cupiditas': 3,
         'induco': 2,
         'coniuratio': 1,
         'nobilitas': 2,
         'facio': 75,
         'civitati': 1,
         'persuatio': 2,
         'ut': 73,
         'copua': 5,
         'exeo': 4,
         'perfacilis': 1,
         'praesto': 2,
         'totus': 16,
         'imperium': 8,
         'potior': 3,
         'hic': 50,
         'faciliter': 3,
         'undique': 2,
         'locus': 32,
         'natura': 3,
         'ex': 59,
         'Rheno': 1,
         'latus': 1,
         'altus': 3,
         'ager': 16,
         'Helvetium': 1,
         'alter': 11,
         'Iura': 1,
         'Sequanos': 10,
         'lacus': 2,
         'Lemanno': 2,
         'provinciam': 11,
         'His': 4,
         'res': 71,
         'minus': 15,
         'lates': 1,
         'vagarentur': 1,
         'facile': 3,
         'finisimus': 3,
         'infero': 11,
         'possum': 65,
         'homo': 21,
         'bello': 1,
         'cupidus': 3,
         'magnus': 47,
         'dolor': 3,
         'adficio': 2,
         'Pro': 1,
         'multitudo': 11,
         'autem': 8,
         'pro': 14,
         'gloria': 1,
         'fortitudo': 1,
         'angustos': 1,
         'habeo': 45,
         'arbitror': 6,
         'longitudo': 1,
         'minius': 3,
         'passus': 11,
         'CCXL': 1,
         'latitudo': 1,
         'CLXXX': 1,
         'pateo': 2,
         'adduco': 12,
         'auctoritas': 4,
         'permo': 1,
         'constituo': 11,
         'proficiscor': 6,
         'comparo': 5,
         'iumentum': 1,
         'carrum': 1,
         'quam': 27,
         'numerus': 12,
         'coemo': 1,
         'sementis': 1,
         'itiner': 12,
         'copia': 23,
         'frumentum': 13,
         'suppeto': 2,
         'proximus': 8,
         'civitatibus': 1,
         'pax': 9,
         'amicitia': 11,
         'confirmo': 5,
         'Ad': 4,
         'conficio': 8,
         'biennium': 1,
         'satis': 10,
         'duco': 10,
         'annus': 7,
         'profectio': 2,
         'deligo': 6,
         'legatio': 4,
         'civitates': 6,
         'suscipio': 4,
         'In': 3,
         'persuadeo': 4,
         'Castico': 1,
         'Catamantaloedis': 1,
         'filius': 4,
         'Sequano': 1,
         'pater': 6,
         'multus': 21,
         'senatus': 8,
         'populus': 43,
         'Romani': 30,
         'amicus': 8,
         'civitate': 6,
         'occupo': 11,
         'ante': 11,
         'item': 4,
         'Dumnorigi': 2,
         'Haeduo': 1,
         'frater': 11,
         'Diviciaci': 4,
         'tempus': 14,
         'principatus': 4,
         'magne': 4,
         'plebs': 3,
         'accipio': 8,
         'idem': 19,
         'conor': 10,
         'filia': 3,
         'matrimonium': 2,
         'do': 20,
         'Perfacile': 1,
         'factus': 1,
         'ille': 18,
         'probo': 1,
         'perficio': 3,
         'civitatis': 5,
         'obtendo': 1,
         'non': 88,
         'dubius': 1,
         'quin': 6,
         'suusquis': 1,
         'exercitus': 27,
         'regna': 1,
         'concilio': 1,
         'Hac': 4,
         'oratio': 8,
         'fides': 6,
         'ius': 12,
         'iuro': 5,
         'per': 33,
         'potens': 1,
         'firmus': 2,
         'spero': 2,
         'indicium': 1,
         'enuntio': 7,
         'Moribus': 1,
         'vinculis': 1,
         'coego': 1,
         'damno': 1,
         'poena': 3,
         'sequor': 7,
         'oportet': 9,
         'ignis': 2,
         'cremoreo': 1,
         'Die': 1,
         'dictio': 1,
         'iudicium': 4,
         'familia': 2,
         'mile': 14,
         'decem': 1,
         'unusquisque': 1,
         'cogo': 5,
         'cliens': 2,
         'obaero': 1,
         'conduco': 1,
         'ne': 31,
         'eripuo': 1,
         'Cum': 8,
         'civitas': 4,
         'ob': 5,
         'incito': 1,
         'armis': 9,
         'exsequor': 1,
         'magistro': 3,
         'morior': 1,
         'neque': 50,
         'suspicium': 1,
         'mors': 3,
         'consciverit': 1,
         'Post': 1,
         'nihil': 6,
         'Ubi': 8,
         'iam': 6,
         'paro': 5,
         'oppida': 4,
         'duodecim': 1,
         'vicos': 2,
         'quadringo': 1,
         'privata': 1,
         'aedificium': 1,
         'incendo': 2,
         'praeter': 4,
         'porto': 1,
         'comburo': 1,
         'domus': 14,
         'reditio': 1,
         'spes': 10,
         'tollo': 4,
         'periculum': 10,
         'subeo': 2,
         'mensus': 1,
         'molitus': 1,
         'cibarius': 1,
         'quisque': 6,
         'effero': 1,
         'iubeo': 7,
         'Persuadent': 1,
         'Rauracis': 1,
         'Tulingis': 1,
         'Latobrigis': 1,
         'utor': 32,
         'consilium': 12,
         'oppis': 2,
         'vicisque': 1,
         'exsumo': 1,
         'Boiosque': 1,
         'incolo': 1,
         'Noricum': 1,
         'transisro': 1,
         'Noreiamque': 1,
         'oppugno': 4,
         'recipio': 10,
         'socius': 6,
         'ascisco': 1,
         'Erant': 1,
         'omnino': 7,
         'duo': 10,
         'itener': 5,
         'angustus': 1,
         'difficilis': 2,
         'Iuram': 2,
         'Rhodanum': 5,
         'vix': 1,
         'singulus': 5,
         'caro': 3,
         'impendo': 1,
         'perpaux': 2,
         'multo': 3,
         'expedio': 3,
         'Helvetiorum': 13,
         'Allobrogum': 4,
         'nuper': 3,
         'paco': 1,
         'Rhodanus': 2,
         'fluo': 2,
         'isqe': 1,
         'nullus': 7,
         'vado': 1,
         'transeo': 13,
         'Extremum': 1,
         'oppidus': 4,
         'proximusque': 1,
         'Genava': 1,
         'Ex': 4,
         'oppido': 5,
         'pons': 3,
         'Allobrogibus': 4,
         'vel': 7,
         'persuatuo': 1,
         'nondum': 2,
         'bonum': 2,
         'Romanum': 6,
         'viderentur': 2,
         'existimo': 12,
         'vi': 1,
         'cogco': 1,
         'eo': 7,
         'patior': 8,
         'Omnus': 1,
         'dies': 34,
         'ripa': 4,
         'Rhodani': 2,
         'conveniant': 1,
         'a.': 1,
         'd.': 1,
         'V.': 1,
         'Kal.': 1,
         'Apr.': 1,
         'L.': 7,
         'A.': 1,
         'Gabinio': 1,
         'Caesari': 12,
         'nuntio': 6,
         'iter': 16,
         'maturo': 2,
         'urbs': 2,
         'Galliam': 13,
         'ultimus': 4,
         'Genavam': 2,
         'pervenit': 4,
         'Provinciae': 1,
         'miles': 15,
         'impero': 9,
         '(': 4,
         'legium': 2,
         ')': 4,
         'rescindo': 1,
         'adventu': 5,
         'certus': 7,
         'legatum': 15,
         'mitto': 25,
         'Nammeius': 1,
         'Verucloetius': 1,
         'princeps': 6,
         'sine': 12,
         'ullus': 4,
         'maleficium': 3,
         'rogo': 5,
         'voluntate': 7,
         'licet': 8,
         'Caesar': 43,
         'memoria': 6,
         'teneo': 11,
         'Cassium': 3,
         'consul': 2,
         'occis': 2,
         'pulgo': 3,
         'sub': 7,
         'iugum': 3,
         'concedo': 4,
         'puto': 7,
         'inimicus': 2,
         'facultas': 5,
         'tempero': 2,
         'iniurius': 16,
         'Tamen': 1,
         'spatium': 5,
         'intercedo': 3,
         'dum': 2,
         'convenirent': 1,
         'respondeo': 8,
         'delibero': 1,
         'sumo': 4,
         'si': 43,
         'quis': 16,
         'vellent': 5,
         'April.': 1,
         'reverterentur': 1,
         'Interea': 1,
         'legio': 17,
         'miletis': 1,
         'provincia': 4,
         'convenerant': 1,
         'influo': 2,
         'Sequanorum': 7,
         'XVIIII': 1,
         'murus': 2,
         'altitudo': 3,
         'pes': 5,
         'sedecim': 1,
         'fossamque': 1,
         'perduco': 1,
         'Eo': 7,
         'opus': 6,
         'perfectus': 2,
         'praesidium': 6,
         'dispono': 1,
         'castella': 1,
         'communis': 5,
         'invito': 2,
         'venit': 2,
         'lego': 7,
         'reverterunt': 2,
         'nego': 1,
         'mos': 1,
         'exemplum': 2,
         'vim': 3,
         'ostendo': 5,
         'deiecto': 1,
         'navibus': 2,
         'iungo': 2,
         'ratio': 6,
         'complur': 2,
         'vadis': 1,
         'paruus': 6,
         'numquam': 2,
         'interdio': 1,
         'saepius': 2,
         'noctus': 1,
         'perrumpo': 1,
         'munitio': 3,
         'concursus': 1,
         'teles': 1,
         'repuldo': 1,
         'conatus': 1,
         'desisto': 4,
         'Relinquebatur': 1,
         'via': 1,
         'invitis': 1,
         'propter': 12,
         'angustia': 3,
         'spons': 2,
         'Dumnorigem': 4,
         'Haeduum': 1,
         'deprecator': 1,
         'impetro': 5,
         'Dumnorix': 2,
         'gratia': 13,
         'largitio': 1,
         'apud': 12,
         'novis': 1,
         'studeo': 1,
         'beneficium': 7,
         'obstriho': 1,
         'volebat': 2,
         'Itaque': 4,
         'Sequani': 3,
         'renuntio': 2,
         'Haeduorum': 10,
         'Santonum': 1,
         'Tolosatium': 1,
         'intellego': 13,
         'bellicosus': 1,
         'maximeque': 1,
         'frumentarius': 4,
         'finitimus': 2,
         'Ob': 2,
         'T.': 2,
         'Labienum': 3,
         'praefico': 1,
         'Italiam': 2,
         'dui': 1,
         'ibi': 4,
         'conscribo': 2,
         'circum': 3,
         'Aquileiam': 1,
         'hiemo': 1,
         'hibernus': 3,
         'educo': 4,
         'Alpes': 1,
         'quinque': 1,
         'Ibi': 3,
         'Ceutrones': 1,
         'Graioceli': 1,
         'Caturiges': 1,
         'superior': 5,
         'Compluribus': 1,
         'puldeo': 3,
         'Ocelus': 1,
         'citer': 3,
         'Vocontiorum': 1,
         'septimus': 2,
         'inde': 2,
         'Segusiavos': 1,
         'extra': 1,
         'primus': 13,
         'traduxo': 1,
         'pervenerant': 1,
         'iderque': 3,
         'populo': 2,
         'Haedui': 8,
         'defendo': 4,
         'Caesarem': 17,
         'auxilium': 12,
         'ita': 12,
         'Romano': 10,
         'mereo': 3,
         'paes': 2,
         'conspectus': 3,
         'vastari': 1,
         'liber': 5,
         '[eorum': 1,
         'servitutem': 2,
         'abduco': 1,
         'expugno': 1,
         'debeo': 3,
         'Ambarri': 1,
         'necessarius': 3,
         'consanguineus': 2,
         'depopulo': 1,
         'hostius': 14,
         'Item': 4,
         'Allobroges': 1,
         'possessio': 3,
         'fuga': 10,
         'demonstro': 1,
         'solum': 5,
         'Quibus': 4,
         'exspecto': 3,
         'statuo': 5,
         'fortuna': 5,
         'socium': 1,
         'consumo': 1,
         'Santonos': 1,
         'pervenirent': 1,
         'Flumen': 1,
         'Arar': 1,
         'incredibilis': 2,
         'lenitas': 1,
         'oculus': 2,
         'uter': 1,
         'iudico': 6,
         'ratus': 1,
         'lintus': 2,
         'explorator': 5,
         'trado': 5,
         'quartus': 4,
         'vero': 3,
         'citra': 1,
         'Ararim': 1,
         'vigilia': 5,
         'castra': 40,
         'profectus': 3,
         'transero': 1,
         'Eos': 1,
         'impedio': 3,
         'inopino': 1,
         'adgredior': 2,
         'concido': 1,
         'mando': 4,
         'silvas': 1,
         'abdo': 2,
         'pagus': 2,
         'Tigurinus': 1,
         'nam': 3,
         'Helvetia': 1,
         'quattuor': 4,
         'Hic': 3,
         'exedo': 2,
         'interfecio': 2,
         'Ita': 5,
         'sive': 5,
         'casus': 1,
         'deus': 2,
         'immortalis': 2,
         'Helvetiae': 1,
         'insignus': 2,
         'calamitas': 5,
         'persolo': 1,
         'publicus': 5,
         'sed': 19,
         'privatas': 1,
         'ultus': 1,
         'socer': 1,
         'Pisonis': 1,
         'avum': 1,
         'Pisonem': 1,
         'Tigurini': 1,
         'Hoc': 3,
         'consequor': 3,
         'Arari': 3,
         'curo': 2,
         'traduco': 7,
         'repentinus': 1,
         'commo': 2,
         'XX': 3,
         'aegerrime': 1,
         'Divico': 2,
         'Cassiano': 1,
         'dux': 2,
         'Caesare': 8,
         'ago': 8,
         'Romanus': 2,
         'iturus': 1,
         'ubi': 4,
         'esse': 5,
         'voluisset': 2,
         'sin': 1,
         'persequor': 1,
         'perseveraret': 1,
         'reminiscor': 1,
         'veteris': 2,
         'incommodus': 1,
         'pristinus': 1,
         'virtutis': 2,
         'Quod': 15,
         'improviso': 1,
         'pag': 1,
         'adoro': 1,
         'ii': 3,
         'fero': 8,
         'magnopere': 2,
         'virtuti': 1,
         'tribuo': 2,
         'despiceo': 1,
         'ego': 3,
         'magis': 4,
         'dolus': 1,
         'insidius': 1,
         'nitor': 1,
         'Quare': 1,
         'committo': 10,
         'constitto': 2,
         'internecio': 1,
         'nomen': 4,
         'prodeo': 3,
         'dubitatio': 1,
         'commemoro': 2,
         'gravius': 5,
         'meritum': 1,
         'accido': 8,
         'aliqui': 4,
         'conscius': 1,
         'cavere': 1,
         'decipio': 1,
         'quare': 4,
         'timeo': 5,
         'contumelia': 1,
         'oblivisci': 1,
         'vellet': 6,
         'num': 1,
         'recentius': 1,
         'tempto': 2,
         'Haeduos': 10,
         'Ambarros': 1,
         'Allobrogas': 1,
         'vexassent': 1,
         'depono': 1,
         '?': 9,
         'victoria': 3,
         'tam': 7,
         'insolenter': 1,
         'glorio': 1,
         'quodque': 2,
         'diu': 5,
         'impeno': 1,
         'toleo': 2,
         'admiror': 1,
         'Consuesse': 1,
         'enim': 3,
         'commutatio': 1,
         'doleo': 1,
         'scelus': 1,
         'ulcio': 1,
         'velint': 3,
         'secundus': 3,
         'interdum': 2,
         'diuturnus': 1,
         'impunitas': 1,
         'tamen': 8,
         'obsis': 17,
         'polliceo': 1,
         'Haeduis': 11,
         'sociisque': 2,
         'consuero': 3,
         'testis': 2,
         'responluo': 1,
         'discedo': 5,
         'Postero': 1,
         'movent': 1,
         'Idem': 1,
         'equitasque': 3,
         'mineus': 4,
         'praemitto': 2,
         'videant': 1,
         'hos': 14,
         'Qui': 5,
         'cupidae': 1,
         'nosus': 4,
         'agmen': 3,
         'insequor': 4,
         'alienus': 1,
         'equitas': 12,
         'paucus': 7,
         'cado': 1,
         'Quo': 1,
         'quingo': 2,
         'equis': 7,
         'tantus': 9,
         'equitus': 8,
         'propulo': 1,
         'audacius': 2,
         'subsisto': 1,
         'agmo': 2,
         'lacesso': 3,
         'coepi': 9,
         'praesentia': 1,
         'hoso': 4,
         'rapina': 1,
         'pabulatio': 1,
         'populatio': 1,
         'circiter': 10,
         'XV': 3,
         'ample': 7,
         'quinis': 1,
         'senis': 1,
         'milus': 5,
         'interseo': 1,
         'Interim': 2,
         'cognodo': 1,
         'publice': 1,
         'pollicio': 4,
         'flagito': 1,
         'Nam': 3,
         'frigus': 1,
         '[': 3,
         'pono': 4,
         'modus': 7,
         'maturus': 2,
         'pabulus': 1,
         'quidem': 8,
         'subvexerat': 1,
         'averterant': 1,
         'nolo': 3,
         'Diem': 1,
         'confero': 9,
         'comporto': 1,
         'adsum': 3,
         'diutius': 3,
         'inster': 2,
         'metior': 2,
         'convocatis': 1,
         'principis': 1,
         'Diviciaco': 3,
         'Lisco': 1,
         'summus': 15,
         'praeo': 3,
         'vergobretum': 1,
         'creo': 1,
         'annuus': 1,
         'vitae': 1,
         'nex': 1,
         'potestas': 5,
         'graviter': 1,
         'accuso': 2,
         'necessario': 2,
         'propinquus': 2,
         'hostis': 5,
         'sublevetur': 1,
         'praesertim': 2,
         'prex': 2,
         'destituo': 1,
         'quer': 1,
         'Tum': 3,
         'demum': 3,
         'Liscus': 1,
         'Caesaris': 7,
         'antea': 3,
         'taceo': 2,
         'propono': 2,
         'valeat': 1,
         'privatim': 1,
         'plus': 4,
         'Hos': 1,
         'seditio': 1,
         'imprus': 1,
         'deterreo': 2,
         'Gallorum': 8,
         'Romanorum': 1,
         'perfero': 2,
         'dubito': 3,
         '[debeant': 1,
         'supero': 6,
         'libertas': 2,
         'ero': 2,
         'Ab': 1,
         'coerceo': 1,
         'Quin': 1,
         'quanto': 1,
         'Lisci': 1,
         'designo': 1,
         'sentio': 2,
         'praesum': 5,
         'iacto': 2,
         'celeriter': 2,
         'concilium': 6,
         'dimitto': 3,
         'Liscum': 1,
         'retineo': 2,
         'Quaerit': 1,
         'solus': 4,
         'conventu': 1,
         'Dicit': 1,
         'libere': 1,
         'secretum': 2,
         'quaero': 7,
         'repereo': 1,
         'vera': 2,
         'audacium': 1,
         'liberalitas': 2,
         'novarum': 1,
         'Complures': 1,
         'portoria': 1,
         'resiquuque': 1,
         'vectigalia': 2,
         'parvo': 1,
         'pretium': 1,
         'redeoueo': 1,
         'contra': 3,
         'audeo': 4,
         'nemo': 5,
         'familiaris': 4,
         'augio': 1,
         'largior': 1,
         'equitatus': 1,
         'sumptus': 1,
         'semper': 1,
         'aliero': 1,
         'largiter': 1,
         'potentia': 2,
         'mater': 3,
         'Biturigibus': 1,
         'illic': 1,
         'conloco': 5,
         'uxor': 2,
         'sorus': 1,
         'nuptus': 1,
         'Favere': 1,
         'cupeo': 1,
         'adfinitas': 1,
         'odi': 1,
         'Romanos': 2,
         'deminuo': 2,
         'Diviciacus': 3,
         'antiquus': 2,
         'honor': 2,
         'restituo': 4,
         'Si': 6,
         'Romanis': 4,
         'venire': 6,
         'despero': 4,
         'Reperiebat': 1,
         'equester': 2,
         'adversum': 2,
         'Dumnorige': 2,
         'perterro': 5,
         'cognosco': 12,
         'suspicio': 3,
         'accedo': 3,
         'iniussus': 1,
         'inscio': 1,
         'magistratus': 1,
         'animadverteret': 1,
         'civitatem': 3,
         'animadvertere': 1,
         'repugno': 1,
         'studium': 1,
         'voluntatem': 2,
         'egregius': 2,
         'iustitia': 1,
         'temperantia': 1,
         'cognoverat': 1,
         'supplicium': 3,
         'offendo': 1,
         'verebatur': 1,
         'prius': 4,
         'quisquam': 3,
         'Diviciacum': 2,
         'vocari': 1,
         'interpretus': 1,
         'remoueo': 3,
         'C.': 6,
         'Valerium': 2,
         'Troucillum': 1,
         'conloquor': 2,
         'simul': 1,
         'commonefacio': 1,
         '[Gallorum': 1,
         'separatim': 2,
         'Petit': 1,
         'hortor': 1,
         'offensio': 1,
         'lacrima': 2,
         'compleo': 2,
         'obsecro': 1,
         'scio': 4,
         'nec': 2,
         'quimquam': 1,
         'domeo': 1,
         'adulescentia': 1,
         'credo': 1,
         'nervis': 1,
         'minuo': 1,
         'paene': 1,
         'pernicies': 1,
         'Sese': 1,
         'amor': 1,
         'fraternus': 2,
         'existimatio': 1,
         'vulgi': 1,
         'commoveri': 2,
         'averterentur': 1,
         'Haec': 5,
         'verbis': 2,
         'fleo': 1,
         'peto': 10,
         ...})
In [93]:
caesar_word_counts['Ariovistus']
Out [93]:
20
In [76]:
caesar_word_counts['Ariovistum']
Out [76]:
10

The above two lines show that the lemmatizer does not work for proper names. We'll have to search the text for every grammatical case

In [84]:
# show me how many times Ariovistus is named in this text, for every case of the word "Ariovistus", namely: nominative, vocative, accusative, genative, dative, ablative


nom = caesar_word_counts['Ariovistus']
voc = caesar_word_counts['Arioviste']
acc = caesar_word_counts['Ariovistum']
gen = caesar_word_counts['Ariovisti']
abl = caesar_word_counts['Ariovisto'] # same as dative case

print(nom + acc + voc + gen + abl)
42

Book 2

Let's do the same processing on Book 2, simplifying the code as we go. We will choose another target, the Druid Diviciacus

In [100]:
fo.close()
with open("gall2.txt") as fo:
    caesar_book2 = fo.read()

cltk_doc2 = cltk_nlp.analyze(text=caesar_book2)
In [113]:
caesar_word_counts = Counter(cltk_doc2.tokens)
nom = caesar_word_counts['Diviciacus']
voc = caesar_word_counts['Diviciace']
acc = caesar_word_counts['Diviciacum']
gen = caesar_word_counts['Diviciaci']
abl = caesar_word_counts['Diviciaco'] # same as dative case
print(nom + acc + voc + gen + abl)
5

Book 3

Viridovix, the Gallic Chieftan

In [18]:
fo.close()
with open("gall3.txt") as fo:
    caesar_book3 = fo.read()

cltk_doc3 = cltk_nlp.analyze(text=caesar_book3)
In [19]:
caesar_word_counts = Counter(cltk_doc3.tokens)

nom = caesar_word_counts['Viridovix']
# voc = caesar_word_counts['Viridovix'] # same as nominative
acc = caesar_word_counts['Viridovigem']
gen = caesar_word_counts['Viridovigis']
dat = caesar_word_counts['Viridovigi']
abl = caesar_word_counts['Viridovige']
print(nom + acc + voc + gen + abl)
5

Book 4

Ariovistus mentioned again, but just one time. On to Book 5

Book 5

The Belgic King and Chieftan Ambiorix

In [15]:
fo.close()
with open("gall5.txt") as fo:
    caesar_book5 = fo.read()

cltk_doc5 = cltk_nlp.analyze(text=caesar_book5)
In [17]:
caesar_word_counts = Counter(cltk_doc5.tokens)

nom = caesar_word_counts['Ambiorix']
# voc = caesar_word_counts['Ambiorix'] # same as nominative
acc = caesar_word_counts['Ambiorigem']
gen = caesar_word_counts['Ambiorigis']
dat = caesar_word_counts['Ambiorigi']
abl = caesar_word_counts['Ambiorige']
print(nom + acc + voc + gen + abl)
20

Book 6

Ambiorix, once more

In [20]:
fo.close()
with open("gall6.txt") as fo:
    caesar_book6 = fo.read()

cltk_doc6 = cltk_nlp.analyze(text=caesar_book6)
In [21]:
caesar_word_counts = Counter(cltk_doc6.tokens)

nom = caesar_word_counts['Ambiorix']
# voc = caesar_word_counts['Ambiorix'] # same as nominative
acc = caesar_word_counts['Ambiorigem']
gen = caesar_word_counts['Ambiorigis']
dat = caesar_word_counts['Ambiorigi']
abl = caesar_word_counts['Ambiorige']
print(nom + acc + voc + gen + abl)
18

Book 7

Vercingetorix, King and Chieftan of the Arverni and leader of the unified Gallic revolt against the Romans. Of all the antagonists, he is mentioned most by Caesar.

In [24]:
fo.close()
with open("gall7.txt") as fo:
    caesar_book7 = fo.read()

cltk_doc7 = cltk_nlp.analyze(text=caesar_book7)
In [26]:
caesar_word_counts = Counter(cltk_doc7.tokens)

nom = caesar_word_counts['Vercingetorix']
# voc = caesar_word_counts['Vercingetorix'] # same as nominative
acc = caesar_word_counts['Vercingetorigem']
gen = caesar_word_counts['Vercingetorigis']
dat = caesar_word_counts['Vercingetorigi']
abl = caesar_word_counts['Vercingetorige']
print(nom + acc + voc + gen + abl)
46

Results

For these seven books of The Gallic Wars we knew ahead of time who were the main foes Caesar mentions in each book. The task has been to count the number of mentions in each text and to infer their relative importance in the resistance to the Roman campaigns. The quantitative results we arrived at here could also have been found using the search function of a text editor. But the methods provided by the Classical Language Toolkit are appropriate for this text because they take into account the morphology and syntax of the language. Indeed, a long text such as a novel might not easily be handled by a text editor, and a more powerful set of instruments for natural language processing is often required.