{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Völsunga saga"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Völsunga saga is available as a text of a corpus provided by [cltk](https://github.com/cltk/old_norse_text_perseus/tree/master/plain_text/V%C3%B6lsunga_saga)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "from cltk.corpus.utils.importer import CorpusImporter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function import_corpus in module cltk.corpus.utils.importer:\n",
      "\n",
      "import_corpus(self, corpus_name, local_path=None, branch='master')\n",
      "    Download a remote or load local corpus into dir ``~/cltk_data``.\n",
      "    TODO: maybe add ``from git import RemoteProgress``\n",
      "    TODO: refactor this, it's getting kinda long\n",
      "    :type corpus_name: str\n",
      "    :param corpus_name: The name of an available corpus.\n",
      "    :param local_path: str\n",
      "    :param local_path: A filepath, required when importing local corpora.\n",
      "    :param branch: What Git branch to clone.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(CorpusImporter.import_corpus)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "old_norse_corpus_importer = CorpusImporter(\"old_norse\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'encoding': 'utf-8',\n",
       "  'name': 'old_norse_text_perseus',\n",
       "  'location': 'remote',\n",
       "  'origin': 'https://github.com/cltk/old_norse_text_perseus.git',\n",
       "  'type': 'text'},\n",
       " {'name': 'old_norse_models_cltk',\n",
       "  'origin': 'https://github.com/cltk/old_norse_models_cltk.git',\n",
       "  'location': 'remote',\n",
       "  'type': 'model'},\n",
       " {'encoding': 'utf-8',\n",
       "  'name': 'old_norse_texts_heimskringla',\n",
       "  'location': 'remote',\n",
       "  'origin': 'https://github.com/cltk/old_norse_texts_heimskringla.git',\n",
       "  'type': 'text'},\n",
       " {'encoding': 'utf-8',\n",
       "  'name': 'old_norse_runic_transcriptions',\n",
       "  'location': 'remote',\n",
       "  'origin': 'https://github.com/cltk/old_norse_runes_corpus.git',\n",
       "  'type': 'text'},\n",
       " {'encoding': 'utf-8',\n",
       "  'name': 'old_norse_dictionary_zoega',\n",
       "  'location': 'remote',\n",
       "  'origin': 'https://github.com/cltk/old_norse_dictionary_zoega.git',\n",
       "  'type': 'dictionary'}]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "old_norse_corpus_importer.all_corpora"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "old_norse_corpus_importer.import_corpus(\"old_norse_text_perseus\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "CLTK_DATA_DIRECTORY = os.path.join(os.getenv(\"HOME\"), \"cltk_data/old_norse/text/old_norse_text_perseus/plain_text/Völsunga_saga/\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "chapters = []\n",
    "l_filenames = os.listdir(CLTK_DATA_DIRECTORY)\n",
    "l_filenames = sorted(l_filenames, key=lambda x: x.split(\"_\")[1].split(\".\")[0])\n",
    "for filename in l_filenames:\n",
    "    with open(os.path.join(CLTK_DATA_DIRECTORY, filename), \"r\") as f:\n",
    "        chapters.append(f.read().split(\". \"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "There are 42 chapters.\n"
     ]
    }
   ],
   "source": [
    "print(f\"There are {len(chapters)} chapters.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['HÉR hefr upp ok segir frá þeim manni, er Sigi ernefndr ok kallaðr, at héti sonr Óðins',\n",
       " 'Annarr maðrer nefndr til sögunnar, er Skaði hét',\n",
       " 'Hann var ríkr okmikill fyrir sér, en þó var Sigi þeira enn ríkari ok ættstærri,at því er menn mæltu í þann tíma',\n",
       " 'Skaði átti þrælþann, er nokkut verðr at geta við söguna',\n",
       " 'Hann hétBreði',\n",
       " 'Hann er fróðr við þat, er hann skyldi at hafast.Hann hafði íþróttir ok atgervi jafnframt hinum, ermeira þóttu verðir, eða umfram nokkura.Þat er at segja eitthvert sinn, at Sigi ferr á dýraveiði,ok með honum þrællinn, ok veiða dýr um daginnallt til aptans',\n",
       " 'En er þeir bera saman veiði sína um aptaninn,þá hafði Breði veitt miklu fleira ok meira en Sigi,en honum líkaði stórilla ok segir, at sik undri, at einnþræll skuli sik yfirbuga í dýraveiði, hleypr því at honumok drepr hann; dysjar síðan líkit í snjófönn',\n",
       " 'Nú ferrhann heim um kveldit ok segir, at Breði hafi riðit fráhonum á skóginn, -- \"ok var hann senn ór augliti mér,ok veit ek ekki til hans.\" Skaði grunar sögn Siga ok getr,at vera munu svik hans ok mun Sigi hafa drepit hann,fær menn til at leita hans, ok lýkr svá leitinni, at þeirfundu hann í skafli einum, ok mælti Skaði, at þannskafl skyldi kalla Breðafönn heðan af, ok hafa mennnú þat eptir síðan ok kalla svá hverja fönn, er mikiler',\n",
       " 'Þá kemr upp, at Sigi hefir drepit þrælinn ok myrðan.Þá kalla þeir hann varg í véum, ok má hann nú eigiheima vera með feðr sínum',\n",
       " 'Óðinn fylgir honum núaf landi brott, svá langa leið, at stóru bar, ok eigi léttihann fyrr en hann kom honum til herskipa',\n",
       " 'Nú tekrSigi at leggjast í hernað með þat lið, er faðir hansfekk honum, áðr þeir skildu, ok varð hann sigrsællí hernaðinum',\n",
       " 'Ok svá kemr hans máli, at hann fekkherjat sér land ok ríki um síðir',\n",
       " 'Ok því næst fekk hannsér göfugt kvánfang, ok gerðist hann ríkr konungr okmikill fyrir sér ok réð fyrir Húnalandi ok er inn mestihermaðr',\n",
       " 'Hann á son við konu sinni, er hét Rerir',\n",
       " 'Hannvex þar upp með feðr sínum ok gerist brátt mikill vextiok gerviligr.']"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chapters[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from cltk.tokenize.word import WordTokenizer\n",
    "old_norse_word_tokenizer = WordTokenizer(\"old_norse\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "tokenized_chapters = []\n",
    "for i, chapter in enumerate(chapters):\n",
    "    tokenized_chapters.append([])\n",
    "    for sentence in chapter:\n",
    "        tokenized_chapters[i].append(old_norse_word_tokenizer.tokenize(sentence))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['HÉR',\n",
       "  'hefr',\n",
       "  'upp',\n",
       "  'ok',\n",
       "  'segir',\n",
       "  'frá',\n",
       "  'þeim',\n",
       "  'manni',\n",
       "  ',',\n",
       "  'er',\n",
       "  'Sigi',\n",
       "  'ernefndr',\n",
       "  'ok',\n",
       "  'kallaðr',\n",
       "  ',',\n",
       "  'at',\n",
       "  'héti',\n",
       "  'sonr',\n",
       "  'Óðins'],\n",
       " ['Annarr', 'maðrer', 'nefndr', 'til', 'sögunnar', ',', 'er', 'Skaði', 'hét'],\n",
       " ['Hann',\n",
       "  'var',\n",
       "  'ríkr',\n",
       "  'okmikill',\n",
       "  'fyrir',\n",
       "  'sér',\n",
       "  ',',\n",
       "  'en',\n",
       "  'þó',\n",
       "  'var',\n",
       "  'Sigi',\n",
       "  'þeira',\n",
       "  'enn',\n",
       "  'ríkari',\n",
       "  'ok',\n",
       "  'ættstærri',\n",
       "  ',at',\n",
       "  'því',\n",
       "  'er',\n",
       "  'menn',\n",
       "  'mæltu',\n",
       "  'í',\n",
       "  'þann',\n",
       "  'tíma'],\n",
       " ['Skaði',\n",
       "  'átti',\n",
       "  'þrælþann',\n",
       "  ',',\n",
       "  'er',\n",
       "  'nokkut',\n",
       "  'verðr',\n",
       "  'at',\n",
       "  'geta',\n",
       "  'við',\n",
       "  'söguna'],\n",
       " ['Hann', 'hétBreði'],\n",
       " ['Hann',\n",
       "  'er',\n",
       "  'fróðr',\n",
       "  'við',\n",
       "  'þat',\n",
       "  ',',\n",
       "  'er',\n",
       "  'hann',\n",
       "  'skyldi',\n",
       "  'at',\n",
       "  'hafast',\n",
       "  '.Hann',\n",
       "  'hafði',\n",
       "  'íþróttir',\n",
       "  'ok',\n",
       "  'atgervi',\n",
       "  'jafnframt',\n",
       "  'hinum',\n",
       "  ',',\n",
       "  'ermeira',\n",
       "  'þóttu',\n",
       "  'verðir',\n",
       "  ',',\n",
       "  'eða',\n",
       "  'umfram',\n",
       "  'nokkura',\n",
       "  '.Þat',\n",
       "  'er',\n",
       "  'at',\n",
       "  'segja',\n",
       "  'eitthvert',\n",
       "  'sinn',\n",
       "  ',',\n",
       "  'at',\n",
       "  'Sigi',\n",
       "  'ferr',\n",
       "  'á',\n",
       "  'dýraveiði',\n",
       "  ',ok',\n",
       "  'með',\n",
       "  'honum',\n",
       "  'þrællinn',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'veiða',\n",
       "  'dýr',\n",
       "  'um',\n",
       "  'daginnallt',\n",
       "  'til',\n",
       "  'aptans'],\n",
       " ['En',\n",
       "  'er',\n",
       "  'þeir',\n",
       "  'bera',\n",
       "  'saman',\n",
       "  'veiði',\n",
       "  'sína',\n",
       "  'um',\n",
       "  'aptaninn',\n",
       "  ',þá',\n",
       "  'hafði',\n",
       "  'Breði',\n",
       "  'veitt',\n",
       "  'miklu',\n",
       "  'fleira',\n",
       "  'ok',\n",
       "  'meira',\n",
       "  'en',\n",
       "  'Sigi',\n",
       "  ',en',\n",
       "  'honum',\n",
       "  'líkaði',\n",
       "  'stórilla',\n",
       "  'ok',\n",
       "  'segir',\n",
       "  ',',\n",
       "  'at',\n",
       "  'sik',\n",
       "  'undri',\n",
       "  ',',\n",
       "  'at',\n",
       "  'einnþræll',\n",
       "  'skuli',\n",
       "  'sik',\n",
       "  'yfirbuga',\n",
       "  'í',\n",
       "  'dýraveiði',\n",
       "  ',',\n",
       "  'hleypr',\n",
       "  'því',\n",
       "  'at',\n",
       "  'honumok',\n",
       "  'drepr',\n",
       "  'hann',\n",
       "  ';',\n",
       "  'dysjar',\n",
       "  'síðan',\n",
       "  'líkit',\n",
       "  'í',\n",
       "  'snjófönn'],\n",
       " ['Nú',\n",
       "  'ferrhann',\n",
       "  'heim',\n",
       "  'um',\n",
       "  'kveldit',\n",
       "  'ok',\n",
       "  'segir',\n",
       "  ',',\n",
       "  'at',\n",
       "  'Breði',\n",
       "  'hafi',\n",
       "  'riðit',\n",
       "  'fráhonum',\n",
       "  'á',\n",
       "  'skóginn',\n",
       "  ',',\n",
       "  '-',\n",
       "  '-',\n",
       "  '\"ok',\n",
       "  'var',\n",
       "  'hann',\n",
       "  'senn',\n",
       "  'ór',\n",
       "  'augliti',\n",
       "  'mér',\n",
       "  ',ok',\n",
       "  'veit',\n",
       "  'ek',\n",
       "  'ekki',\n",
       "  'til',\n",
       "  'hans',\n",
       "  '.',\n",
       "  '\"',\n",
       "  'Skaði',\n",
       "  'grunar',\n",
       "  'sögn',\n",
       "  'Siga',\n",
       "  'ok',\n",
       "  'getr',\n",
       "  ',at',\n",
       "  'vera',\n",
       "  'munu',\n",
       "  'svik',\n",
       "  'hans',\n",
       "  'ok',\n",
       "  'mun',\n",
       "  'Sigi',\n",
       "  'hafa',\n",
       "  'drepit',\n",
       "  'hann',\n",
       "  ',fær',\n",
       "  'menn',\n",
       "  'til',\n",
       "  'at',\n",
       "  'leita',\n",
       "  'hans',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'lýkr',\n",
       "  'svá',\n",
       "  'leitinni',\n",
       "  ',',\n",
       "  'at',\n",
       "  'þeirfundu',\n",
       "  'hann',\n",
       "  'í',\n",
       "  'skafli',\n",
       "  'einum',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'mælti',\n",
       "  'Skaði',\n",
       "  ',',\n",
       "  'at',\n",
       "  'þannskafl',\n",
       "  'skyldi',\n",
       "  'kalla',\n",
       "  'Breðafönn',\n",
       "  'heðan',\n",
       "  'af',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'hafa',\n",
       "  'mennnú',\n",
       "  'þat',\n",
       "  'eptir',\n",
       "  'síðan',\n",
       "  'ok',\n",
       "  'kalla',\n",
       "  'svá',\n",
       "  'hverja',\n",
       "  'fönn',\n",
       "  ',',\n",
       "  'er',\n",
       "  'mikiler'],\n",
       " ['Þá',\n",
       "  'kemr',\n",
       "  'upp',\n",
       "  ',',\n",
       "  'at',\n",
       "  'Sigi',\n",
       "  'hefir',\n",
       "  'drepit',\n",
       "  'þrælinn',\n",
       "  'ok',\n",
       "  'myrðan',\n",
       "  '.Þá',\n",
       "  'kalla',\n",
       "  'þeir',\n",
       "  'hann',\n",
       "  'varg',\n",
       "  'í',\n",
       "  'véum',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'má',\n",
       "  'hann',\n",
       "  'nú',\n",
       "  'eigiheima',\n",
       "  'vera',\n",
       "  'með',\n",
       "  'feðr',\n",
       "  'sínum'],\n",
       " ['Óðinn',\n",
       "  'fylgir',\n",
       "  'honum',\n",
       "  'núaf',\n",
       "  'landi',\n",
       "  'brott',\n",
       "  ',',\n",
       "  'svá',\n",
       "  'langa',\n",
       "  'leið',\n",
       "  ',',\n",
       "  'at',\n",
       "  'stóru',\n",
       "  'bar',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'eigi',\n",
       "  'léttihann',\n",
       "  'fyrr',\n",
       "  'en',\n",
       "  'hann',\n",
       "  'kom',\n",
       "  'honum',\n",
       "  'til',\n",
       "  'herskipa'],\n",
       " ['Nú',\n",
       "  'tekrSigi',\n",
       "  'at',\n",
       "  'leggjast',\n",
       "  'í',\n",
       "  'hernað',\n",
       "  'með',\n",
       "  'þat',\n",
       "  'lið',\n",
       "  ',',\n",
       "  'er',\n",
       "  'faðir',\n",
       "  'hansfekk',\n",
       "  'honum',\n",
       "  ',',\n",
       "  'áðr',\n",
       "  'þeir',\n",
       "  'skildu',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'varð',\n",
       "  'hann',\n",
       "  'sigrsællí',\n",
       "  'hernaðinum'],\n",
       " ['Ok',\n",
       "  'svá',\n",
       "  'kemr',\n",
       "  'hans',\n",
       "  'máli',\n",
       "  ',',\n",
       "  'at',\n",
       "  'hann',\n",
       "  'fekkherjat',\n",
       "  'sér',\n",
       "  'land',\n",
       "  'ok',\n",
       "  'ríki',\n",
       "  'um',\n",
       "  'síðir'],\n",
       " ['Ok',\n",
       "  'því',\n",
       "  'næst',\n",
       "  'fekk',\n",
       "  'hannsér',\n",
       "  'göfugt',\n",
       "  'kvánfang',\n",
       "  ',',\n",
       "  'ok',\n",
       "  'gerðist',\n",
       "  'hann',\n",
       "  'ríkr',\n",
       "  'konungr',\n",
       "  'okmikill',\n",
       "  'fyrir',\n",
       "  'sér',\n",
       "  'ok',\n",
       "  'réð',\n",
       "  'fyrir',\n",
       "  'Húnalandi',\n",
       "  'ok',\n",
       "  'er',\n",
       "  'inn',\n",
       "  'mestihermaðr'],\n",
       " ['Hann', 'á', 'son', 'við', 'konu', 'sinni', ',', 'er', 'hét', 'Rerir'],\n",
       " ['Hannvex',\n",
       "  'þar',\n",
       "  'upp',\n",
       "  'með',\n",
       "  'feðr',\n",
       "  'sínum',\n",
       "  'ok',\n",
       "  'gerist',\n",
       "  'brátt',\n",
       "  'mikill',\n",
       "  'vextiok',\n",
       "  'gerviligr',\n",
       "  '.']]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tokenized_chapters[0]"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Environment (old_norse_notebook)",
   "language": "",
   "name": "old_norse_notebook"
  },
  "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.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
