Skip to content

Instantly share code, notes, and snippets.

@diyclassics
diyclassics / fix-iliad-16-cltk-perseus-json.py
Last active January 27, 2023 21:33
Example for how to fix json content in CLTK Perseus file
import json
from cltkreaders.grc import GreekTesseraeCorpusReader
T = GreekTesseraeCorpusReader()
BOOK = 16
file = f"homer.iliad.part.{BOOK}.tess"
output = dict()
@diyclassics
diyclassics / upbrew.sh
Created November 3, 2022 13:36
Homebrew maintenance script
#!/bin/bash
echo "\nUpdating Homebrew...\n"
brew update
echo "\nUpgrading Homebrew...\n"
brew upgrade
echo "\nCleaning Homebrew...\n"
brew cleanup -s
@diyclassics
diyclassics / omeka-xml-parse.py
Last active August 14, 2022 16:23
Parsing DublinCore XML data exported from Omeka
### Jupyter notebook for this code available at:
### https://github.com/isaw-ga-3024/isaw-ga-3024.github.io/blob/master/burns-patrick-diyclassics/notebooks/Omeka-XML-Parse.ipynb
omeka = """<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://dcaa.hosting.nyu.edu/cms/admin/items/show/2">
<dc:title>Changing the Center of Gravity</dc:title>
<dc:subject>digital humanities</dc:subject>
<dc:creator>Terras, Melissa</dc:creator>
<dc:creator>Crane, Gregory</dc:creator>
@diyclassics
diyclassics / zen-pythonis.txt
Created February 18, 2016 19:38
Latin translation of Peters's "The Zen of Python"
Zen Pythonis
a T. Peters imprimis Anglice scriptum
redditumque Latine a Patricio Ios. Burns:
– Formosum deformi praefertur.
– Directum obliquo praefertur.
– Simplex multiplici praefertur.
– Multiplex contorto praefertur.
– Planum implicato praefertur.
– Rarum denso praefertur.
```python
from pycollatinus import Lemmatiseur
import pprint
tagger = Lemmatiseur()
```
```python
lemmas = tagger.lemmatise_multiple('ne')
lemmas_set = sorted(set([lemma['lemma'] for lemma in lemmas[0]]))
print(lemmas_set)
@diyclassics
diyclassics / updateLastUpdated
Created February 26, 2020 18:09
Google Docs add on to update a "field" on open
/**
* Written by diyclassics
*
* Looks for text in a Google Doc on open in the form "last updated 1/1/2001" and updates
* with the current date; also adds a menu item for manual update.
*/
function onOpen() {
var ui = DocumentApp.getUi();
// Or FormApp or SpreadsheetApp.
@diyclassics
diyclassics / get_perseus_short_defs.gs
Created April 3, 2019 16:35
Get Perseus Short Defs in Google Sheets
function getShortDef(input) {
var array = [];
var url = "http://www.perseus.tufts.edu/hopper/morph?l=" + input;
var page = UrlFetchApp.fetch(url);
var doc = Xml.parse(page, true);
var bodyHtml = doc.html.body.toXmlString();
doc = XmlService.parse(bodyHtml);
var root = doc.getRootElement();
@diyclassics
diyclassics / gist:5f4e7ff7963e255dd44278577ffcbf6e
Last active March 22, 2018 15:31
ll-plaintextcorpus-demo
from cltk.corpus.latin import latinlibrary
from cltk.tokenize.word import WordTokenizer
tokenizer = WordTokenizer('latin')
ll_raw = latinlibrary.raw()
print(ll_raw[:500])
ll_words = latinlibrary.words()
print(ll_words[:100])
import re
GREEK = '\u0300-\u03FF'
GREEK_EXT = '\u1F00-\u1FFF'
# Cicero Att 1.4
# http://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0008%3Abook%3D1%3Aletter%3D1%3Asection%3D4
text = """
sane sum perturbatus cum ipsius Satyri familiaritate tum Domiti, in quo uno maxime ambitio nostra nititur. demonstravi haec Caecilio simul et illud ostendi, si ipse unus cum illo uno contenderet, me ei satis facturum fuisse; nunc in causa universorum creditorum, hominum praesertim amplissimorum, qui sine eo quem Caecilius suo nomine perhiberet facile causam communem sustinerent, aequum esse eum et officio meo consulere et tempori. durius accipere hoc mihi visus est quam vellem et quam homines belli solent, et postea prorsus ab instituta nostra paucorum dierum consuetudine longe refugit.
@diyclassics
diyclassics / get_pleiades_id.py
Last active October 31, 2017 07:59
Get coordinates by Pleiades ID
import json
import urllib.request
def get_pleiades_json(pleiades_id):
# pleiades_id: STR
pleiades_url = "https://raw.githubusercontent.com/ryanfb/pleiades-geojson/gh-pages/geojson/%s.geojson" % pleiades_id
try:
with urllib.request.urlopen(pleiades_url) as url:
pleiades_geojson = json.loads(url.read().decode())
return pleiades_geojson