<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://kylepjohnson.net/feed.xml" rel="self" type="application/atom+xml" /><link href="https://kylepjohnson.net/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-07-13T01:37:03+00:00</updated><id>https://kylepjohnson.net/feed.xml</id><title type="html">blank</title><subtitle>Personal website of Kyle P. Johnson, PhD
</subtitle><entry><title type="html">Presentation at Digital Classicist Berlin</title><link href="https://kylepjohnson.net/blog/2021/12/14/presentation-digital-classics-berlin" rel="alternate" type="text/html" title="Presentation at Digital Classicist Berlin" /><published>2021-12-14T21:00:00+00:00</published><updated>2021-12-14T21:00:00+00:00</updated><id>https://kylepjohnson.net/blog/2021/12/14/presentation-digital-classics-berlin</id><content type="html" xml:base="https://kylepjohnson.net/blog/2021/12/14/presentation-digital-classics-berlin"><![CDATA[<p><em>Cross-posted from the <a href="http://cltk.org/blog/">CLTK blog</a></em></p>

<p>Three of us – Kyle Johnson, Clément Besnier, and Todd Cook – presented to the <a href="https://www.berliner-antike-kolleg.org/transfer/termine/2021-2022_digital_classicist.html">Digital Classicist Berlin</a> program at the Berlin–Brandenburgischen Akademie der Wissenschaften.</p>

<ul>
  <li><a href="http://cltk.org/assets/cltk-pres-digital-classics-berlin-brandenburg.pdf">Kyle’s slides</a> on the CLTK, generally</li>
  <li><a href="https://github.com/clemsciences/cltk-2021-berlin-code/blob/main/cltk_discovery_of_america.ipynb">Clément’s notebook</a> on making a custom Process and examples using Old Norse</li>
  <li><a href="https://docs.google.com/presentation/d/e/2PACX-1vQEK5MC9uS4SEvkaD9viCsqsEDhTEOHwFg8xssZul8u9qSe3qiQ6RQv4Lsx0vWE62gpnpMnsAPeFChS/pub?start=true&amp;loop=false&amp;delayms=15000&amp;slide=id.p">Todd’s slides</a> on MLOps and large language models</li>
</ul>]]></content><author><name>Kyle P. Johnson</name></author><category term="blog" /><summary type="html"><![CDATA[Cross-posted from the CLTK blog]]></summary></entry><entry><title type="html">CLTK v. 1.0 and ACL Publication</title><link href="https://kylepjohnson.net/blog/2021/09/22/cltk-v1-acl-paper-published" rel="alternate" type="text/html" title="CLTK v. 1.0 and ACL Publication" /><published>2021-09-22T21:00:00+00:00</published><updated>2021-09-22T21:00:00+00:00</updated><id>https://kylepjohnson.net/blog/2021/09/22/cltk-v1-acl-paper-published</id><content type="html" xml:base="https://kylepjohnson.net/blog/2021/09/22/cltk-v1-acl-paper-published"><![CDATA[<p><em>Cross-posted from the <a href="http://cltk.org/blog/">CLTK blog</a></em></p>

<p>Last month, the annual ACL conference published the CLTK’s de facto “white paper” (<a href="https://aclanthology.org/2021.acl-demo.3/">“The Classical Language Toolkit: An NLP Framework for Pre-Modern Languages”</a>).</p>

<p>Some time prior to this, we also officially promoted our version 1.0 to “production”.</p>]]></content><author><name>Kyle P. Johnson</name></author><category term="blog" /><summary type="html"><![CDATA[Cross-posted from the CLTK blog]]></summary></entry><entry><title type="html">Announcing ‘alpha’ release of CLTK v. 1.0</title><link href="https://kylepjohnson.net/blog/2020/07/05/announcing-alpha-release-v1" rel="alternate" type="text/html" title="Announcing ‘alpha’ release of CLTK v. 1.0" /><published>2020-07-05T21:00:00+00:00</published><updated>2020-07-05T21:00:00+00:00</updated><id>https://kylepjohnson.net/blog/2020/07/05/announcing-alpha-release-v1</id><content type="html" xml:base="https://kylepjohnson.net/blog/2020/07/05/announcing-alpha-release-v1"><![CDATA[<p><em>Cross-posted from <a href="http://cltk.org/blog/2020/07/05/announcing-alpha-release-v1.html">CLTK blog</a></em></p>

<p>The core maintainers are pleased to announce the first pre-release of the CLTK’s version 1.0. More information will follow, but at the highest level the guiding principles have been (a) to add a single pre-configured interface and (b) to fully rationalize software’s architecture for adding new languages with a minimum of friction.</p>

<p>Preferably in a new virtual environment, in either Python 3.7 or 3.8, pull the latest “alpha” with:</p>

<blockquote>
  <p>$ pip install –pre cltk</p>
</blockquote>

<p>The docs should be enough to begin stress-testing the new code:</p>

<ul>
  <li>Docs: <a href="https://alpha.cltk.org">https://alpha.cltk.org</a></li>
  <li>Source: <a href="https://github.com/cltk/cltkv1">https://github.com/cltk/cltkv1</a> (Note: Not our main repo!)</li>
</ul>

<p>For now, please open issues in this new development repo. In the coming weeks, we will merge the two Git trees together.</p>]]></content><author><name>Kyle P. Johnson</name></author><category term="blog" /><summary type="html"><![CDATA[Cross-posted from CLTK blog]]></summary></entry><entry><title type="html">On under-resourced languages and the CLTK</title><link href="https://kylepjohnson.net/blog/2018/12/30/under-resourced-languages-cltk" rel="alternate" type="text/html" title="On under-resourced languages and the CLTK" /><published>2018-12-30T21:00:00+00:00</published><updated>2018-12-30T21:00:00+00:00</updated><id>https://kylepjohnson.net/blog/2018/12/30/under-resourced-languages-cltk</id><content type="html" xml:base="https://kylepjohnson.net/blog/2018/12/30/under-resourced-languages-cltk"><![CDATA[<p><em>The following entry is <a href="http://cltk.org/blog/2018/12/30/under-resourced-languages-cltk.html">cross-posted from the CLTK blog</a>.</em></p>

<p>The CLTK has as a central goal to provide complete NLP coverage of all pre-modern languages. In practice, this ambitious goal needs to be tempered by availability of language resources, digital and human. With some frequency, especially around the time of Google Summer of Code application, we are approached by potential contributors who hope to pitch in by adding NLP tools for a given language. Over the past six years, those of us centrally involved in the project have learned a great deal about what characteristics distinguish a successful from unsuccessful project. I’ll describe these characteristics in some detail below, but to summarize, a successful “add-a-language” project for the CLTK depends the presence already-available, free digitized data.</p>

<p>Languages which lack such digitized data, I’ll call “under-resourced.” To help explain, allow me to borrow <a href="http://www.elra.info/en/about/what-language-resource/">a definition of a “language resource”</a>:<sup><a href="#myfootnote1">1</a></sup></p>

<blockquote>
  <p>The term <em>Language Resource</em> refers to a set of speech or language data and descriptions in machine readable form, used for building, improving or evaluating natural language … for language studies, electronic publishing, international transactions, subject-area specialists and end users. Examples of Language Resources are written and spoken corpora, computational lexica, terminology databases, speech collection, etc.</p>
</blockquote>

<p>For the CLTK, language resources normally take the form of static data sets, such as text corpora (annotated or plaintext), <a href="https://en.wikipedia.org/wiki/Treebank">treebanks</a>, and lexica (dictionaries of various sort). Resources also take the form of algorithms, which are usually rules-based and optionally rely upon data sets. For an example of the former sort of algorithm, see <a href="https://github.com/cltk/cltk/blob/9deebf3ff050ab6c12c0c5ceb953bc8ecce21ed0/cltk/stem/latin/stem.py">Luke Hollis’s stemmer for Latin</a>, which is itself a Python-language implementation of rules defined by previous peer-reviewed scholarship (Schinke et al., 1996). For an example of rules-plus-data, <a href="https://github.com/cltk/cltk/blob/9b9cdb42dcc1c707ab3db3ef8214837bb7c262b5/cltk/prosody/latin/Syllabifier.py#L36">Todd Cook’s Latin syllabifier</a> first defines a variety of character types in <a href="https://github.com/cltk/cltk/blob/9b9cdb42dcc1c707ab3db3ef8214837bb7c262b5/cltk/prosody/latin/ScansionConstants.py">ScansionConstants.py</a> and then uses these in <code class="language-plaintext highlighter-rouge">Syllabifier.syllabify()</code>. Examples of well-resourced languages, in both data and algorithm, include Ancient Greek and Latin, for which not coincidentally the CLTK has excellent coverage (look for <a href="https://github.com/cltk?utf8=%E2%9C%93&amp;q=greek&amp;type=&amp;language=">Greek</a> or <a href="https://github.com/cltk?utf8=%E2%9C%93&amp;q=latin&amp;type=&amp;language=">Latin</a> data sets on GitHub, to get an idea).</p>

<p>The CLTK is an NLP project, and it eschews ventures outside of this mission. Simply put, this means that the CLTK is neither a data annotation nor a (non-technical) user-facing project. In reference to the classic <a href="https://en.wikipedia.org/wiki/Multitier_architecture">three-tier software architecture</a>, the CLTK is exclusively restricted to the middle <em>presentation tier</em>, relying upon the <em>data storage tier</em> as upstream dependencies and adopted downstream by the <em>presentation tier</em>. The CLTK has a vested interest in the health of data storage and presentation tiers, however our project’s core NLP task, to write NLP algorithms by leveraging already available data, is formidable enough. To satisfy the needs of downstream makers of applications, we write what we hope are sensible and well documented APIs.</p>

<p>To illustrate briefly the challenges of even relatively simple data creation, I am reminded of several students whose natives tongues were, respectively, Telugu and Kannada. They approached with proposals to do NLP in their languages, and when I pointed out they’d need data, each came up with the idea of doing OCR to obtain plaintext corpora. After all, plenty of digitized book images could be found online. However, preliminary experiments demonstrated that OCR for these particular non-Latin characters was of very low accuracy. Simply making an OCR model would have constituted a summer project itself (one outside our bounds, nevertheless). The creation of annotated texts is a laborious in the extreme, requiring equal degrees of passion and technical expertise.</p>

<p>Having explained what a language resources are and why they are so important to the CLTK, I will next explain the states in which under-resourced (dead) languages exist and how one can decide whether a given language is under-resourced. Languages generally fail to meet the minimum bar of “resourced” due to one or more of the following attributes:</p>
<ol>
  <li>resources are not digitized;</li>
  <li>resources are only available under non-free license;</li>
  <li>resources are available but do not amount to a “critical mass” around which serious NLP tooling may be developed.</li>
</ol>

<p>First, simply enough, if data has not been digitized, then it is not available for computational processing. As mentioned above, book page images are quite a distance from even plaintext files.</p>

<p>Second, non-free data poses a significant problem. My use of “free” here corresponds generally to that expounded by Richard Stallman as something more particular than no-cost and open source:</p>

<blockquote>
  <p>When we call software “free,” we mean that it respects the users’ essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.” (<a href="https://www.gnu.org/philosophy/open-source-misses-the-point.html">“Why Open Source misses the point of Free Software”</a>)</p>
</blockquote>

<p>Intended to support rigorous quantitative scholarship, users of the CLTK simply must have the ability to manipulate and redistribute data used to create results. Contrary to the understanding of many humanists I have met, “open access” and “open source” resources that have proprietary licenses are unstable foundations for projects like ours, the legacy of which (we hope) will be measured in decades, not years. It is undeniably practical for a scholar to quickly publish an article which uses proprietary data or software, however his results will likely not be reproducible, frozen in time, and lost to history.</p>

<p>Third, The line between a resourced and under-resourced language is not always clear-cut. For example, there could be annotations available, however they be of a rather small in number (the case with <a href="https://github.com/cltk/tibetan_pos_tdc">Tibetan POS</a>); or some data sets be very robust for some tasks (e.g., a lexicon and word-lookup) however be completely lacking treebanks (Pali); or in the absence of any digitized data, certain within-reach algorithms may be written. For such in-between languages, if a potential contributor will first do diligent research on data sets, project mentors will be delighted to discuss algorithmic possibilities.</p>

<p>Is there some limited data creation that could fall within scope of the CLTK? We have had some success, for example, in generating stopword lists either according to specific algorithms minimizing manual curation (e.g., run tf-idf on a corpus and removing nouns) or with very narrow scope (e.g., writing every possible inflection of a definite article). I don’t want to preclude other ideas, so I would generalize that this issue may be evaluated on a case-by-case basis.</p>

<p>All the above is intentionally discouraging of those who might want to disembark on an ill-fated proposal to add new language support to the CLTK. On the flip side, we ought to highlight that there are several shining examples of languages I might consider well-resourced and not currently covered by the CLTK. Those are, in no particular order: Hebrew, Arabic, Sanskrit, Chinese, and Old English.<sup><a href="#myfootnote2">2</a></sup> (There are likely others, too.) To conclude, I encourage those who would like to work with a mentor from our team, to first consider and have preliminary answers to the following questions:</p>
<ol>
  <li>What free data sets are available? If any non-free or ambiguously licensed language resources, are they so important that we would need to use them?</li>
  <li>What NLP algorithms can I write with this data?</li>
  <li>What free NLP algorithms have already been written? Do I have the skills, approximately, to re-implement them?</li>
  <li>What data am I missing and is it reasonable to create this data within the project? Define very precise scoping and make an effort estimate.</li>
  <li>Do you have the language skills to validate your own research? If not, have you identified another (say, a professor) who would be able to help? Please remember that the CLTK is exclusively interested in the <em>pre-modern</em> form of a language; so for example even though Hindi may be considered an “classical” language, its form as spoken today differs greatly (or so I am told) from how it was written 1,000 years ago.</li>
  <li>How do you rate your skills in programming in Python, machine learning, and NLP? We have and do work with various types of specialists (some more human language, some more computer), however knowing your particular background helps to pair you with the right mentor.</li>
</ol>

<p>With these questions answered, even if not perfectly, the core CLTK will be able to respond with concrete advice, criticism, and recommendations to further develop your proposal.</p>

<p><br /></p>

<p><a name="myfootnote1">1</a>: From the Under-resourced Languages group of the European Language Resources Association (ELRA).</p>

<p><a name="myfootnote2">2</a>: Old and Middle English have good footing, due to the major pre-modern Germanic contributions by Eleftheria Chatziargyriou and Clément Besnier, however relative to the huge amounts of source data, lots of valuable work remains.</p>]]></content><author><name>Kyle P. Johnson</name></author><category term="blog" /><summary type="html"><![CDATA[The following entry is cross-posted from the CLTK blog.]]></summary></entry><entry><title type="html">My “Affable Guide to Leaving Classics”</title><link href="https://kylepjohnson.net/blog/2017/09/05/affable-guide-leaving-classics" rel="alternate" type="text/html" title="My “Affable Guide to Leaving Classics”" /><published>2017-09-05T00:00:00+00:00</published><updated>2017-09-05T00:00:00+00:00</updated><id>https://kylepjohnson.net/blog/2017/09/05/affable-guide-leaving-classics</id><content type="html" xml:base="https://kylepjohnson.net/blog/2017/09/05/affable-guide-leaving-classics"><![CDATA[<p>Off and on, over the past year, I have been slowly working on this essay, <a target="_blank" href="/assets/kyle-johnson-affable-guide-leaving-classics.pdf">“An Affable Guide to Leaving Classics”</a>, which records my thoughts about how to move out of Classics and succeed in the non–academic marketplace.</p>

<p>I’d like to thank my friends who have read it for me and provided valuable comments.</p>

<p>While I do not plan on keeping this up-to-date, if you have feedback for me, I would appreciate hearing your thoughts.</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Off and on, over the past year, I have been slowly working on this essay, “An Affable Guide to Leaving Classics”, which records my thoughts about how to move out of Classics and succeed in the non–academic marketplace.]]></summary></entry><entry><title type="html">Two recent NLP talks at Harvard</title><link href="https://kylepjohnson.net/blog/2017/01/31/two-recent-nlp-talks-at-harvard" rel="alternate" type="text/html" title="Two recent NLP talks at Harvard" /><published>2017-01-31T20:07:00+00:00</published><updated>2017-01-31T20:07:00+00:00</updated><id>https://kylepjohnson.net/blog/2017/01/31/two-recent-nlp-talks-at-harvard</id><content type="html" xml:base="https://kylepjohnson.net/blog/2017/01/31/two-recent-nlp-talks-at-harvard"><![CDATA[<p>I’ve been remiss in posting here my lectures on the CLTK and related research over the past year. Since some of these repeat content, perhaps I should only post them when the materials reach a milestone of some sort. Here are the materials for two talks I gave late last year at Harvard:</p>

<ul>
  <li><a href="https://github.com/kylepjohnson/notebooks/tree/master/public_talks/2016_10_26_harvard">https://github.com/kylepjohnson/notebooks/tree/master/public_talks/2016_10_26_harvard</a></li>
  <li><a href="https://github.com/kylepjohnson/notebooks/tree/master/public_talks/2016_12_08_harvard_classics">https://github.com/kylepjohnson/notebooks/tree/master/public_talks/2016_12_08_harvard_classics</a></li>
</ul>

<p>The first, to the Arts and Humanities Research and Computing group, introduced the project, the in-development frontend (which was discussed by Luke Hollis), and some of my own personal research into genres of the Ancient Greek canon. The question guiding me was: Can AI classify texts better than the ancients did themselves? An intentionally naive question, however the research allows us to dissect the relative consistency of various genres in terms of lexical patterns, morphology, and syntax. I have always been concerned with handy-wavy definitions of genres, and the corresponding difficulty of quantitatively defining them. My hope is that this research will help to ground some such considerations of genre in early European literature.</p>

<p>The second was not so much a lecture as a hands-on introduction to using the CLTK. If you are looking for a comfortable introduction to NLP and the project, this might be the best place to start.</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[I’ve been remiss in posting here my lectures on the CLTK and related research over the past year. Since some of these repeat content, perhaps I should only post them when the materials reach a milestone of some sort. Here are the materials for two talks I gave late last year at Harvard:]]></summary></entry><entry><title type="html">CLTK accepted to Google Summer of Code</title><link href="https://kylepjohnson.net/blog/2016/03/30/cltk-accepted-google-summer-code" rel="alternate" type="text/html" title="CLTK accepted to Google Summer of Code" /><published>2016-03-30T20:54:00+00:00</published><updated>2016-03-30T20:54:00+00:00</updated><id>https://kylepjohnson.net/blog/2016/03/30/cltk-accepted-google-summer-code</id><content type="html" xml:base="https://kylepjohnson.net/blog/2016/03/30/cltk-accepted-google-summer-code"><![CDATA[<p>A few weeks back the Classical Language Toolkit was accepted to Google Summer of Code. Needless to say this is terrific news for the project! Here’s <a href="http://cltk.org/blog/2016/02/29/cltk-participating-google-summer-code.html">the organization’s official announcement</a>.</p>

<p>Since the announcement, while we’ve been in the student application period, interest in the project has skyrocketed, already with dozens of commits and hundreds of emails. The CLTK website, led by Luke Hollis, has seen tremendous growth already after only these two weeks. As of this moment, our stars on GitHub have doubled, watchers tripled, and – most importantly IMO – six times the forks!</p>

<p>There’s been a bit of publicity about our funding opportunities in the Classics world. Among this has been an interview of me and Luke in the newsletter of Harvard’s Center for Hellenic Studies, <a href="http://kleos.chs.harvard.edu/?p=5836">“Q&amp;A with Kyle P. Johnson and Luke Hollis of the Classical Language Toolkit”</a>.</p>

<p>Much more to come!</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[A few weeks back the Classical Language Toolkit was accepted to Google Summer of Code. Needless to say this is terrific news for the project! Here’s the organization’s official announcement.]]></summary></entry><entry><title type="html">NLP lecture to NYC Ascent post-docs</title><link href="https://kylepjohnson.net/blog/2016/02/28/nlp-lecture-nyc-ascent-post-docs" rel="alternate" type="text/html" title="NLP lecture to NYC Ascent post-docs" /><published>2016-02-28T21:39:00+00:00</published><updated>2016-02-28T21:39:00+00:00</updated><id>https://kylepjohnson.net/blog/2016/02/28/nlp-lecture-nyc-ascent-post-docs</id><content type="html" xml:base="https://kylepjohnson.net/blog/2016/02/28/nlp-lecture-nyc-ascent-post-docs"><![CDATA[<p>Yesterday I had the pleasure to lecture, along with my colleagues Cesar Koirala and Ken Bame, about natural language processing and machine learning. We focused on three areas, with particular respect paid to natural language data: obtaining and processing, feature extraction, and machine learning.</p>

<p>The group to whom we lectured, <a href="http://www.nycascent.org/">Ascent fellows</a>, was interesting, being made up of science PhDs from Columbia, NYU, CUNY, and Cornell. The purpose of this group, by my understanding, is to give students of the hard sciences the tools they need – business, techincal, social – to succeed in the job market. This kind of grooming is very important, and equally rare, for those acclimated to culture of academia. As “digital humanities” (or whatever it will morph into) matures, a program like Ascent’s could prove even more valuable for the success of post–PhD humanists. Since Ascent is funded by no less than the NSF, good arguments could be made for leading humanist–funding groups to sponsor something similar.</p>

<p><a href="https://github.com/kylepjohnson/lecture_nyc_ascent">Our GitHub notebook is available</a>. The task we tacked was the prediction (binary classification, to be precise) of “viral” tweets. We made a collection of unpopular tweets (those with less the 10 RTs) and popular (over 500). Then, using nothing more than the text of the tweet, we explored (a) how many features we could extract and (b) how well various algorthms performed. To our pleasant surprise, using only a tweet’s text, we came to an 84% precision and 85% recall (random forest and decision tree did equally well). Results would surely be improved were we to leverage two valuable feature sets – bag of words and topic modelling – however processing time on our local computers was too long for purposes of the class. Nevertheless, BOW and topic modeling code is included in the Jupyter notebooks should anyone want to give it a try. (I’ll note that, from casual review of the data, unpopular tweets have higher occurences of profanity. For this reason, I think BOW especially would raise precision.)</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Yesterday I had the pleasure to lecture, along with my colleagues Cesar Koirala and Ken Bame, about natural language processing and machine learning. We focused on three areas, with particular respect paid to natural language data: obtaining and processing, feature extraction, and machine learning.]]></summary></entry><entry><title type="html">Two recent CLTK lectures</title><link href="https://kylepjohnson.net/blog/2016/02/19/two-recent-cltk-lectures" rel="alternate" type="text/html" title="Two recent CLTK lectures" /><published>2016-02-19T21:42:00+00:00</published><updated>2016-02-19T21:42:00+00:00</updated><id>https://kylepjohnson.net/blog/2016/02/19/two-recent-cltk-lectures</id><content type="html" xml:base="https://kylepjohnson.net/blog/2016/02/19/two-recent-cltk-lectures"><![CDATA[<p>I have given two lectures on the CLTK over the past few months and should post them before too much time as gone by.</p>

<p>The first lecture was last November, when I gave a guest lecture, to an NYU graduate class of Peter Meineck, on an introduction to NLP and the CLTK. This was a lot of fun, as I had time to dialog with the class and explore some texts (some plays of Aeschylus) together. The <a href="https://github.com/kylepjohnson/ipython/tree/master/public_talks/2015_11_15_nyu">Jupyter notebooks I prepared are on GitHub</a>. Here’s the lecture’s slide deck, which might function as an informal introduction for newcomers.</p>

<iframe src="https://docs.google.com/presentation/d/1P9xXWD1zmq7PPXro8ssJyDESaeftblKI8ku42nZVomQ/embed?start=false&amp;loop=false&amp;delayms=3000" frameborder="0" width="802" height="480" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

<p>A second lecture, which I gave last week, was a much briefer, 5–minute “lightning talk” to the <a href="http://www.meetup.com/sfpython/events/228213876/">San Francisco Python Meetup Group</a>. The subject of this talk was narrow, being about problems encountered when working with linguistic corpora. The core difficulty pertained to the sharing of experiments and reproduction of results. Too often, folks working in NLP settle for hard–to–get, poorly documented, and un–versioned data sets. As I worked with others’ corpora and created my own, I came to understand poor data set management to be a significant problem, not only for digital Classics but NLP in general. In a nutshell, the CLTK’s solution to this problem is to leverage the capacities of Git and GitHub, that data sets can be, among other things, precisely versioned and easily updated by end users.</p>

<iframe src="https://docs.google.com/presentation/d/1t8r_cyaIV0llv7OpEuPF0l-0ZYwwaRI-dX67qCikc0E/embed?start=false&amp;loop=false&amp;delayms=3000" frameborder="0" width="802" height="480" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[I have given two lectures on the CLTK over the past few months and should post them before too much time as gone by.]]></summary></entry><entry><title type="html">10,000 most frequent lemmata in Greek and Latin canons</title><link href="https://kylepjohnson.net/blog/2015/05/16/top-greek-latin-words-lemma" rel="alternate" type="text/html" title="10,000 most frequent lemmata in Greek and Latin canons" /><published>2015-05-16T23:52:00+00:00</published><updated>2015-05-16T23:52:00+00:00</updated><id>https://kylepjohnson.net/blog/2015/05/16/top-greek-latin-words-lemma</id><content type="html" xml:base="https://kylepjohnson.net/blog/2015/05/16/top-greek-latin-words-lemma"><![CDATA[<p>This is a followup to a previous post, which got more attention than I anticipated, of <a href="/blog/2015/04/23/most-common-greek-latin-words.html">10,000 most frequent words in Greek and Latin canon</a>.</p>

<p>The difference with these latest versions is that the inflected occurances were lemmatized, then counted. This was made possible by the CLTK’s latest release, which now offers good lemmatization for Greek and Latin. You can see the lemmatizer in action in <a href="https://github.com/kylepjohnson/ipython_notebooks/blob/master/10%2C000%20most%20common%20words%2C%20by%20lemma%2C%20Greek%20and%20Latin.ipynb">the notebook which generated the following two files</a>.</p>

<p><em>Greek</em>: <a href="/assets/greek_lemma_most_common.txt">The 10,000 most common Greek words, grouped by lemma</a> in the Classical Greek canon.</p>

<p><em>Latin</em>: <a href="/assets/latin_lemma_most_common.txt">The 10,000 most common Latin words, grouped by lemma</a> in the Classical Latin canon.</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[This is a followup to a previous post, which got more attention than I anticipated, of 10,000 most frequent words in Greek and Latin canon.]]></summary></entry></feed>