From 515f0edb56bc258b65b3fd2fa806e35aa81b9e1e Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Wed, 6 Jul 2022 09:20:06 +0200 Subject: [PATCH] Fix 02 --- wyk/02_Jezyki.ipynb | 1386 +------------------------------------------ wyk/02_Jezyki.org | 250 +------- 2 files changed, 15 insertions(+), 1621 deletions(-) diff --git a/wyk/02_Jezyki.ipynb b/wyk/02_Jezyki.ipynb index a3d48f9..d55b2c9 100644 --- a/wyk/02_Jezyki.ipynb +++ b/wyk/02_Jezyki.ipynb @@ -1,3 +1,4 @@ + { "cells": [ { @@ -7,7 +8,7 @@ "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", "
\n", "

Modelowanie języka

\n", - "

2. Języki [wykład]

\n", + "

02. Języki i ich prawa statystyczne [wykład]

\n", "

Filip Graliński (2022)

\n", "
\n", "\n", @@ -15,1385 +16,4 @@ "\n" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Języki i ich prawa\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Jakim rozkładom statystycznym podlegają języki?\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Język naturalny albo „Pan Tadeusz” w liczbach\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Przygotujmy najpierw „infrastrukturę” do *segmentacji* tekstu na różnego rodzaju jednostki.\n", - "Używać będziemy generatorów.\n", - "\n", - "**Pytanie** Dlaczego generatory zamiast list?\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'Księga pierwsza\\r\\n\\r\\n\\r\\n\\r\\nGospodarstwo\\r\\n\\r\\nPowrót pani'" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import requests\n", - "\n", - "url = 'https://wolnelektury.pl/media/book/txt/pan-tadeusz.txt'\n", - "pan_tadeusz = requests.get(url).content.decode('utf-8')\n", - "\n", - "pan_tadeusz[100:150]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Znaki\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['K',\n", - " 's',\n", - " 'i',\n", - " 'ę',\n", - " 'g',\n", - " 'a',\n", - " ' ',\n", - " 'p',\n", - " 'i',\n", - " 'e',\n", - " 'r',\n", - " 'w',\n", - " 's',\n", - " 'z',\n", - " 'a',\n", - " '\\r',\n", - " '\\n',\n", - " '\\r',\n", - " '\\n',\n", - " '\\r',\n", - " '\\n',\n", - " '\\r',\n", - " '\\n',\n", - " 'G',\n", - " 'o',\n", - " 's',\n", - " 'p',\n", - " 'o',\n", - " 'd',\n", - " 'a',\n", - " 'r',\n", - " 's',\n", - " 't',\n", - " 'w',\n", - " 'o',\n", - " '\\r',\n", - " '\\n',\n", - " '\\r',\n", - " '\\n',\n", - " 'P',\n", - " 'o',\n", - " 'w',\n", - " 'r',\n", - " 'ó',\n", - " 't',\n", - " ' ',\n", - " 'p',\n", - " 'a',\n", - " 'n',\n", - " 'i']" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from itertools import islice\n", - "\n", - "def get_characters(t):\n", - " yield from t\n", - "\n", - "list(islice(get_characters(pan_tadeusz), 100, 150))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Counter({'A': 698,\n", - " 'd': 11465,\n", - " 'a': 30979,\n", - " 'm': 10269,\n", - " ' ': 63444,\n", - " 'M': 585,\n", - " 'i': 29353,\n", - " 'c': 14153,\n", - " 'k': 12362,\n", - " 'e': 25343,\n", - " 'w': 14625,\n", - " 'z': 22741,\n", - " '\\r': 10851,\n", - " '\\n': 10851,\n", - " 'P': 1265,\n", - " 'n': 15505,\n", - " 'T': 971,\n", - " 'u': 7699,\n", - " 's': 15255,\n", - " 'y': 13732,\n", - " 'l': 6677,\n", - " 'o': 23050,\n", - " 't': 10757,\n", - " 'j': 6586,\n", - " 'L': 316,\n", - " 'I': 795,\n", - " 'S': 1045,\n", - " 'B': 567,\n", - " 'N': 793,\n", - " '9': 8,\n", - " '7': 2,\n", - " '8': 10,\n", - " '-': 33,\n", - " '3': 3,\n", - " '2': 6,\n", - " '4': 2,\n", - " '5': 2,\n", - " 'K': 683,\n", - " 'ę': 5534,\n", - " 'g': 4775,\n", - " 'p': 8031,\n", - " 'r': 15328,\n", - " 'G': 358,\n", - " 'ó': 3097,\n", - " '—': 720,\n", - " ',': 9130,\n", - " 'ł': 10059,\n", - " 'W': 1258,\n", - " 'ż': 3334,\n", - " 'ś': 2524,\n", - " 'ą': 4794,\n", - " 'Ż': 219,\n", - " 'O': 567,\n", - " 'ź': 414,\n", - " 'b': 5753,\n", - " 'R': 489,\n", - " 'E': 23,\n", - " '!': 1083,\n", - " ':': 1152,\n", - " 'ć': 1956,\n", - " '.': 2380,\n", - " 'D': 552,\n", - " 'J': 729,\n", - " 'C': 556,\n", - " 'h': 3915,\n", - " '(': 76,\n", - " 'f': 386,\n", - " ';': 1445,\n", - " 'ń': 651,\n", - " ')': 76,\n", - " 'Z': 785,\n", - " 'Ś': 71,\n", - " 'U': 184,\n", - " 'F': 47,\n", - " 'é': 43,\n", - " '?': 441,\n", - " '…': 157,\n", - " '«': 540,\n", - " 'H': 309,\n", - " '»': 538,\n", - " 'Ó': 13,\n", - " 'Ł': 24,\n", - " 'x': 3,\n", - " 'v': 5,\n", - " '*': 150,\n", - " 'à': 1,\n", - " 'Ź': 4,\n", - " 'V': 3,\n", - " '/': 19,\n", - " 'Ć': 1,\n", - " 'q': 2,\n", - " '1': 4,\n", - " 'æ': 2,\n", - " '6': 1,\n", - " '0': 1})" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import Counter\n", - "\n", - "c = Counter(get_characters(pan_tadeusz))\n", - "\n", - "c" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Napiszmy pomocniczą funkcję, która zwraca **listę frekwencyjną**.\n", - "\n", - "Counter({' ': 63444, 'a': 30979, 'i': 29353, 'e': 25343, 'o': 23050, 'z': 22741, 'n': 15505, 'r': 15328, 's': 15255, 'w': 14625, 'c': 14153, 'y': 13732, 'k': 12362, 'd': 11465, '\\r': 10851, '\\n': 10851, 't': 10757, 'm': 10269, 'ł': 10059, ',': 9130, 'p': 8031, 'u': 7699, 'l': 6677, 'j': 6586, 'b': 5753, 'ę': 5534, 'ą': 4794, 'g': 4775, 'h': 3915, 'ż': 3334, 'ó': 3097, 'ś': 2524, '.': 2380, 'ć': 1956, ';': 1445, 'P': 1265, 'W': 1258, ':': 1152, '!': 1083, 'S': 1045, 'T': 971, 'I': 795, 'N': 793, 'Z': 785, 'J': 729, '—': 720, 'A': 698, 'K': 683, 'ń': 651, 'M': 585, 'B': 567, 'O': 567, 'C': 556, 'D': 552, '«': 540, '»': 538, 'R': 489, '?': 441, 'ź': 414, 'f': 386, 'G': 358, 'L': 316, 'H': 309, 'Ż': 219, 'U': 184, '…': 157, '\\*': 150, '(': 76, ')': 76, 'Ś': 71, 'F': 47, 'é': 43, '-': 33, 'Ł': 24, 'E': 23, '/': 19, 'Ó': 13, '8': 10, '9': 8, '2': 6, 'v': 5, 'Ź': 4, '1': 4, '3': 3, 'x': 3, 'V': 3, '7': 2, '4': 2, '5': 2, 'q': 2, 'æ': 2, 'à': 1, 'Ć': 1, '6': 1, '0': 1})\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "OrderedDict([(' ', 63444),\n", - " ('a', 30979),\n", - " ('i', 29353),\n", - " ('e', 25343),\n", - " ('o', 23050),\n", - " ('z', 22741),\n", - " ('n', 15505),\n", - " ('r', 15328)])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import Counter\n", - "from collections import OrderedDict\n", - "\n", - "def freq_list(g, top=None):\n", - " c = Counter(g)\n", - "\n", - " if top is None:\n", - " items = c.items()\n", - " else:\n", - " items = c.most_common(top)\n", - "\n", - " return OrderedDict(sorted(items, key=lambda t: -t[1]))\n", - "\n", - "freq_list(get_characters(pan_tadeusz), top=8)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_8747/6903746.py:14: UserWarning: Glyph 13 (\r", - ") missing from current font.\n", - " plt.savefig(fname)\n" - ] - }, - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-chars.png'" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/lib/python3.10/site-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 13 (\r", - ") missing from current font.\n", - " fig.canvas.print_figure(bytes_io, **kw)\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "from collections import OrderedDict\n", - "\n", - "def rang_freq_with_labels(name, g, top=None):\n", - " freq = freq_list(g, top)\n", - "\n", - " plt.figure(figsize=(12, 3))\n", - " plt.ylabel('liczba wystąpień')\n", - "\n", - " plt.bar(freq.keys(), freq.values())\n", - "\n", - " fname = f'02_Jezyki/{name}.png'\n", - "\n", - " plt.savefig(fname)\n", - "\n", - " return fname\n", - "\n", - "rang_freq_with_labels('pt-chars', get_characters(pan_tadeusz))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Słowa\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Co rozumiemy pod pojęciem słowa czy wyrazu, nie jest oczywiste. W praktyce zależy to od wyboru **tokenizatora**.\n", - "\n", - "Załóżmy, że przez wyraz rozumieć będziemy nieprzerwany ciąg liter bądź cyfr (oraz gwiazdek\n", - "— to za chwilę ułatwi nam analizę pewnego tekstu…).\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['Ty',\n", - " 'co',\n", - " 'gród',\n", - " 'zamkowy',\n", - " 'Nowogródzki',\n", - " 'ochraniasz',\n", - " 'z',\n", - " 'jego',\n", - " 'wiernym',\n", - " 'ludem',\n", - " 'Jak',\n", - " 'mnie',\n", - " 'dziecko',\n", - " 'do',\n", - " 'zdrowia',\n", - " 'powróciłaś',\n", - " 'cudem',\n", - " 'Gdy',\n", - " 'od',\n", - " 'płaczącej',\n", - " 'matki',\n", - " 'pod',\n", - " 'Twoją',\n", - " 'opiekę',\n", - " 'Ofiarowany',\n", - " 'martwą',\n", - " 'podniosłem',\n", - " 'powiekę',\n", - " 'I',\n", - " 'zaraz']" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from itertools import islice\n", - "import regex as re\n", - "\n", - "def get_words(t):\n", - " for m in re.finditer(r'[\\p{L}0-9\\*]+', t):\n", - " yield m.group(0)\n", - "\n", - "list(islice(get_words(pan_tadeusz), 100, 130))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Zobaczmy 20 najczęstszych wyrazów.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-words-20.png'" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAADCCAYAAAB39GXsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAdPUlEQVR4nO3de5hddX3v8feHYFFuchspJsRBG7WB3iTloNQWxVNppQbrhdCiUbFRi4K1HoTaU+wlLa1tLX16oFKggFowWltoURFRhCKIIVwDgmnDJYIQC0rERzDxe/5Ya8pmMgk7mVmzZzLv1/PsZ9b6rbX397tn1t77O7/9W7+VqkKSJEnSxNpu0AlIkiRJ2yILbUmSJKkDFtqSJElSByy0JUmSpA5YaEuSJEkdsNCWJEmSOrD9oBPoyl577VXDw8ODTkOSJEnbuOuvv/7bVTU0un2bLbSHh4dZvnz5oNOQJEnSNi7J3WO1O3REkiRJ6oCFtiRJktQBC21JkiSpAxbakiRJUgcstCVJkqQObLOzjgzS8EmXdPr4d536qk4fX5IkSeNnob0N6brAB4t8SZKkfjl0RJIkSeqAhbYkSZLUAQttSZIkqQMW2pIkSVIHLLQlSZKkDnRaaCc5J8mDSW4dY9v7klSSvXraTk6yKskdSV7Z035gklvabX+bJF3mLUmSJI1X1z3a5wKHj25Msi/wv4F7etrmA4uA/dv7nJ5kVrv5DGAJMK+9bfSYkiRJ0lTS6TzaVXVlkuExNn0YOBG4qKdtIXBhVT0GrE6yCjgoyV3ArlV1DUCS84Ejgc92mLq2kHN4S5IkPdmkj9FO8mrgm1V106hNs4F7e9bXtG2z2+XR7ZIkSdKUNalXhkyyI/AB4JfH2jxGW22mfazHX0IzxIS5c+duZZaSJEnS+E12j/bzgP2Am9ohIXOAFUl+nKanet+efecA97Xtc8Zo30hVnVlVC6pqwdDQUAfpS5IkSf2Z1EK7qm6pqmdV1XBVDdMU0S+qqm8BFwOLkuyQZD+akx6vq6r7gXVJDm5nG3kTTx7bLUmSJE05XU/vdwFwDfCCJGuSHLupfatqJbAMuA34HHBcVW1oN78TOAtYBfwnnggpSZKkKa7rWUeOfortw6PWlwJLx9hvOXDAhCYnSZIkdcgrQ0qSJEkdsNCWJEmSOmChLUmSJHXAQluSJEnqgIW2JEmS1AELbUmSJKkDFtqSJElSByy0JUmSpA5YaEuSJEkdsNCWJEmSOmChLUmSJHXAQluSJEnqwPZdPniSc4AjgAer6oC27UPArwGPA/8JvKWqvtNuOxk4FtgAHF9Vl7btBwLnAs8APgOcUFXVZe6aPoZPuqTTx7/r1Fd1+viSJGnb1HWP9rnA4aPaLgMOqKqfBu4ETgZIMh9YBOzf3uf0JLPa+5wBLAHmtbfRjylJkiRNKZ0W2lV1JfDQqLbPV9X6dvVaYE67vBC4sKoeq6rVwCrgoCT7ALtW1TVtL/b5wJFd5i1JkiSN16DHaL8V+Gy7PBu4t2fbmrZtdrs8un0jSZYkWZ5k+dq1aztIV5IkSerPwArtJB8A1gMfH2kaY7faTPvGjVVnVtWCqlowNDQ0MYlKkiRJW6HTkyE3JclimpMkD+s5qXENsG/PbnOA+9r2OWO0S5IkSVPWpPdoJzkceD/w6qr6fs+mi4FFSXZIsh/NSY/XVdX9wLokBycJ8CbgosnOW5IkSdoSffVoJzkE+CDwnPY+AaqqnvsU97sAOBTYK8ka4BSaWUZ2AC5r6maurap3VNXKJMuA22iGlBxXVRvah3onT0zv91meGNctSZIkTUmbLLSTHAHcUFXfBM4Gfge4nmaO675U1dFjNJ+9mf2XAkvHaF8OHNBvXEmSJGnQNtejfSfwkSR/DHy3quxFliRJkvq0yUK7qu5MshD4CeBL7RUdPw081rPPiu5TlKYur0opSZI2ZbNjtNsx0nck+V9t04LezcDLu0pMkiRJms76Ohmyql7WdSKSJEnStqSv6f2S7J3k7CSfbdfnJzm229QkSZKk6avfebTPBS4Fnt2u3wm8p4N8JEmSpG1Cv4X2XlW1DPgRQFWtZwum+ZMkSZJmmn4L7UeT7ElzAiRJDga+21lWkiRJ0jTX18mQwHtpLpH+vCRXA0PA6zrLSpIkSZrm+p11ZEWSXwJeQHP59Tuq6oedZiZJkiRNY5sttJO8vKq+mOTXR216fhKq6tMd5iZJkiRNW0/Vo/1LwBeBXxtjW9FcKVKSJEnSKE91ZchT2p9v2ZoHT3IOcATwYFUd0LbtAXwCGAbuAt5QVQ+3204GjqWZ0eT4qrq0bT+QZorBZwCfAU6oqtqanCRJkqTJ0O8Fa/ZM8rdJViS5Pslp7SwkT+Vc4PBRbScBl1fVPODydp0k84FFwP7tfU5PMqu9zxnAEmBeexv9mJIkSdKU0u/0fhcCa4HX0sw2spamV3qzqupK4KFRzQuB89rl84Aje9ovrKrHqmo1sAo4KMk+wK5VdU3bi31+z30kSZKkKanfQnuPqvrjqlrd3v4E2G0rY+5dVfcDtD+f1bbPBu7t2W9N2za7XR7dvpEkS5IsT7J87dq1W5meJEmSNH79FtpfSrIoyXbt7Q3AJROcS8Zoq820b9xYdWZVLaiqBUNDQxOanCRJkrQl+i203w78E/B4e7sQeG+SdUke2cKYD7TDQWh/Pti2rwH27dlvDnBf2z5njHZJkiRpyuqr0K6qXapqu6ravr1t17btUlW7bmHMi4HF7fJi4KKe9kVJdkiyH81Jj9e1w0vWJTk4SYA39dxHkiRJmpL6vQQ7SXanKX6fPtJWVVcm+e2qOn0T97kAOBTYK8ka4BTgVGBZkmOBe4DXt4+1Msky4DZgPXBcVW1oH+qdPDG932fbmyRJkjRl9VVoJ3kbcALNsI0bgYOBa5LcBiwAxiy0q+roTTzkYZvYfymwdIz25cAB/eQqSZIkTQX9jtE+Afh54O6qehnwczRT/P0eTrUnSZIkbaTfoSM/qKofJCHJDlX19SQvqKpHgC09GVKSJEna5vVbaK9Jshvwr8BlSR7GmT8kSZKkTeqr0K6q17SLH0zyJeCZeEKiJEmStEl9jdFO8tGR5ar6clVdDJzTWVaSJEnSNNfvyZD7964kmQUcOPHpSJIkSduGzRbaSU5Osg746SSPtLd1NFdz9KIxkiRJ0iZsttCuqj+rql2AD1XVru1tl6ras6pOnqQcJUmSpGmn36Ej/55kJ4AkxyT56yTP6TAvSZIkaVrrt9A+A/h+kp8BTgTuBs7vLCtJkiRpmuu30F5fVQUsBE6rqtOAXbpLS5IkSZre+i201yU5GTgGuKSddeRp4wmc5HeSrExya5ILkjw9yR5JLkvyjfbn7j37n5xkVZI7krxyPLElSZKkrvVbaB8FPAYcW1XfAmYDH9raoElmA8cDC6rqAGAWsAg4Cbi8quYBl7frJJnfbt8fOBw4vS32JUmSpCmp30L7dcA/VtVVAFV1T1WNd4z29sAzkmwP7EhzSfeFwHnt9vOAI9vlhcCFVfVYVa0GVgEHjTO+JEmS1Jl+C+0fB76WZFmSw5NkPEGr6pvAXwL3APcD362qzwN7V9X97T73A89q7zIbuLfnIda0bZIkSdKU1FehXVW/D8wDzgbeDHwjyZ8med7WBG3HXi8E9gOeDeyU5JjN3WWstMZ43CVJlidZvnbt2q1JTZIkSZoQ/fZo08468q32th7YHfhUkr/YirivAFZX1dqq+iHwaeAlwANJ9gFofz7Y7r8G2Lfn/nNohpqMzvHMqlpQVQuGhoa2Ii1JkiRpYvRVaCc5Psn1wF8AVwM/VVXvBA4EXrsVce8BDk6yYzsM5TDgduBiYHG7z2KeuMz7xcCiJDsk2Y+md/26rYgrSZIkTYrt+9xvL+DXq+ru3saq+lGSI7Y0aFV9NcmngBU0veM3AGcCOwPLkhxLU4y/vt1/ZZJlwG3t/sdV1YYtjSttK4ZPuqTzGHed+qrOY0iStC3rt9AO8Pwk366qR3s3VNXtWxO4qk4BThnV/BhN7/ZY+y8Flm5NLEmSJGmy9TtGezVwNLA8yXVJ/irJwg7zkiRJkqa1fmcdOaeq3gq8DPgYzZCOj3WZmCRJkjSd9TV0JMlZwHzgAeAqmgvYrOgwL0mSJGla63eM9p40l0n/DvAQ8O2qWt9VUpKmLk/ElCSpP30V2lX1GoAkPwm8EvhSkllVNafL5CRJkqTpqt+hI0cALwV+keZCNV+kGUIiSZIkaQz9Dh35FeBK4LSq2uiKjJIkSZKerN+hI8d1nYgkSZK0Lel3Hm1JkiRJW8BCW5IkSeqAhbYkSZLUgX5nHZkH/BnNRWuePtJeVc/tKC9JkiRpWuu3R/sfgTOA9TSXYT8f+Oh4AifZLcmnknw9ye1JXpxkjySXJflG+3P3nv1PTrIqyR1JXjme2JIkSVLX+i20n1FVlwOpqrur6oPAy8cZ+zTgc1X1QuBngNuBk4DLq2oecHm7TpL5wCJgf+Bw4PQks8YZX5IkSepMv4X2D5JsB3wjybuSvAZ41tYGTbIrzcVvzgaoqser6jvAQuC8drfzgCPb5YXAhVX1WFWtBlYBB21tfEmSJKlr/Rba7wF2BI4HDgTeCCweR9znAmuBf0xyQ5KzkuwE7F1V9wO0P0eK+dnAvT33X9O2SZIkSVNSvxes+RpA26t9fFWtm4C4LwLeXVVfTXIa7TCRTchYaW20U7IEWAIwd+7ccaYoSZIkbb2+erSTLEhyC3AzcEuSm5IcOI64a4A1VfXVdv1TNIX3A0n2aWPuAzzYs/++PfefA2x0KfiqOrOqFlTVgqGhoXGkJ0mSJI1Pv0NHzgF+u6qGq2oYOI5mJpKtUlXfAu5N8oK26TDgNuBinhiSshi4qF2+GFiUZIck+wHzgOu2Nr4kSZLUtb6GjgDrquqqkZWq+o8k4x0+8m7g40l+DPgv4C00hf+yJMcC9wCvb+OtTLKMphhfDxxXVRvGGV+SJEnqzGYL7SQvahevS/IR4AKasdFHAVeMJ3BV3QgsGGPTYZvYfymwdDwxJUmSpMnyVD3afzVq/ZSe5Y1ORpQkSZLU2GyhXVUvm6xEJEmSpG1Jv7OObEhyapL0tK3oLi1JkiRpeuv3ZMiVNEX555McVVUPMfbc1pLUmeGTLun08e869VWdPr4kaWbpd3q/9VV1IvAPwFXtHNqO0ZYkSZI2od8e7QBU1bIkK2lmH/HSi5IkSdIm9Ftov21koZ3T+heAIzvJSJIkSdoG9Dt05OAku/WszwJ2nvh0JEmSpG1Dv4X2b1XVd0ZWquph4Lc6yUiSJEnaBvQ7dGS7JKmqAkgyC/ix7tKSpKnFGU8kSVuq30L7UmBZkr+nmW3kHcDnOstKkiRJmub6LbTfD7wdeCfNDCSfB87qKilJkiRpuuur0K6qHwFntLcJ0w5BWQ58s6qOSLIH8AlgGLgLeEM7HpwkJwPHAhuA46vq0onMRZKmoq6HrIDDViSpK5s9GTLJsvbnLUluHn2bgPgnALf3rJ8EXF5V84DL23WSzAcWAfsDhwOnt0W6JEmSNCU9VY/2Ce3PIyY6cJI5wKuApcB72+aFwKHt8nnAFTTDVhYCF1bVY8DqJKuAg4BrJjovSVLD3nRJGp/NFtpVdX/78+4OYv8NcCKwS0/b3j0x70/yrLZ9NnBtz35r2rYnSbIEWAIwd64XrpQkSdLgPNXQkXVJHhnjti7JI1sbNMkRwINVdX2/dxmjrTZqqDqzqhZU1YKhoaGtTU+SJEkat6fq0d5lc9vH4RDg1Ul+FXg6sGuSjwEPJNmn7c3eB3iw3X8NsG/P/ecA93WUmyRJkjRu/V4ZckJV1clVNaeqhmlOcvxiVR0DXAwsbndbDFzULl8MLEqyQ5L9gHnAdZOctiRJktS3fufRniyn0lwY51jgHuD1AFW1sp0B5TZgPXBcVW0YXJqSJEnS5g280K6qK2hmF6Gq/hs4bBP7LaWZoUSSJEma8gYydESSJEna1g28R1uSpNG6nsPb+bslTQZ7tCVJkqQOWGhLkiRJHbDQliRJkjpgoS1JkiR1wJMhJUnq4YmYkiaKhbYkSVNA1wU+WORLk81CW5KkGc4iX+qGY7QlSZKkDlhoS5IkSR2w0JYkSZI6MJAx2kn2Bc4Hfhz4EXBmVZ2WZA/gE8AwcBfwhqp6uL3PycCxwAbg+Kq6dACpS5KkCTTIWV6cYUZdG9TJkOuB362qFUl2Aa5PchnwZuDyqjo1yUnAScD7k8wHFgH7A88GvpDk+VW1YUD5S5IkbZVBnnzqia+TayBDR6rq/qpa0S6vA24HZgMLgfPa3c4DjmyXFwIXVtVjVbUaWAUcNKlJS5IkSVtg4NP7JRkGfg74KrB3Vd0PTTGe5FntbrOBa3vutqZtG/1YS4AlAHPnzu0wa0mSJG2JmThUZ6AnQybZGfhn4D1V9cjmdh2jrTZqqDqzqhZU1YKhoaGJSlOSJEnaYgMrtJM8jabI/nhVfbptfiDJPu32fYAH2/Y1wL49d58D3DdZuUqSJElbaiCFdpIAZwO3V9Vf92y6GFjcLi8GLuppX5RkhyT7AfOA6yYrX0mSJGlLDWqM9iHAG4FbktzYtv0ecCqwLMmxwD3A6wGqamWSZcBtNDOWHOeMI5IkSZrKBlJoV9V/MPa4a4DDNnGfpcDSzpKSJEmSJpBXhpQkSZI6YKEtSZIkdcBCW5IkSeqAhbYkSZLUAQttSZIkqQMW2pIkSVIHLLQlSZKkDlhoS5IkSR2w0JYkSZI6YKEtSZIkdcBCW5IkSerAtCm0kxye5I4kq5KcNOh8JEmSpM2ZFoV2klnA/wN+BZgPHJ1k/mCzkiRJkjZtWhTawEHAqqr6r6p6HLgQWDjgnCRJkqRNmi6F9mzg3p71NW2bJEmSNCWlqgadw1NK8nrglVX1tnb9jcBBVfXuUfstAZa0qy8A7pjURLfeXsC3Z1jsmficZ2rsmficZ2rsmficZ2rsmficZ2rsmfict8ZzqmpodOP2g8hkK6wB9u1ZnwPcN3qnqjoTOHOykpooSZZX1YKZFHsmPueZGnsmPueZGnsmPueZGnsmPueZGnsmPueJNF2GjnwNmJdkvyQ/BiwCLh5wTpIkSdImTYse7apan+RdwKXALOCcqlo54LQkSZKkTZoWhTZAVX0G+Myg8+jIIIe7DCr2THzOMzX2THzOMzX2THzOMzX2THzOMzX2THzOE2ZanAwpSZIkTTfTZYy2JEmSNK1YaA9QkrNm6hUuk3xl0DnMJEn+KMkrBhT7ewOI+cEk75ukWJs8lpMMJ7m14/i7JfntLmM8RfzPJNltUPHbHF6TpJK8cJB5aOL181kxyPe3idTPa3ky3lMGJcmHk7ynZ/3SJGf1rP9VkvcOJLlxsNAeoKp6W1XdNug8BqGqXjLoHGaSqvqDqvrCoPPYFk2BY3k3YGCFdlX9alV9Z1DxW0cD/0EzI5W2If28vrah97fdGOBreQr4CvASgCTb0cyhvX/P9pcAVw8gr3Gx0J4kSXZKckmSm5LcmuSoJFckWdBu/+Uk1yRZkeSTSXbuKI8TkxzfLn84yRfb5cOSfKyLmJvIYxC9nO9IcmN7W53kSx3HG05ye5J/SLIyyeeTPCPJbyX5Wnss/HOSHSch5rlJXtfuc2CSLye5vu0x2Gei4g9Skg8kuSPJF2guWEWSn01ybZKbk/xLkt07iPu9JDsnubx9/d6SZOEY+z03yQ1Jfn6CUzgVeF57XH+ovd3a5nHUBMf6H6NeT6va5zbpx1b7XnkIcCyTUGiP9T6S5Iwky9vX3B92FHc4ydeTnNcez59KsmP73n1D+/c+J8kOXcQflct722Ps1t4eyI5ifS/JoUn+vaft75K8OcmCnr/FTWm+1XhmR3n8a3tcr0xzcbwu9L6WPzyo95Qkb2qPsZuSfDTJc9pcbm5/zp3IeD2upi20aQrsW4F1SXZvj+ufBG7oKHZ3qsrbJNyA1wL/0LP+TOAKYAHNf21XAju1294P/EFHeRwMfLJdvgq4DngacArw9kn8fXxvgH+Lp7XP/dc6jjMMrAd+tl1fBhwD7Nmzz58A756EmOcCr2uf+1eAoXb7UTTTZU7rvzVwIHALsCOwK7AKeB9wM/BL7T5/BPxNF8+PZganXdv1vdr4af8et9IU/jeM/F06OM5ubZdfC1xGMw3q3sA9wD4d/+5n0Uy9uniyj602zjHA2e3yV4AXdR2zjfU/7yPAHj2/iyuAn+7o71zAIe36OcDvA/cCz2/bzgfe0/HzHnmt7QTsDKwEfq7DeN8DDgX+vaft74A3j9rvD4CPdJjHyN/4Ge1res8OYvS+lgfynkJT4N4B7DXyvIF/Axa3628F/rXD3/NdwFzg7cA7gD8GfpXmn+kru4rb5c0e7clzC/CKJH+e5KVV9d2ebQcD84Grk9xI84H1nI7yuB44MMkuwGPANTTF/ktpPjRmgtOAL1bVv01CrNVVdWO7fD3Nm+QBSa5Kcgvwmzz5q7GuYo54AXAAcFl7rP0+zZVWp7uXAv9SVd+vqkdoLmi1E7BbVX253ec84Bc7ih/gT5PcDHwBmE1T6AIMARcBx/T8XbryC8AFVbWhqh4AvgxMdA/6aH9O88F/PYM5to4GLmyXL2zXJ0Pv+8gbkqygKXz2p3k/78K9VTXy1fnHgMNoXu93tm1dHuMjfoHmtfZoVX0P+DTN629gkrwaeCXw7g7DHJ/kJuBamitVz+swFgzuPeXlwKeq6tsAVfUQ8GLgn9rtH6U5Broy0qv9Epr65Jqe9Wl5bte0mUd7uquqO5McSPOf2Z8l+XzP5gCXVVXnHxBV9cMkdwFvoTlobwZeBjwPuL3r+IOW5M00/8S8a5JCPtazvIGmN+Rc4MiquqnN59BJiDkiwMqqevEEx5wKBjlX6W/SfPgd2PMae3q77bs0vY6H0PT+dSkdP/6TgyW/AfwsTZEzn0k+tpLsSVMYHJCkaHqUK8mJ1XaPdRT3zbTvI0n2o/n25Oer6uEk5/LE336iTYX5eCf1GGut58lDXf/n95vmBNi/AF5eVY93ETzJocArgBdX1feTXEF3f+MRg3pPCU99nHV5HI6M0/4pmn/g7wV+F3iE5lucacce7UmS5NnA96vqY8BfAi/q2XwtcEiSn2j33THJ8ztM50qaD4YraXqx3wHc2OUH01TQ/qPzPppegB8NMJVdgPuTPI3mzXQy3QEMJXkxQJKnJZnoHvVBuBJ4TZrx6LvQfJ3/KPBwkpHetjfS9PB24ZnAg+0H4st48jdSjwNHAm9qC9OJto7mmILm93BUkllJhmh6N6/rICZJXkTTa72oqjYwmGPrdcD5VfWcqhquqn2B1XTY4zbG+8iuNMfad5PsDfxKV7GBuSO/X5qe+y8AwyOfHXR7jI+4Ejiy/ZzaCXgN3X8bejcwP8kO7RjswwDa5U8Cb62q+zqM/0zg4bbIfiHNt9Bd6H0tD+o95XKab2j2BEiyB03xO3L+w2/SnHjclauBI4CH2m/mHqI5SfTFNL3b04492pPnp4APJfkR8EPgnTQFN1W1tu0huSDJ02n+i10C3LmJxxqvq4APANdU1aNJfsDMGDbyLprxZl9KArC8qt42gDz+L/BVmg+PW3jijbVzVfV4mpMi/7b9kNoe+Bu672ntVFWtSPIJ4Eaa3+vI8bwY+Ps0J5z+F803ORMeHvg48G9Jlrc5fH1Ufo8mOYJmWMWjVXXRhAWv+u8kV6eZ8uuzNN9S3dTmdWJVfWuiYo3ybmB34Avt6+kOmsJ3Mo+to2lOIOv1z8Bv0N172kbvIzRDRlbSHGNdzopwO7A4yUeAbwAn0HTUfDLJ9sDXgL/vMP7Ia+1cnvgH7qyq6vIEtaqqe5Msozm2v8ETJ8QdSTM07vT2bwHw0qpaN8E5fA54RzuM4w6a3/mEG/Va/hrwwsl+T6mqlUmWAl9OsoHmd308cE6S/wOspZv30RG30IxJ/6dRbTuPDGeZbrwy5BST5A3AI1X1uUHnImnz2l6fFVXV1TkVEtDMOkJzQuABg85lsvj60rbAoSNTzwbgfUkOGXQikjatHQ52De03U5Imjq8vbSvs0ZYkSZI6YI+2JEmS1AELbUmSJKkDFtqSJElSByy0JUmSpA5YaEuSJEkdsNCWJEmSOvD/Aebp3uNUsxinAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "rang_freq_with_labels('pt-words-20', get_words(pan_tadeusz), top=20)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Zobaczmy pełny obraz, już bez etykiet.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-words.png'" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAWYUlEQVR4nO3df6zd9X3f8ecLG+zwK9hwYa5taqez2kG2JcRldImiaqyDZlXMpEVytC7WhmYtI206tetgmZb+Yyn71a3RBJOXZHG2KMRJ02F1TRfktoqmpJBLAgFDCE4g+AYH34QEWCgGw3t/nC/k3PO9P8w594fv9zwf0tX5ns/3+z3fz/no+nU/fp/v93xTVUiSxsNZK90BSdLyMfQlaYwY+pI0Rgx9SRojhr4kjZG1K92BhVxyySW1bdu2le6GJK0q99xzz/eramKw/YwP/W3btjE5ObnS3ZCkVSXJd2Zrt7wjSWPE0JekMWLoS9IYMfQlaYwY+pI0Rgx9SRojhr4kjZHOhv6BLz3GofueWOluSNIZpbOh/8m7vsP//rqhL0n9Ohv6ZyV4fxhJmqmzoQ9g5kvSTJ0N/SQr3QVJOuN0NvQByzuSNKCzoe88X5LaOhv6PU71JalfZ0Pfkr4ktXU29MGaviQN6mzoO9OXpLYFQz/Jx5KcSPLALOt+K0kluaSv7ZYkR5M8nOS6vva3JLm/WffhLMM5lU70JWmm05npfxy4frAxyVbgl4DH+9quAHYDVzb73JpkTbP6NmAvsKP5ab3mYorn70hSy4KhX1VfBJ6aZdV/An6bmRPqXcDtVXWyqh4FjgJXJ9kEXFhVX66qAj4B3DBq5xdSFvUlaYahavpJ3gl8t6ruG1i1GTjW93yqadvcLA+2z/X6e5NMJpmcnp4epovW9CVpFq859JOcC3wA+DezrZ6lreZpn1VV7a+qnVW1c2Ji4rV2ceEDSNKYWjvEPj8DbAfuaz6L3QJ8NcnV9GbwW/u23QI80bRvmaVdkrSMXvNMv6rur6pLq2pbVW2jF+hXVdX3gEPA7iTrkmyn94Ht3VV1HHg2yTXNWTvvAe5YvLfRZnVHktpO55TNTwFfBn42yVSSG+fatqqOAAeBB4E/Bm6qqpea1e8FPkLvw91vAZ8fse8L8nNcSZppwfJOVb17gfXbBp7vA/bNst0k8MbX2L/h+UmuJLV09opc8INcSRrU2dB3ni9JbZ0NffDiLEka1NnQt6QvSW2dDX1JUltnQ9+JviS1dTb0wfP0JWlQZ0N/Gb6uX5JWnc6GPkB5pr4kzdDZ0HeeL0ltnQ19sKYvSYM6G/qW9CWprbOhD870JWlQZ0PfG6NLUltnQx88e0eSBnU39J3oS1JLd0Mfa/qSNOh0bpf4sSQnkjzQ1/bvk3wjydeT/EGSi/rW3ZLkaJKHk1zX1/6WJPc36z6cJb5k1om+JLWdzkz/48D1A213Am+sqr8GfBO4BSDJFcBu4Mpmn1uTrGn2uQ3YS+9m6Ttmec1F50RfkmZaMPSr6ovAUwNtX6iqU83TPwe2NMu7gNur6mRVPUrvJuhXJ9kEXFhVX67enU0+AdywSO9BknSaFqOm/4+BzzfLm4FjfeummrbNzfJg+5Lx4ixJahsp9JN8ADgFfPKVplk2q3na53rdvUkmk0xOT08P30HrO5I0w9Chn2QP8CvAP6if3Ix2Ctjat9kW4Immfcss7bOqqv1VtbOqdk5MTAzXPz/KlaSWoUI/yfXAvwTeWVXP9a06BOxOsi7Jdnof2N5dVceBZ5Nc05y18x7gjhH7viAvzpKkmdYutEGSTwG/CFySZAr4IL2zddYBdzZnXv55Vf3TqjqS5CDwIL2yz01V9VLzUu+ldybQ6+h9BvB5lpA1fUlqWzD0q+rdszR/dJ7t9wH7ZmmfBN74mno3Ii/OkqSZOntFrjN9SWrrbOiDJ+9I0qDOhr5n70hSW2dDH6As6kvSDJ0NfWv6ktTW2dAHa/qSNKjToS9JmqnToW9JX5Jm6mzoL/E9WiRpVeps6IM1fUka1NnQd54vSW2dDX3Aor4kDehs6FvSl6S2zoY+WNOXpEGdDX0n+pLU1tnQB0v6kjSo06EvSZqps6HvxVmS1LZg6Cf5WJITSR7oa9uY5M4kjzSPG/rW3ZLkaJKHk1zX1/6WJPc36z6cZUhlb4wuSTOdzkz/48D1A203A4eragdwuHlOkiuA3cCVzT63JlnT7HMbsBfY0fwMvuaicp4vSW0Lhn5VfRF4aqB5F3CgWT4A3NDXfntVnayqR4GjwNVJNgEXVtWXq3dnk0/07bNk/CBXkmYatqZ/WVUdB2geL23aNwPH+rabato2N8uD7bNKsjfJZJLJ6enpoTpoSV+S2hb7g9zZorbmaZ9VVe2vqp1VtXNiYmLozjjTl6SZhg39J5uSDc3jiaZ9Ctjat90W4Immfcss7UvIqb4kDRo29A8Be5rlPcAdfe27k6xLsp3eB7Z3NyWgZ5Nc05y1856+fZaME31JmmntQhsk+RTwi8AlSaaADwIfAg4muRF4HHgXQFUdSXIQeBA4BdxUVS81L/VeemcCvQ74fPOzZKzpS1LbgqFfVe+eY9W1c2y/D9g3S/sk8MbX1LsRlUV9SZqhu1fkrnQHJOkM1NnQlyS1dTb0relLUltnQx88T1+SBnU29GNVX5JaOhv64LdsStKgzoa+NX1Jauts6IM1fUka1NnQd6YvSW2dDX3wu3ckaVBnQ9+zdySprbOhD373jiQN6m7oO9GXpJbuhr4kqaXToW9xR5Jm6mzoW92RpLbOhj7gVF+SBowU+kn+eZIjSR5I8qkk65NsTHJnkkeaxw1929+S5GiSh5NcN3r35+3bUr68JK1KQ4d+ks3ArwM7q+qNwBpgN3AzcLiqdgCHm+ckuaJZfyVwPXBrkjWjdX9+TvQlaaZRyztrgdclWQucCzwB7AIONOsPADc0y7uA26vqZFU9ChwFrh7x+HNyni9JbUOHflV9F/gPwOPAceDpqvoCcFlVHW+2OQ5c2uyyGTjW9xJTTVtLkr1JJpNMTk9PD9tFL86SpAGjlHc20Ju9bwd+Cjgvya/Ot8ssbbOmclXtr6qdVbVzYmJiyP4NtZskddoo5Z2/DTxaVdNV9SLwOeBvAk8m2QTQPJ5otp8Ctvbtv4VeOWjJOM+XpJlGCf3HgWuSnJveqTLXAg8Bh4A9zTZ7gDua5UPA7iTrkmwHdgB3j3D8eTnRl6S2tcPuWFV3Jfks8FXgFPA1YD9wPnAwyY30/jC8q9n+SJKDwIPN9jdV1Usj9n+BPi7lq0vS6jN06ANU1QeBDw40n6Q3659t+33AvlGOebo8T1+S2jp9Ra43RpekmTob+s7zJamts6EP1vQlaVB3Q9+pviS1dDf0caYvSYM6G/reGF2S2job+pKkts6GvqfpS1JbZ0Mf/JZNSRrU2dB3oi9JbZ0NfUlSW6dD3+KOJM3U2dD3g1xJauts6IMXZ0nSoM6GvhdnSVJbZ0Mf/GplSRrU2dC3pi9JbZ0NfbCmL0mDRgr9JBcl+WySbyR5KMkvJNmY5M4kjzSPG/q2vyXJ0SQPJ7lu9O7P17elfHVJWp1Gnen/HvDHVfVzwF8HHgJuBg5X1Q7gcPOcJFcAu4ErgeuBW5OsGfH483KiL0kzDR36SS4E3g58FKCqXqiqHwG7gAPNZgeAG5rlXcDtVXWyqh4FjgJXD3v80+jh0r20JK1So8z03wBMA/89ydeSfCTJecBlVXUcoHm8tNl+M3Csb/+ppq0lyd4kk0kmp6enh+6gNX1JmmmU0F8LXAXcVlVvBn5MU8qZw2xT71ljuar2V9XOqto5MTExVOes6UtS2yihPwVMVdVdzfPP0vsj8GSSTQDN44m+7bf27b8FeGKE458Gp/qS1G/o0K+q7wHHkvxs03Qt8CBwCNjTtO0B7miWDwG7k6xLsh3YAdw97PEX4kRfktrWjrj/rwGfTHIO8G3gH9H7Q3IwyY3A48C7AKrqSJKD9P4wnAJuqqqXRjz+vKzpS9JMI4V+Vd0L7Jxl1bVzbL8P2DfKMU+XNX1Jauv2Fbkr3QFJOsN0NvT9lk1Jauts6IM3RpekQZ0NfWv6ktTW2dAHa/qSNKizoe9EX5LaOhv64Hn6kjSo06EvSZqps6EfP8mVpJbOhj54yqYkDep06EuSZup06DvPl6SZOhv6lvQlqa2zoQ841ZekAZ0Nfb9wTZLaOhv64ERfkgZ1NvSt6UtS28ihn2RNkq8l+cPm+cYkdyZ5pHnc0LftLUmOJnk4yXWjHnshnqcvSTMtxkz//cBDfc9vBg5X1Q7gcPOcJFcAu4ErgeuBW5OsWYTjz8qJviS1jRT6SbYAfxf4SF/zLuBAs3wAuKGv/faqOllVjwJHgatHOf5CnOdL0kyjzvT/M/DbwMt9bZdV1XGA5vHSpn0zcKxvu6mmrSXJ3iSTSSanp6eH6pg1fUlqGzr0k/wKcKKq7jndXWZpm3UyXlX7q2pnVe2cmJgYtot+tbIkDVg7wr5vBd6Z5B3AeuDCJP8TeDLJpqo6nmQTcKLZfgrY2rf/FuCJEY4/L79lU5Lahp7pV9UtVbWlqrbR+4D2T6rqV4FDwJ5msz3AHc3yIWB3knVJtgM7gLuH7vnp9NGqviTNMMpMfy4fAg4muRF4HHgXQFUdSXIQeBA4BdxUVS8twfEBz96RpNksSuhX1Z8Bf9Ys/wC4do7t9gH7FuOYp9ev5TqSJK0Onb0i16m+JLV1N/TxPH1JGtTZ0PdbNiWprbOhDzjVl6QB3Q59SdIMnQ19r82SpLbOhj54cZYkDeps6DvRl6S2zoY+eHGWJA3qbOhb05ekts6GPnjGpiQN6mzoe3GWJLV1NvTBG6NL0qDOhr41fUlq62zogzV9SRrU2dB3oi9JbZ0NffA8fUkaNHToJ9ma5E+TPJTkSJL3N+0bk9yZ5JHmcUPfPrckOZrk4STXLcYbmKeDS/rykrQajTLTPwX8ZlX9FeAa4KYkVwA3A4eragdwuHlOs243cCVwPXBrkjWjdF6S9NoMHfpVdbyqvtosPws8BGwGdgEHms0OADc0y7uA26vqZFU9ChwFrh72+Atxni9JbYtS00+yDXgzcBdwWVUdh94fBuDSZrPNwLG+3aaatiXlufqS9BMjh36S84HfB36jqp6Zb9NZ2mZN5CR7k0wmmZyenh6yX0PtJkmdNlLoJzmbXuB/sqo+1zQ/mWRTs34TcKJpnwK29u2+BXhittetqv1VtbOqdk5MTIzSRc/gkaQ+o5y9E+CjwENV9bt9qw4Be5rlPcAdfe27k6xLsh3YAdw97PEX7J9VfUlqWTvCvm8F/iFwf5J7m7Z/BXwIOJjkRuBx4F0AVXUkyUHgQXpn/txUVS+NcPzT4kRfkn5i6NCvqv/L3CfJXDvHPvuAfcMe87Wwpi9JbZ2+Ihc8e0eS+nU29Net7b21k6deXuGeSNKZo7Ohf966XuXq/508tcI9kaQzR2dDf/3ZvW94eP7FJf+sWJJWjc6G/uteDX3LO5L0is6G/vqze2/Nmb4k/URnQ9+aviS1dTb0Lzr3bAB+9NyLK9wTSTpzdDb0N557DgBP/fjkCvdEks4cnQ39i89fx9qzwvGnn1/prkjSGaOzob/mrLDpovVM/fAvVrorknTG6GzoA/z0xvP4zlPPrXQ3JOmM0enQv/zic3n8Bz9e6W5I0hmj06G/7eJz+eFzL/LY9w1+SYKOh/7Pb9sIwMe/9NjKdkSSzhCdDv03X76BC9at5eNfeoxTL/l1DJLU6dAH+CdvfwMA//p/PbDCPZGkldf50P+1v/WX+anXr+f2rxzjX3zmPo4/7SmcksbXKPfIHUqS64HfA9YAH6mqDy3x8bjjfW/jNz9zH5+5Z4rP3DPFz/2lC/j5bRv5q5tfz/aJ89h28XlcdO7ZnL2m838DJY25LOftBJOsAb4J/BIwBXwFeHdVPTjXPjt37qzJyclFOf69x37Ep7/yOHc9+hTfnm6f0XPxeedw/vq1XHrBOs5KmLhgHevWruGs8OryK85eGy67YH3rXrznrD2Lyy5cP+fNg19xwfqz2dB8P9AozjorXHL+upFfR1K3JLmnqnYOti/3TP9q4GhVfbvp1O3ALmDO0F9Mb9p6EW/aehEAz71wim9871mOPfUc33v6eZ585iTPPP8iTz7zPKdeKn743AuvXs379F+8eMZ/W+crt4dcLS5Yv5YNzfcjSZrdH/7622ZMNhfDcof+ZuBY3/Mp4G8MbpRkL7AX4PLLL1+Sjpx7zlquunwDV12+YcFtq4rB/xD94Mcv8NwLpwa2g+898zwvLnCm0KmXihPPPs+pl0f/X9aPnnuRZ55fXd8k+sKpl5l+9iQve9N6aV5ZsGbw2i136M/2Dlr/8qtqP7AfeuWdpe7UQpK0yjgTF6wD2mWVbZectzydkqQhLHdNYArY2vd8C/DEMvdBksbWcof+V4AdSbYnOQfYDRxa5j5I0tha1vJOVZ1K8j7g/9A7ZfNjVXVkOfsgSeNs2c/Tr6o/Av5ouY8rSRqDK3IlST9h6EvSGDH0JWmMGPqSNEaW9bt3hpFkGvjOkLtfAnx/EbvTNY7P/Byf+Tk+81vp8fnpqpoYbDzjQ38USSZn+8Ih9Tg+83N85uf4zO9MHR/LO5I0Rgx9SRojXQ/9/SvdgTOc4zM/x2d+js/8zsjx6XRNX5I0U9dn+pKkPoa+JI2RToZ+kuuTPJzkaJKbV7o/yynJY0nuT3JvksmmbWOSO5M80jxu6Nv+lmacHk5yXV/7W5rXOZrkw8ngbWRWhyQfS3IiyQN9bYs2HknWJfl0035Xkm3L+gZHNMf4/E6S7za/Q/cmeUffunEbn61J/jTJQ0mOJHl/0756f4d6twLszg+9r2z+FvAG4BzgPuCKle7XMr7/x4BLBtr+HXBzs3wz8G+b5Sua8VkHbG/GbU2z7m7gF+jd7ezzwC+v9HsbcjzeDlwFPLAU4wH8M+C/Nsu7gU+v9HtehPH5HeC3Ztl2HMdnE3BVs3wB8M1mHFbt71AXZ/qv3ny9ql4AXrn5+jjbBRxolg8AN/S1315VJ6vqUeAocHWSTcCFVfXl6v0mfqJvn1Wlqr4IPDXQvJjj0f9anwWuXU3/K5pjfOYyjuNzvKq+2iw/CzxE717fq/Z3qIuhP9vN1zevUF9WQgFfSHJPc4N5gMuq6jj0fomBS5v2ucZqc7M82N4Vizker+5TVaeAp4GLl6zny+d9Sb7elH9eKV2M9fg0ZZc3A3exin+Huhj6p3Xz9Q57a1VdBfwycFOSt8+z7VxjNa5jOMx4dHGsbgN+BngTcBz4j0372I5PkvOB3wd+o6qemW/TWdrOqDHqYuiP9c3Xq+qJ5vEE8Af0yl1PNv+9pHk80Ww+11hNNcuD7V2xmOPx6j5J1gKv5/TLJWekqnqyql6qqpeB/0bvdwjGdHySnE0v8D9ZVZ9rmlft71AXQ39sb76e5LwkF7yyDPwd4AF6739Ps9ke4I5m+RCwuzl7YDuwA7i7+e/qs0muaWqL7+nbpwsWczz6X+vvA3/S1GxXrVfCrPH36P0OwRiOT/N+Pgo8VFW/27dq9f4OrfSn40vxA7yD3qfs3wI+sNL9Wcb3/QZ6Zw7cBxx55b3Tqw8eBh5pHjf27fOBZpwepu8MHWAnvX/s3wL+C83V26vtB/gUvRLFi/RmVDcu5ngA64HP0PvA7m7gDSv9nhdhfP4HcD/wdXqBtGmMx+dt9EotXwfubX7esZp/h/waBkkaI10s70iS5mDoS9IYMfQlaYwY+pI0Rgx9SRojhr4kjRFDX5LGyP8HiZGmP8niee4AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "from math import log\n", - "\n", - "def rang_freq(name, g):\n", - " freq = freq_list(g)\n", - "\n", - " plt.figure().clear()\n", - " plt.plot(range(1, len(freq.values())+1), freq.values())\n", - "\n", - " fname = f'02_Jezyki/{name}.png'\n", - "\n", - " plt.savefig(fname)\n", - "\n", - " return fname\n", - "\n", - "rang_freq('pt-words', get_words(pan_tadeusz))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Widać, jak różne skale obejmuje ten wykres. Zastosujemy logarytm,\n", - "najpierw tylko do współrzędnej $y$.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-words-log.png'" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "from math import log\n", - "\n", - "def rang_log_freq(name, g):\n", - " freq = freq_list(g)\n", - "\n", - " plt.figure().clear()\n", - " plt.plot(range(1, len(freq.values())+1), [log(y) for y in freq.values()])\n", - "\n", - " fname = f'02_Jezyki/{name}.png'\n", - "\n", - " plt.savefig(fname)\n", - "\n", - " return fname\n", - "\n", - "rang_log_freq('pt-words-log', get_words(pan_tadeusz))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "****Pytanie**** Dlaczego widzimy coraz dłuższe „schodki”?\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Hapax legomena\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Z poprzedniego wykresu możemy odczytać, że ok. 2/3 wyrazów wystąpiło\n", - "dokładnie 1 raz. Słowa występujące jeden raz w danym korpusie noszą\n", - "nazwę *hapax legomena* (w liczbie pojedynczej *hapax legomenon*, ἅπαξ\n", - "λεγόμενον, „raz powiedziane”, żargonowo: „hapaks”).\n", - "\n", - "„Prawdziwe” hapax legomena, słowa, które wystąpiły tylko raz w *całym*\n", - "korpusie tekstów danego języka (np. starożytnego) rzecz jasna\n", - "sprawiają olbrzymie trudności w tłumaczeniu. Przykładem jest greckie\n", - "słowo ἐπιούσιος, przydawka odnosząca się do chleba w modlitwie „Ojcze\n", - "nasz”. Jest to jedyne poświadczenie tego słowa w całym znanym korpusie\n", - "greki (nie tylko z Pisma Świętego). W języku polskim tłumaczymy je na\n", - "„powszedni”, ale na przykład w rosyjskim przyjął się odpowiednik\n", - "„насущный” — o przeciwstawnym do polskiego znaczeniu!\n", - "\n", - "W sumie podobne problemy hapaksy mogą sprawiać metodom statystycznym\n", - "przy przetwarzaniu jakiekolwiek korpusu.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Wykres log-log\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Jeśli wspomniany wcześniej wykres narysujemy używając skali\n", - "logarytmicznej dla ****obu**** osi, otrzymamy kształt zbliżony do linii prostej.\n", - "\n", - "Tę własność tekstów nazywamy ****prawem Zipfa****.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-words-log-log.png'" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "from math import log\n", - "\n", - "def log_rang_log_freq(name, g):\n", - " freq = freq_list(g)\n", - "\n", - " plt.figure().clear()\n", - " plt.plot([log(x) for x in range(1, len(freq.values())+1)], [log(y) for y in freq.values()])\n", - "\n", - " fname = f'02_Jezyki/{name}.png'\n", - "\n", - " plt.savefig(fname)\n", - "\n", - " return fname\n", - "\n", - "log_rang_log_freq('pt-words-log-log', get_words(pan_tadeusz))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Związek między frekwencją a długością\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Powiązane z prawem Zipfa prawo językowe opisuje zależność między\n", - "częstością użycia słowa a jego długością. Generalnie im krótsze słowo, tym częstsze.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-lengths.png'" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def freq_vs_length(name, g, top=None):\n", - " freq = freq_list(g)\n", - "\n", - " plt.figure().clear()\n", - " plt.scatter([len(x) for x in freq.keys()], [log(y) for y in freq.values()],\n", - " facecolors='none', edgecolors='r')\n", - "\n", - " fname = f'02_Jezyki/{name}.png'\n", - "\n", - " plt.savefig(fname)\n", - "\n", - " return fname\n", - "\n", - "freq_vs_length('pt-lengths', get_words(pan_tadeusz))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### N-gramy\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "W modelowaniu języka często rozpatruje się n-gramy, czyli podciągi o\n", - "rozmiarze $n$.\n", - "\n", - "Na przykład *digramy* (*bigramy*) to zbitki dwóch jednostek, np. liter albo wyrazów.\n", - "\n", - "| $n$|$n$-gram|nazwa|\n", - "|---|---|---|\n", - "| 1|1-gram|unigram|\n", - "| 2|2-gram|digram/bigram|\n", - "| 3|3-gram|trigram|\n", - "| 4|4-gram|tetragram|\n", - "| 5|5-gram|pentagram|\n", - "\n", - "**Pytanie:** Jak nazywa się 6-gram?\n", - "\n", - "Jak widać, dla symetrii mówimy czasami o unigramach, jeśli operujemy\n", - "po prostu na jednostkach, nie na ich podciągach.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### N-gramy z Pana Tadeusza\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Statystyki, które policzyliśmy dla pojedynczych liter czy wyrazów, możemy powtórzyć dla n-gramów.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[('k', 'o', 't'), ('o', 't', 'e'), ('t', 'e', 'k')]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def ngrams(iter, size):\n", - " ngram = []\n", - " for item in iter:\n", - " ngram.append(item)\n", - " if len(ngram) == size:\n", - " yield tuple(ngram)\n", - " ngram = ngram[1:]\n", - "\n", - "list(ngrams(\"kotek\", 3))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Zauważmy, że policzyliśmy wszystkie n-gramy, również częściowo pokrywające się.\n", - "\n", - "Zawsze powinniśmy się upewnić, czy jest jasne, czy chodzi o n-gramy znakowe czy wyrazowe\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3-gramy znakowe\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-3-char-ngrams-log-log.png'" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "log_rang_log_freq('pt-3-char-ngrams-log-log', ngrams(get_characters(pan_tadeusz), 3))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2-gramy wyrazowe\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/pt-2-word-ngrams-log-log.png'" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAX7ElEQVR4nO3deXhU9b3H8c93JpONhC0JawgBRBZBBKOCoLbWVqhU7GJrbb2trcVebWtbq60+7a23t3azm4/tbUuVaq3VolKLW60VqkIRDci+aCQgEJawhyX77/6RwGWZkCGZM+fMzPv1PDwmZ04mn3mCH375zlnMOScAQHCF/A4AADg1ihoAAo6iBoCAo6gBIOAoagAIuAwvnrSwsNCVlpZ68dQAkJIWL1680zlXFO0xT4q6tLRU5eXlXjw1AKQkM9vY1mOMPgAg4ChqAAg4ihoAAo6iBoCAo6gBIOAoagAIOIoaAAIuUEV930tv629Lt2jngTq/owBAYHhywktH1DY0aeaCSu051CBJGt4nX5POKNTEoYU6v7SnumQFJioAJJR5ceOAsrIy15EzE5uanVZu2af5FTu1oGKnyjfuUX1jszJCpnElPTTxjEJNGlqgs4u7KxIO1C8DANApZrbYOVcW9bEgFfWJahuaVL5hz9HiXlm1T85JeVkZumBQz9biLtTQXnkyszgkBwB/nKqoAz1PyI6ENWloSxlL0p6D9Vq4fpcWtBb3S2t3SJKK8rM06YxCXTikQJOGFqpvtxw/YwNAXAV6Rd2eTbsP6d/v7NT8il36d8VO7TpYL0kaXNRFk84o1IfH9tfYkh6e5wCAzkra0cfpaG52Wre9Rgsqdmp+xU4tWr9btY1N+syEUt12+TDejAQQaGlR1Cc6WNeoe15Yp4cWblC/bjn6wUdG65Izo17qFQB8d6qiTtlDJ7pkZeiuK8/SE1+coOxISJ+Z+bq+Pmup9rSORwAgWaRsUR9x7sCeevYrF+nLl56hOUur9P5fvKxnl2+VF79JAIAXUr6opZajR279wDDN+dIk9e2Wo5v/vEQ3PrxY2/fX+h0NANqVFkV9xMh+XfXXmy7UHVOG6+W3qnXZz1/WX954l9U1gEBLq6KWpIxwSDdeMkR//+rFGtm3q7755Ap96v5FenfXIb+jAUBUMRe1mYXN7E0ze8bLQIkyqLCLHv3CeN394VFasXmfrvrfBdpRwygEQPCczor6FklrvArih1DI9KkLBmr2TRfqYF2j7nhyBWMQAIETU1GbWbGkKyTd720cfwztna/bJw/XS2t3aFb5Jr/jAMBxYl1R/1LS7ZKa29rBzKabWbmZlVdXV8cjW0Jdf2Gpxg/uqe89vVqbdjOvBhAc7Ra1mU2VtMM5t/hU+znnZjjnypxzZUVFyXcGYChk+unVY2RmuvXxZWpuZgQCIBhiWVFPlHSlmW2Q9JikS83sT56m8klxj1z914dG6vXK3Zq5oNLvOAAgKYaids7d4Zwrds6VSrpG0lzn3Kc9T+aTq88t1mUjeusnL6zT29tr/I4DAOl3HHV7zEw//Mho5WVl6Guzlqqhqc2xPAAkxGkVtXPuX865qV6FCYqi/Cz94MOjtXLLft03t8LvOADSHCvqNkwe1UcfGdtfv55XoWWb9vodB0Aao6hP4btXnqVe+Vn62qylqm1o8jsOgDRFUZ9Ct5yI7vnYGK2vPqg7/7pCB+oa/Y4EIA1R1O2YNLRQN71niGYv2aKLfjxXv335HR2qp7ABJA5FHYPbJw/XUzdP1NnF3fWj59fq4p/M0/2vrmccAiAhUvaeiV4p37Bbv/jnW1pQsUu9u2bpS5cO1bXnlygcMr+jAUhiaXnPRK+UlfbUIzeM12PTx2tgzy76zlMrdc2Mhdqw86Df0QCkKIq6g8YPLtBfbhyvn109Ruu21Wjyva/owQWVXCMEQNxR1J1gZvroucX6x9cu0YTBBbrr6dX65O9f424xAOKKoo6DPt2yNfOz5+knHztbq6v2a+p9r2rvoXq/YwFIERR1nJiZPl42QA/fcIH21zbquRXb/I4EIEVQ1HE2pribhhR10VNLt/gdBUCKoKjjzMx01Tn99Xrlbm3Ze9jvOABSAEXtgWnn9JckzVla5XMSAKmAovZASUGuxpV011NvMv4A0HkUtUeuGttf67bXaM3W/X5HAZDkKGqPXDG6r8Ih401FAJ1GUXukIC9LFw8t1NNLqzhbEUCnUNQeumpsf1Xtq9XrG3b7HQVAEqOoPfT+kb2VmxnW3xh/AOgEitpDuZkZuvysPnp2+VbVNXLtagAdQ1F7bNo5/bS/tlH3/H0ds2oAHUJRe+zioUW69oIS3T+/Ujf/eYkO17OyBnB6KGqPhUKmu68apW9fMUJ/X7VN1/z+Ne2oqfU7FoAkQlEngJnphosG67efPldvbavRh+6brz8velcNTc1+RwOQBCjqBLr8rD56/IsT1Ldbju786wpd+rN/6fHyTfLivpUAUgdFnWCj+nfTX2+6UH/47HnqnpOp255Yrp/94y2/YwEIMIraB2am9w7vpTlfmqhrzhugX82r4FhrAG2iqH1kZvretFE6v7SnbntiuZZu2ut3JAABZF7MR8vKylx5eXncnzdV7TpQp2m/XqADdY06s1f+cY/lZoX1zcnDNaJvV5/SAUgEM1vsnCuL9hgr6gAoyMvSzM+ep3NLeigcsuP+rNyyTx/7zb81d+12v2MC8Akr6oDbtq9WN/zxDa2q2q/vTRul68YP9DsSAA+wok5ifbpla9aNE3TpsF76zlMr9buX3/E7EoAEY0WdJBqamvX1Wcv09LIq5WaGlZUR0revGKmPnlvsdzQAcXCqFXVGosOgYyLhkH75iXM0rqS7tuw5rMXv7tHtTy5XYX6WLjmzyO94ADxEUSeRcMh0/cRBkqSa2gZ9/Hev6fMPvqH87ON/jKP6d9MfP3e+zMyPmADijKJOUvnZET10/Xl6YH6lDjf8/xX5Nu0+pHnrqrVma41G9uOQPiAVtFvUZpYt6RVJWa37P+Gc+67XwdC+Xl2zdccHRxy3bdeBOp139z/1/MqtFDWQImI56qNO0qXOuTGSzpE02czGe5oKHVaQl6ULBhXo+ZXb/I4CIE7aLWrX4kDrp5HWP1zuLcCmjO6jih0HdMfs5Zr/9k6/4wDopJiOozazsJktlbRD0ovOuUVR9pluZuVmVl5dXR3nmDgdHxzdVwMLcjV7yRbd8tibOljX6HckAJ0QU1E755qcc+dIKpZ0vpmNirLPDOdcmXOurKiIw8X8VJiXpZdve68enT5euw7W6w8LKv2OBKATTuvMROfcXkn/kjTZizCIr3ElPXTZiN763SvrtfdQvd9xAHRQu0VtZkVm1r314xxJl0la63EuxMmtHzhTB+oa9btX1vsdBUAHxXIcdV9JD5lZWC3FPss594y3sRAvI/p21ZVj+mnm/EqVb9gtM9OXLz1DFw1lPAUki3aL2jm3XNLYBGSBR77xgWHaf7hBdY3NWrutRj99YR1FDSQRzkxMAwN65uoP158vSXpwQaXuenq1/rl6uwYVdZEkmaSSnrnKCHMxRSCIKOo089Fzi3XPC+t0wx+Pv7rhjZcM1h1TRrTxVQD8RFGnmfzsiP5y4wS9U33g6LaHF27UnKVV+ublwxUKcSEnIGgo6jQ0qn83jerf7ejnjU1Otz6+THc/t0a3XT5M2ZGwj+kAnIihJHTZyN7KzAjpgfmVenLJZr/jADgBRQ11y4lo8bcvU/fciOat3eF3HAAnYPQBSS2z6w+d3U9PLN6s+1+NfnJMyExTx/RVr/zsBKcD0htFjaM+OLqv/rRoo77/7Jo299my97C+M3VkAlMBoKhx1IQhBVr935PV0Nwc9fH/eOB1rdi8L8GpADCjxnFyMsPqmh2J+mdMcTetrNqnV9+uVkNT9DIHEH8UNWJWVtpTh+qbdN0Dr2vO0iq/4wBpg6JGzK4Y3VfPfeUi5UTCWlnFCARIFIoaMQuFTCP7ddWZvfP01vYav+MAaYOixmkb1idfC9/ZpbLvv6hL7pmnbftq/Y4EpDSO+sBp+9ykQcrKCGvv4QY9vaxKb767R1NG9/U7FpCyKGqctuF9uup/rhqlA3WNenpZlSp3HfQ7EpDSKGp0WF5WhnrlZ6l8wx79+52dkqQumRk6u7ibzLgKHxAvFDU6ZViffM1du0Nzj7lGyOybLtS4kh4+pgJSC0WNTrn3mrFHjwDZUVOnrzz6piqrD1LUQBxR1OiUnl0yNX5wgSSptqFJklS197CfkYCUQ1EjbrIjYRXmZWrJu3s0b93Jl0sdUpinkoJcH5IByY2iRlwNLsrTvHXVmreu+qTHBhV20bxvvCfxoYAkR1EjrmZcd64qd558uN7DCzfq2RVb5ZzjiBDgNFHUiKvuuZkaW5J50vbXK3dr9ptbdLC+SXlZ/LUDTgenkCMhCvKyJEm7DtT5nARIPixtkBAFeS2r7A/e+6rCoeNHH5FwSL+6dpwmDCnwIxoQeBQ1EmL8oALd/N4hOljXdNz2pmanh1/bqBVb9lLUQBsoaiRETmZYt10+/KTtzjk9smij9h9u9CEVkByYUcNXZqb87Ihqahv8jgIEFitq+C4/O0Pb9tdq0+5DJz2WFQmpV362D6mA4KCo4buCLpl6YdV2vbBqe9THH5s+/uhp6kA6oqjhu3uuHqNlm/aetH33wXr98Pm1XDsEaY+ihu/O7J2vM3vnn7R9x/5a/fD5tTpU3xTlq4D0wZuJCKyczLAk6TBFjTRHUSOwciItRc2KGumO0QcCKyMcUmY4pFnlm7Rw/c7jHouEQ/qvqSM1NMrIBEg17a6ozWyAmc0zszVmtsrMbklEMECSrpswUP175KjZ6eif+sZmvfr2Ti1cv8vveEBCxLKibpR0q3NuiZnlS1psZi8651Z7nA3Qd6aOPGlbTW2DRt/1D9U3NvuQCEi8dlfUzrmtzrklrR/XSFojqb/XwYC2ZGW0zK7rKGqkidN6M9HMSiWNlbTIkzRADCLhlqvv1TXwJiPSQ8xFbWZ5kp6U9FXn3P4oj083s3IzK6+uPvk2TEC8mJmyMkKqa2JFjfQQ01EfZhZRS0k/4pybHW0f59wMSTMkqayszMUtIRBFVkZIL67arqq9tcdtN0mfnViqcSU9/AkGeKDdoraWG9w9IGmNc+7n3kcC2nf5WX20eOMerdqy77jtG3YdVPfcCEWNlBLLinqipOskrTCzpa3b7nTOPedZKqAd91w9Jur28+7+pxqa+IUOqaXdonbOzVfLb5RA4EVCpgZm10gxnEKOlJIRDqmRokaKoaiRUjLCxugDKYeiRkqJhEKMPpByuCgTUkokw7Riyz7d9viyU+5nJl17wUCdM6B7YoIBnUBRI6VMOqNIc5Zu0YKKnafcb9v+WoVDIYoaSYGiRkr51pTh+taU4e3uN/FHcxmRIGkwo0ZaioQ5jA/Jg6JGWsrMCHGZVCQNihppKRLm6BAkD4oaaSkSDqme462RJChqpKXMcEgNjD6QJDjqA2kpkmHavr9OL63ZHtP+oZBp/KAC5WSGPU4GnIyiRlrq2SVLCyp26fMPlcf8NXdMGa4bLxniYSogOooaaenHHx2tL1w0KOb9p/16gQ7WNXqYCGgbRY20lJuZobOLu8e8f9hMjc28+Qh/8GYiEINwyNTkKGr4g6IGYhAOmZpZUcMnFDUQg7CZOD8GfqGogRiEw6amZpoa/qCogRiEjRk1/ENRAzEIhRh9wD8cngfEIGymmtoGbd13+LS/tmeXTGVlcEYjOo6iBmKQkxnWM8u36pnlW0/7a88v7alZX5zgQSqkC4oaiMEvP3GO1mzdf9pf99gbm7S9ptaDREgnFDUQgzEDumtMB+6v+Hrlbr2xsS7+gZBWeDMR8JCZiaP60FkUNeChkEmOw/rQSRQ14CGuEYJ4oKgBD5mZuEQIOouiBjzE6APxQFEDHgqxokYcUNSAh8IhUxNNjU6iqAEPmUnNjD7QSRQ14KGQmehpdBZFDXgoxIoaccAp5ICHMsIhHapv0hl3Ptfp5xozoLue/M8L45AKyYaiBjx0zXkDlBGyTq+qF1Ts0uqq078oFFJDu0VtZjMlTZW0wzk3yvtIQOoYWNBFt35gWKefp7FpTYeu3ofUEMuM+kFJkz3OAeAUzExMutNXu0XtnHtF0u4EZAHQBuMMx7QWt6M+zGy6mZWbWXl1dXW8nhaAjhw94ncK+CVuRe2cm+GcK3POlRUVFcXraQHoyPHYNHW64jhqIAmYWFGnM4oaSAJmJok5dbpqt6jN7FFJCyUNM7PNZvZ572MBOFboaFH7HAS+aPc4aufcJxMRBEDbQi09rWbnFJL5GwYJx+gDSAJ2tKj9zQF/UNRAEjg6o+a0l7REUQNJgBl1eqOogSRgx8yokX4oaiAJhJhRpzWKGkgCIY6jTmsUNZBEWFGnJ24cACSBIyvq+19dr+xIOGHf96x+XfWeYb0S9v0QHUUNJIGBBbkKmXTf3IqEft8+XbP12p3vS+j3xMkoaiAJvG9Eb637/pSEHvVx15xVenH19oR9P7SNogaSRCSc2LeUWi6tmtBviTbwZiKAqMzEeZABQVEDiMrEzQqCgqIGEBUr6uCgqAFEZeLaIkFBUQOIyrhPY2BQ1ADaRE0HA0UNICoz0dQBQVEDiMpk9HRAUNQAojLjan1BQVEDQMBR1ACiYkQdHBQ1gKhaRh9+p4BEUQNog5lx1/OAoKgBRMWZicFBUQOIjmt9BAZFDSAqo6kDg6IGEFXL1fNo6iCgqAFExYw6OChqAFFxPergoKgBRMUdXoKDogbQJmo6GChqAFFxZmJwUNQAojK/A+AoihpAdNZS1cyp/UdRA4jqyIqanvYfRQ0gKmP2ERgxFbWZTTazdWZWYWbf8joUAP9Z65qaBbX/2i1qMwtL+rWkKZJGSvqkmY30OhgAfx1ZUTOj9l9GDPucL6nCObdekszsMUnTJK32MhgAfx2ZfEy+91WOAIlRj9xMzfrihLg/byxF3V/SpmM+3yzpghN3MrPpkqZLUklJSVzCAfDP+8/qrXXba9TMijpmXbMjnjxvLEUd7R/Tk35yzrkZkmZIUllZGT9ZIMkN79NVv7p2nN8xoNjeTNwsacAxnxdLqvImDgDgRLEU9RuShprZIDPLlHSNpDnexgIAHNHu6MM512hmX5L0gqSwpJnOuVWeJwMASIptRi3n3HOSnvM4CwAgCs5MBICAo6gBIOAoagAIOIoaAALOvDiP38yqJW3s4JcXStoZxzhBwmtLXqn8+nhtwTDQOVcU7QFPirozzKzcOVfmdw4v8NqSVyq/Pl5b8DH6AICAo6gBIOCCWNQz/A7gIV5b8krl18drC7jAzagBAMcL4ooaAHAMihoAAi4wRZ3KN9A1swFmNs/M1pjZKjO7xe9M8WZmYTN708ye8TtLPJlZdzN7wszWtv784n+fJZ+Y2dda/z6uNLNHzSzb70ydYWYzzWyHma08ZltPM3vRzN5u/W8PPzN2VCCKOg1uoNso6Vbn3AhJ4yXdnGKvT5JukbTG7xAeuFfS351zwyWNUYq8RjPrL+krksqcc6PUcgnja/xN1WkPSpp8wrZvSXrJOTdU0kutnyedQBS1jrmBrnOuXtKRG+imBOfcVufcktaPa9TyP3t/f1PFj5kVS7pC0v1+Z4knM+sq6WJJD0iSc67eObfX11DxlSEpx8wyJOUqye/c5Jx7RdLuEzZPk/RQ68cPSboqkZniJShFHe0GuilTZMcys1JJYyUt8jlKPP1S0u2Smn3OEW+DJVVL+kPrWOd+M+vid6h4cM5tkfRTSe9K2ippn3PuH/6m8kRv59xWqWXBJKmXz3k6JChFHdMNdJOdmeVJelLSV51z+/3OEw9mNlXSDufcYr+zeCBD0jhJv3HOjZV0UEn6q/OJWme10yQNktRPUhcz+7S/qdCWoBR1yt9A18wiainpR5xzs/3OE0cTJV1pZhvUMrK61Mz+5G+kuNksabNz7shvP0+opbhTwWWSKp1z1c65BkmzJV3ocyYvbDezvpLU+t8dPufpkKAUdUrfQNfMTC1zzjXOuZ/7nSeenHN3OOeKnXOlavm5zXXOpcTKzDm3TdImMxvWuul9klb7GCme3pU03sxyW/9+vk8p8kbpCeZI+kzrx5+R9Dcfs3RYTPdM9Foa3EB3oqTrJK0ws6Wt2+5svRclgu3Lkh5pXUCsl3S9z3niwjm3yMyekLRELUclvakkP93azB6V9B5JhWa2WdJ3Jf1I0iwz+7xa/nG62r+EHccp5AAQcEEZfQAA2kBRA0DAUdQAEHAUNQAEHEUNAAFHUQNAwFHUABBw/wcY9f49CGLKnAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "log_rang_log_freq('pt-2-word-ngrams-log-log', ngrams(get_words(pan_tadeusz), 2))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Tajemniczy język Manuskryptu Wojnicza\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[Manuskrypt Wojnicza](https://pl.wikipedia.org/wiki/Manuskrypt_Wojnicza) to powstały w XV w. manuskrypt spisany w\n", - "tajemniczym alfabecie, do dzisiaj nieodszyfrowanym. Rękopis stanowi\n", - "jedną z największych zagadek historii (i lingwistyki).\n", - "\n", - "![Źródło: Wikipedia Commons](./02_Jezyki/voynich135.jpg)\n", - "\n", - "Sami zbadajmy statystyczne własności tekstu manuskryptu. Użyjmy\n", - "transkrypcji Vnow, gdzie poszczególne znaki tajemniczego alfabetu\n", - "zamienione na litery alfabetu łacińskiego, cyfry i gwiazdkę. Jak\n", - "transkrybować manuskrypt, pozostaje sprawą dyskusyjną, natomiast wybór\n", - "takiego czy innego systemu transkrypcji nie powinien wpływać\n", - "dramatycznie na analizę statystyczną.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'9 OR 9FAM ZO8 QOAR9 Q*R 8ARAM 29 [O82*]OM OPCC9 OP'" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import requests\n", - "\n", - "voynich_url = 'http://www.voynich.net/reeds/gillogly/voynich.now'\n", - "voynich = requests.get(voynich_url).content.decode('utf-8')\n", - "\n", - "voynich = re.sub(r'\\{[^\\}]+\\}|^<[^>]+>|[-# ]+', '', voynich, flags=re.MULTILINE)\n", - "\n", - "voynich = voynich.replace('\\n\\n', '#')\n", - "voynich = voynich.replace('\\n', ' ')\n", - "voynich = voynich.replace('#', '\\n')\n", - "\n", - "voynich = voynich.replace('.', ' ')\n", - "\n", - "voynich[100:150]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_8747/6903746.py:14: UserWarning: Glyph 9 (\t) missing from current font.\n", - " plt.savefig(fname)\n" - ] - }, - { - "data": { - "text/plain": [ - "'02_Jezyki/voy-chars.png'" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/lib/python3.10/site-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 9 (\t) missing from current font.\n", - " fig.canvas.print_figure(bytes_io, **kw)\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "rang_freq_with_labels('voy-chars', get_characters(voynich))" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/voy-log-log.png'" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "log_rang_log_freq('voy-log-log', get_words(voynich))" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/voy-words-20.png'" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "rang_freq_with_labels('voy-words-20', get_words(voynich), top=20)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/voy-words-log-log.png'" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAcd0lEQVR4nO3deXzV5Z328c/3LNkXloRIwhLZRHYwsio4SitVtFaty9NS2zql9bFUHVttp9NOp+3Y2lZKndqp1O1x7ShaOypQcCkoKBr2fd8iwSQgBAhkvZ8/EqggISckJ7/fybnerxcvknNOjpcHcnHnPvfvvs05h4iI+FfA6wAiInJmKmoREZ9TUYuI+JyKWkTE51TUIiI+F4rGk2ZlZbn8/PxoPLWISLu0dOnSMudc9unui0pR5+fnU1hYGI2nFhFpl8xsZ2P3aepDRMTnVNQiIj6nohYR8TkVtYiIz6moRUR8TkUtIuJzKmoREZ/zVVE/+MZmVhcd9DqGiIiv+KaoD1RU8dz7u/jCHxbx+zc3U1unfbJFRMBHRd0hJYE5d1zMpEHn8Jt5m7jx4XfZvb/C61giIp7zTVFDfVn/183DmXHjMDbuPcSkGQt5vnA3OoVGROKZr4oawMy4Zngec+68mEF5mdwzaxXfenop+49UeR1NRMQTvivq47p1TOHZb4zmB5/rz5sbSrh8xkL+vrHE61giIm3Ot0UNEAwY35zQm7/efhEdU8J89fEP+PFf13C0qtbraCIibcbXRX3cgNwM/vfbF/H1cefy5Ls7mfxfb7PmQy3jE5H4EFFRm1kHM5tlZhvMbL2ZjYl2sFMlhYP8+KoBPH3rKI5U1nLNQ4t46K0tWsYnIu1epCPq3wFznXP9gaHA+uhFOrOL+mYx986LuXzQOfz6bxu1jE9E2r0mi9rMMoDxwKMAzrkq59yBKOc6ow4pCfz+5uH89sahbNx7iM/97m1e0DI+EWmnIhlR9wJKgcfNbLmZPWJmqac+yMymmlmhmRWWlpa2etDT/Pf4wvBuzLnzYgbmZvC9Wau47ellWsYnIu1OJEUdAkYA/+2cGw4cAb5/6oOcczOdcwXOuYLs7NOezxgVn1zG98aGj7h8xkIWbIr+PxQiIm0lkqIuAoqcc0saPp9FfXH7xvFlfC/fPo6OKWFueex9/l3L+ESknWiyqJ1ze4HdZnZew02XAeuimuosDczNPLGM7/9pGZ+ItBORrvqYBjxjZquAYcB9UUvUQlrGJyLtjUVjpURBQYErLCxs9edtrgMVVfzw5TW8tqqYC/M7Mv2GYXTvlOJ1LBGRTzGzpc65gtPdFxNXJp6tTy7j21Bcv4zvqXd3UHqo0utoIiIRa9cj6k8q+riCu59fyZLt+wE4LyedsX06M653FqN6dSI9KexxQhGJZ2caUcdNUQPU1TlWf3iQxVv3sXhrGe9v309lTR3BgDGkWyZje9cX94ieHUkKB72OKyJxREXdiMqaWpbtPMDirWUs2lLGyqKD1NY5EkMBCvI7MrZ3FmN7d2ZwXiahYLueJRIRj6moI3ToWDXvb9/Poi31I+4New8BkJ4YYuS5nejROYWcjCS6pCfSJT2JnIz63zOSQ5iZx+lFJJadqahDbR3Gz9KTwlx2fg6XnZ8DQNnhShZv3ce7W8v4YMfHvLdtH0dOcxFNYihAl4xEctKTyMlIok+XNAbmZjAwL5PczCSVuIi0iEbUzXS4soaS8mOUHKrko/JjlB6qPPFxSXkle8uPsXPfEY4v2+6YEmZgbiYDczMYkJvB0G4dyM/61FYpIhLnNKJuRWmJIdKy0+iVndboY45W1bJ+bzlr95Sz9sODrN1TzuOLdlBVWwfAT64awFfHndtWkUUkxqmooyA5IciIHh0Z0aPjiduqa+vYUnKYB+Zt5GevradfTjpj+2R5mFJEYoWWMrSRcDDA+V0zmHHTcHplpXL7s8t04IGIRERF3cbSEkPM/EoBNXWOqU8t1Q5/ItIkFbUHzs1K5cGbh7Nhbzn3vLhKJ9OIyBmpqD3yT+d14XuXn8crK/cwc+E2r+OIiI+pqD1024TeXDm4K/fP3aBTaUSkUSpqD5kZv/7iEPrlpDPt2WXsKDvidSQR8SEVtcdSEkL86SsFBALGFQ++zXdfWMmSbfs0by0iJ2gdtQ9075TCC98cw2OLtvPKymJmLS0iv3MK11/QjauH5pGZfPIWrIEAJIeD2ihKJE7oEnKfqaiqYe6avTxfuJv3tu0/42MTggGSE4KkJARJTgiSHK7/uEenVCae34WL+2WTlqh/i0VigXbPi1G79lWwYFMJ1bUn/xnV1jmOVtdSUVXL0aqa+t+razlaVX/b+r3lHKioJiEY4IKeHcnPSqFrZjLnZCSRmRImPSlEz86p5HVI9uj/TEROpb0+YlSPzilMGZPf7K+rqa1j6c6PeWNDCe9t28f8dSWUHT75+LFQwLj/uiFcd0G3VkorItGiom6HQsEAo3p1ZlSvziduq6yppaS8kvJj1Rw8Ws1Db23h7hdWUna4kqnje2krVhEfU1HHicRQ8KQT2C/o2ZG7n1/JL+ZsoOxwJf96xfkqaxGfiqiozWwHcAioBWoam0eR2JEYCvLgTcPpnJrAn97ezrHqOv7j6oEEAiprEb9pzoj6n5xzZVFLIm0uEDB+cvVAkhKCPLxgG5U1tfzy2iEqaxGf0dRHnDMzvj+pf/0I+43NZCSF+bfJA7yOJSKfEGlRO2CemTngYefczFMfYGZTgakAPXr0aL2EEnVmxl0T+1J+tJpH3tlOTkYS3xjfy+tYItIgonXUZpbrnNtjZl2A+cA059zCxh6vddSxqa7OMe255by2uphLzsvmMwNyyO2QTMCMgp4dSdXFMyJR0+J11M65PQ2/l5jZX4CRQKNFLbEpEDCm3ziUnp1TeHVVMT/8y5oT9/Xtksajt1xIj84pZ3gGEYmGJkfUZpYKBJxzhxo+ng/81Dk3t7Gv0Yg69jnn2FZ2hPKj1RQfPMYPXlpNMGBcPTSXvA7JhIJGh5Qw4/tm0zkt0eu4IjGvpSPqHOAvDWtsQ8CzZyppaR/MjN4NJ60PB/qfk869L67ihcLdHPnE8WFmMKJHRz47IIebLuxBZkq4kWcUkbOlvT6kWZxzlB+rwTlH0cdHeX39R7y+/iPWfFhOemKIX1w3mMlDcr2OKRJztCmTRN26PeXc9T8rqKqt4827J+gqR5FmOlNRa0NjaRUDcjO4ZWw+28uOsK643Os4Iu2KilpazeUDcwgGjNmri72OItKuqKil1XROS2R0r068uqqYLSWHvY4j0m6oqKVV3XRhD3buq2Di9AU89s52r+OItAsqamlVVw3N5Y27JzAyvxN/XLCVqpo6ryOJxDwVtbS63tlp3HZJb0oOVTJnjearRVpKRS1RMaFfNr2yUvnNvI1s+uiQ13FEYpqKWqIiEDB+/cUhHK2q44rfvc2ND7/L9rIjXscSiUkqaomaC3p2YvZ3LuIb43uxYe8hvvPccqprNWct0lwqaomqLhlJ3DupP7+8djCrPzzIF/6wiJkLt7J7f4XX0URihi4hlzbzzJKdPPf+LtZ8WH/l4pBumYzp1Zl+OelcOyJPl51LXGvxftQireFLo3rypVE92bWvgtlripm9uphH39lOTZ2j7HAl35zQ2+uIIr6kEbV4qq7OMe3Py3ltVTFfGtWDaZf25ZzMJK9jibQ5jajFtwIBY8aNw8hJT+KJxdt5vnA3Vw3J5Z8v7sWA3Ayv44n4gkbU4hu79lXw2KL6sq6oqiUhGCAzJcyjtxQwpFsHr+OJRJX2o5aYcrCimpeWF1FyqJIXlxbRISXMH798Ab0aTpwRaY9U1BKzFmwq5fZnlnG0upbBeZn8/JpBDMrL9DqWSKvTwQESsyb0y+at717CV8fms2L3Af7t5TXa6EnijopafC87PZEfTR7AA18cyordB+j/oznc+eflHKyo9jqaSJvQqg+JGddd0I2s9ERmryrmxWVFrNh9gNe+czGpifprLO2bRtQSUyb0y+b+64fw5NdHsnN/Bb+Zt9HrSCJRp6KWmDS2TxZTRvfkicU7WLbrY6/jiERVxEVtZkEzW25mr0YzkEik7pnUn3Mykrj2D4v5xZz11NW1/gomET9ozoj6DmB9tIKINFdaYohHb7mQS/t34eEF27j92WVsLdWhutL+RFTUZtYNuBJ4JLpxRJpnQG4Gj95SwL2T+jNnzV4mTl/At59dxtGqWq+jibSaSEfUM4B7gEYXsJrZVDMrNLPC0tLS1sgmEhEz47ZLejPnjou5uG82r64q5v8+s5TDlTVeRxNpFU0WtZlNBkqcc0vP9Djn3EznXIFzriA7O7vVAopE6vyuGTz59ZFMPL8Lb20s5banl7J4axk1OlVGYlwkI+pxwNVmtgP4M3CpmT0d1VQiLfDILRfyq+uH8PbmMv7Pn5bwvVmriMZWCSJtpVl7fZjZJcB3nXOTz/Q47fUhfrC97Aj/88Fu/rhgK326pDHvzvEEAjpFRvxJe31IXDo3K5V7Lj+Pa4fnsaXkMIu37vM6kshZaVZRO+f+3tRoWsRPAgHjvmsH0zUziS8/uoTp8zayYvcBr2OJNItG1NLuJYWDPHXrSHp0SuHBN7dwzUOLmPLoEtbtKfc6mkhEtJuNxIU+XdKZ/y/jWbunnAff2MzfN5YC63nq1lFeRxNpkkbUEjcSQ0FG9OjIE18byVfG9OTtzWX8/NV1uvRcfE9FLXFp2qV96ZWVyiPv1J/RKOJnKmqJS9npifztrvHkdUjmhaVFXscROSMVtcStcDDAVUNzWbrzY15f95HXcUQapaKWuHbzyO4APPXeTo+TiDRORS1xrWfnVK4amsuCTaX8+f1drNx9gGPV2nlP/EXL8yTu3XP5ecxdU8z3X1oNwJWDu3LDhd0ZmJtBVlqix+lEVNQidO+Uwpt3X8KWksM8X7ib11YX89rqYrqkJ/Ly7ePI7ZDsdUSJc83alClS2pRJYtWx6lrWFZczd81eZi7cRkZSiLl3jldZS9RpUyaRCCWF6y+KuXdSf6aM7kn5sRq+8WQh64t1ubl4R0UtchrBgPGTqwdy88gerN1Tzud/v4iDFdVex5I4paIWaUQwYPzs8wP53U3DqKqt47kPdulyc/GEilrkDELBAJOH5NIxJcwv52xgxhubvY4kcUhFLdKEYMB46tZRJIeDPPjGZsoOV3odSeKMilokAoPyMvnPLwwC4BezN3icRuKNilokQtcMyyMzOcwbGz7i315ezY//uoaNew95HUvigIpaJEKBgPGr64cQDgaYs3ovT7+3k/tmr2fe2r3sP1LldTxpx3RlokgzXD7wHC4feA4A33pqKXPX7mXBplKuHZHH9BuGeRtO2i2NqEXO0vQbh/LqtIsY16czLy37kH4/nMMjb2/zOpa0QxpRi5yllIQQg/Iy+eEVA3h11R7+umIPTyzewY59R+iUksAdE/sRDJjXMaUdaLKozSwJWAgkNjx+lnPu36MdTCRWDMjNYEBuBulJYR55ext/XbGHQ8dqGNq9A2N6dyYlQeMhaZkmN2UyMwNSnXOHzSwMvAPc4Zx7r7Gv0aZMEs+2lR7m0gcWAND/nHTm3jne40QSC1q0KZOrd7jh03DDL11HK9KIXtlpPPbVAj436Bw27D3EY+9s9zqSxLiI3kw0s6CZrQBKgPnOuSWnecxUMys0s8LS0tJWjikSWy7tn8PXLzoXgJ+9tk57hEiLRFTUzrla59wwoBsw0swGneYxM51zBc65guzs7FaOKRJ7LszvxH1fGIxz0P/Hc1m6c7/XkSRGNWt5nnPuAPB3YFI0woi0N1cO7sodl/WlqqaOJxbrAF05O00WtZllm1mHho+TgYmANjsQiUBmSpg7J/YF4JWVeyj6uMLjRBKLIhlRdwXeMrNVwAfUz1G/Gt1YIu2HmTHjxmEA/Hb+Zp4v3O1tIIk5TS7wdM6tAoa3QRaRdmtcnyw6pSbw0vIiXlxWxJWDu5KaqPXVEhldQi7SBrLTE1n2o8/wwBeHAnDPrFXcN3s9NbV1HieTWKB/0kXa0LDuHeiVncq72/ax/0gVVw/NZVBeptexxOdU1CJtqFd2Gm/efQmFO/Zz/R/f5bfzN9ElI4l+OWl8bdy5XscTn1JRi3igT5c0+nRJY9WHB6nYto8jVbVMGd2TUFCzkfJpKmoRD3RISeD1f5kAwBOLtvOTV9bx8MJtJIWDJIYCXDeiG8kJQY9Til+oqEU81i8nHTP49d82nritU2oCVwzu6mEq8RMVtYjHxvbJYs1PLqemzlF2uJLLHljA9rIjHKyoJjMl7HU88QFNiIn4QGpiiMzkMHkdkgkGjF//bSMX/Hw+ew8e8zqa+ICKWsRHksJBnvr6SG696Fxq6hzFB496HUl8QEUt4jNj+2QxaVD9AbozXt/MvbNWsbrooMepxEuaoxbxod7ZafTLSWPTR4d4e3MpCaEAg7vpwph4paIW8aFOqQnMu6t++d5F97/JkaoajxOJl1TUIj6XmhDitVXFvLt1H8N7dOAPX7rA60jSxjRHLeJz0y7rw+eH5ZKZHObvG3XMXTxSUYv43OQhufzq+qF8dkAOR6trcU7nL8YbFbVIjEhOCOEcXPifrzPqvtd5c8NHXkeSNqI5apEYMXlIV4oPHqWmzvHskl2s2HWAS/vneB1L2oCKWiRGdO+Uwk8/PwiAF5cWUVmjQwfihYpaJAYlhYO8uaGEAxXVACQnBLlrYj/tDdJOqahFYtCEftm8v30/CzaVUlNXR9nhKkb36sSkQdpxrz1SUYvEoAdv/sd507v3V3Dxr97i0DFdFNNeadWHSIxLT6ofbx2uVFG3V00WtZl1N7O3zGy9ma01szvaIpiIRCY1sb6o75+7geE/nceIn83nxaVFHqeS1hTJiLoGuNs5dz4wGrjdzAZEN5aIRCocDPAfVw/khoLuXDU0l6NVtSzd9bHXsaQVNTlH7ZwrBoobPj5kZuuBPGBdlLOJSIRuGZt/4uO3NpZwtKrWuzDS6po1R21m+cBwYMlp7ptqZoVmVlhaqv0IRLySEg5Rod322pWIV32YWRrwInCnc6781PudczOBmQAFBQXajEDEI8kJQZZs38/NM987cVtWeiLTbxhKOKj1A7Eooj81MwtTX9LPOOdeim4kEWmJ60bk0a9LOrV1jto6x0flx3hl5R6dvxjDmhxRm5kBjwLrnXPTox9JRFpiyph8pozJP/H5Kyv3MO255Ryr1rx1rIpkRD0OmAJcamYrGn5dEeVcItJKEkP13+baGyR2RbLq4x3A2iCLiERBUjgIoBF1DNMl5CLt3PGi/trjHxAOnfxD9F0T+540TSL+pKIWaeeGdMvktkt6c/iUvUBeXv4hy3YdYMoYj4JJxFTUIu1cUjjIvZP6f+r2xVvLqKrVvHUs0KJKkTgVDgao1huMMUFFLRKnEkIBjahjhKY+ROJUOBjg4yNVrNh94FP3dc1MIicjqe1DyWmpqEXiVEZSiLc2lnLNQ4s+dV+n1ASW/egzHqSS01FRi8Sp+68bwto9n9q2hxeXFTF7dbEHiaQxKmqRONUlI4kup5neWLH7AHUO6uocgYCudfMDvZkoIicJB+vLudZpE0y/UFGLyEmCgfpaqK1TUfuFilpEThJqmO6oUVH7huaoReQkwYaiLtyx/8QJ56fqnZ1Gh5SEtowV11TUInKS4+X81cc/aPQx4/p05pl/Ht1WkeKeilpETnLN8Dy6dUyhupGrFh+Yv4mDR6vbOFV8U1GLyEnCwQBjendu9P6n3tvJ7v0VbZhI9GaiiDRLKGBaEdLGVNQi0ixBFXWbU1GLSLOEAqale21MRS0izRIMBDSibmMqahFplvoRtfaxbkta9SEizRIMGseq61i26+MmH9spJYH8rNQ2SNW+NVnUZvYYMBkocc4Nin4kEfGz9KQQB49Wc+0fFjf52IDBsh99RlcxtlAkI+ongN8DT0Y3iojEgmmX9mVs7yxcE7vrLdxUxmOLtnO4skZF3UJNFrVzbqGZ5bdBFhGJAWmJISb0y27ycaWHKgHQbqktpzcTRSQqjm/upBUiLddqRW1mU82s0MwKS0tLW+tpRSRGnShqDalbrNWK2jk30zlX4JwryM5u+sciEWnfAlZf1HUaUbeYpj5EJCqOj6jV0y3XZFGb2XPAu8B5ZlZkZrdGP5aIxLrj5+JqjrrlIln1cXNbBBGR9uXE1IfmqFtMUx8iEhVa9dF6VNQiEhWBgEbUrUVFLSJRoamP1qNNmUQkKoINRf3kuzuZv67krJ4jr2MyU0b3bM1YMUlFLSJR0b1TMh1TwsxZs/esvr62zlFb57hmWC7pSeFWThdbVNQiEhU9O6ey/MefPeuvf+yd7fz01XVo62vNUYuITx1fh+3QHLeKWkR8yUxXNh6nohYRXzoxotaqERW1iPiURtQnqKhFxJc0ov4HFbWI+JJR39SqaRW1iPjU8RG1rmxUUYuIT9mJqQ9vc/iBilpEfMm0V8gJKmoR8aWGAbVG1KioRcSnju++p6JWUYuIT5neTDxBRS0ivnRiRO1xDj9QUYuIL2lE/Q8qahHxJdMc9QkqahHxJV1C/g8qahHxpeOXkGtTpgiL2swmmdlGM9tiZt+PdigRER0c8A9NFrWZBYGHgM8BA4CbzWxAtIOJSHw78WaijuKK6MzEkcAW59w2ADP7M/B5YF00g4lIfDv+ZuK3nl5KYig2Zmk7piTw/LfGtPrzRlLUecDuT3xeBIw69UFmNhWYCtCjR49WCSci8euCnh25dkQex6prvY4SsYwonZYeSVHbaW771KSRc24mMBOgoKBAk0oi0iJZaYlMv2GY1zF8IZKfJ4qA7p/4vBuwJzpxRETkVJEU9QdAXzM718wSgJuA/41uLBEROa7JqQ/nXI2ZfRv4GxAEHnPOrY16MhERASKbo8Y5NxuYHeUsIiJyGrGx5kVEJI6pqEVEfE5FLSLicypqERGfs2hsIWhmpcDOs/zyLKCsFeO0F3pdGqfX5vT0ujTOj69NT+dc9unuiEpRt4SZFTrnCrzO4Td6XRqn1+b09Lo0LtZeG019iIj4nIpaRMTn/FjUM70O4FN6XRqn1+b09Lo0LqZeG9/NUYuIyMn8OKIWEZFPUFGLiPicb4paB+ienpl1N7O3zGy9ma01szu8zuQnZhY0s+Vm9qrXWfzEzDqY2Swz29Dwd6f1z4eKQWZ2V8P30Roze87MkrzOFAlfFLUO0D2jGuBu59z5wGjgdr02J7kDWO91CB/6HTDXOdcfGIpeI8wsD/gOUOCcG0T9ts03eZsqMr4oaj5xgK5zrgo4foBu3HPOFTvnljV8fIj6b7g8b1P5g5l1A64EHvE6i5+YWQYwHngUwDlX5Zw74Gko/wgByWYWAlKIkdOq/FLUpztAV2V0CjPLB4YDSzyO4hczgHuAOo9z+E0voBR4vGFa6BEzS/U6lNeccx8CvwF2AcXAQefcPG9TRcYvRR3RAbrxzMzSgBeBO51z5V7n8ZqZTQZKnHNLvc7iQyFgBPDfzrnhwBEg7t/3MbOO1P+kfi6QC6Sa2Ze9TRUZvxS1DtA9AzMLU1/SzzjnXvI6j0+MA642sx3UT5VdamZPexvJN4qAIufc8Z+8ZlFf3PFuIrDdOVfqnKsGXgLGepwpIn4pah2g2wgzM+rnGtc756Z7nccvnHM/cM51c87lU//35U3nXEyMjqLNObcX2G1m5zXcdBmwzsNIfrELGG1mKQ3fV5cRI2+yRnRmYrTpAN0zGgdMAVab2YqG2/614RxLkcZMA55pGPhsA77mcR7POeeWmNksYBn1q6mWEyOXkusSchERn/PL1IeIiDRCRS0i4nMqahERn1NRi4j4nIpaRMTnVNQiIj6nohYR8bn/D2zTRLc1/1QcAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "log_rang_log_freq('voy-words-log-log', get_words(voynich))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Język DNA\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Kod genetyczny przejawia własności zaskakująco podobne do języków naturalnych.\n", - "Przede wszystkim ma charakter dyskretny, genotyp to ciąg symboli ze skończonego alfabetu.\n", - "Podstawowe litery są tylko cztery, reprezentują one nukleotydy, z których zbudowana jest nić DNA:\n", - "a, g, c, t.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'TATAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA'" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import requests\n", - "\n", - "dna_url = 'https://raw.githubusercontent.com/egreen18/NanO_GEM/master/rawGenome.txt'\n", - "dna = requests.get(dna_url).content.decode('utf-8')\n", - "\n", - "dna = ''.join(dna.split('\\n')[1:])\n", - "dna = dna.replace('N', 'A')\n", - "\n", - "dna[0:100]" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/dna-chars.png'" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "rang_freq_with_labels('dna-chars', get_characters(dna))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Tryplety — znaczące cząstki genotypu\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Nukleotydy rzeczywiście są jak litery, same w sobie nie niosą\n", - "znaczenia. Dopiero ciągi trzech nukleotydów, *tryplety*, kodują jeden\n", - "z dwudziestu aminokwasów.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/dna-aminos.png'" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "genetic_code = {\n", - " 'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M',\n", - " 'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T',\n", - " 'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K',\n", - " 'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',\n", - " 'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L',\n", - " 'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P',\n", - " 'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q',\n", - " 'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R',\n", - " 'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V',\n", - " 'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A',\n", - " 'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E',\n", - " 'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G',\n", - " 'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S',\n", - " 'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L',\n", - " 'TAC':'Y', 'TAT':'Y', 'TAA':'_', 'TAG':'_',\n", - " 'TGC':'C', 'TGT':'C', 'TGA':'_', 'TGG':'W',\n", - " }\n", - "\n", - "def get_triplets(t):\n", - " for triplet in re.finditer(r'.{3}', t):\n", - " yield genetic_code[triplet.group(0)]\n", - "\n", - "rang_freq_with_labels('dna-aminos', get_triplets(dna))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### „Zdania” w języku DNA\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Z aminokwasów zakodowanych przez tryplet budowane są białka.\n", - "Maszyneria budująca białka czyta sekwencję aż do napotkania\n", - "trypletu STOP (\\_ powyżej). Taka sekwencja to *gen*.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'02_Jezyki/dna_length.png'" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def get_genes(triplets):\n", - " gene = []\n", - " for ammino in triplets:\n", - " if ammino == '_':\n", - " yield gene\n", - " gene = []\n", - " else:\n", - " gene.append(ammino)\n", - "\n", - "plt.figure().clear()\n", - "plt.hist([len(g) for g in get_genes(get_triplets(dna))], bins=100)\n", - "\n", - "fname = '02_Jezyki/dna_length.png'\n", - "\n", - "plt.savefig(fname)\n", - "\n", - "fname" - ] - } - ], - "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.10.2" - }, - "org": null - }, - "nbformat": 4, - "nbformat_minor": 1 -} +{"cell_type":"markdown","metadata":{},"source":["## Języki i ich prawa statystyczne\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Jakim rozkładom statystycznym podlegają języki?\n\n"]},{"cell_type":"markdown","metadata":{},"source":["### Język naturalny albo „Pan Tadeusz” w liczbach\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Przygotujmy najpierw „infrastrukturę” do *segmentacji* tekstu na różnego rodzaju jednostki.\nUżywać będziemy generatorów.\n\n**Pytanie** Dlaczego generatory zamiast list?\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":"Księga pierwsza\n\n\n\nGospodarstwo\n\nPowrót pani"}],"source":["import requests\n\nurl = 'https://wolnelektury.pl/media/book/txt/pan-tadeusz.txt'\npan_tadeusz = requests.get(url).content.decode('utf-8')\n\npan_tadeusz[100:150]"]},{"cell_type":"markdown","metadata":{},"source":["#### Znaki\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":"['K', 's', 'i', 'ę', 'g', 'a', ' ', 'p', 'i', 'e', 'r', 'w', 's', 'z', 'a', '\\r', '\\n', '\\r', '\\n', '\\r', '\\n', '\\r', '\\n', 'G', 'o', 's', 'p', 'o', 'd', 'a', 'r', 's', 't', 'w', 'o', '\\r', '\\n', '\\r', '\\n', 'P', 'o', 'w', 'r', 'ó', 't', ' ', 'p', 'a', 'n', 'i']"}],"source":["from itertools import islice\n\ndef get_characters(t):\n yield from t\n\nlist(islice(get_characters(pan_tadeusz), 100, 150))"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":"Counter({' ': 63444, 'a': 30979, 'i': 29353, 'e': 25343, 'o': 23050, 'z': 22741, 'n': 15505, 'r': 15328, 's': 15255, 'w': 14625, 'c': 14153, 'y': 13732, 'k': 12362, 'd': 11465, '\\r': 10851, '\\n': 10851, 't': 10757, 'm': 10269, 'ł': 10059, ',': 9130, 'p': 8031, 'u': 7699, 'l': 6677, 'j': 6586, 'b': 5753, 'ę': 5534, 'ą': 4794, 'g': 4775, 'h': 3915, 'ż': 3334, 'ó': 3097, 'ś': 2524, '.': 2380, 'ć': 1956, ';': 1445, 'P': 1265, 'W': 1258, ':': 1152, '!': 1083, 'S': 1045, 'T': 971, 'I': 795, 'N': 793, 'Z': 785, 'J': 729, '—': 720, 'A': 698, 'K': 683, 'ń': 651, 'M': 585, 'B': 567, 'O': 567, 'C': 556, 'D': 552, '«': 540, '»': 538, 'R': 489, '?': 441, 'ź': 414, 'f': 386, 'G': 358, 'L': 316, 'H': 309, 'Ż': 219, 'U': 184, '…': 157, '*': 150, '(': 76, ')': 76, 'Ś': 71, 'F': 47, 'é': 43, '-': 33, 'Ł': 24, 'E': 23, '/': 19, 'Ó': 13, '8': 10, '9': 8, '2': 6, 'v': 5, 'Ź': 4, '1': 4, '3': 3, 'x': 3, 'V': 3, '7': 2, '4': 2, '5': 2, 'q': 2, 'æ': 2, 'à': 1, 'Ć': 1, '6': 1, '0': 1})"}],"source":["from collections import Counter\n\nc = Counter(get_characters(pan_tadeusz))\n\nc"]},{"cell_type":"markdown","metadata":{},"source":["Napiszmy pomocniczą funkcję, która zwraca **listę frekwencyjną**.\n\nCounter({' ': 63444, 'a': 30979, 'i': 29353, 'e': 25343, 'o': 23050, 'z': 22741, 'n': 15505, 'r': 15328, 's': 15255, 'w': 14625, 'c': 14153, 'y': 13732, 'k': 12362, 'd': 11465, '\\r': 10851, '\\n': 10851, 't': 10757, 'm': 10269, 'ł': 10059, ',': 9130, 'p': 8031, 'u': 7699, 'l': 6677, 'j': 6586, 'b': 5753, 'ę': 5534, 'ą': 4794, 'g': 4775, 'h': 3915, 'ż': 3334, 'ó': 3097, 'ś': 2524, '.': 2380, 'ć': 1956, ';': 1445, 'P': 1265, 'W': 1258, ':': 1152, '!': 1083, 'S': 1045, 'T': 971, 'I': 795, 'N': 793, 'Z': 785, 'J': 729, '—': 720, 'A': 698, 'K': 683, 'ń': 651, 'M': 585, 'B': 567, 'O': 567, 'C': 556, 'D': 552, '«': 540, '»': 538, 'R': 489, '?': 441, 'ź': 414, 'f': 386, 'G': 358, 'L': 316, 'H': 309, 'Ż': 219, 'U': 184, '…': 157, '\\*': 150, '(': 76, ')': 76, 'Ś': 71, 'F': 47, 'é': 43, '-': 33, 'Ł': 24, 'E': 23, '/': 19, 'Ó': 13, '8': 10, '9': 8, '2': 6, 'v': 5, 'Ź': 4, '1': 4, '3': 3, 'x': 3, 'V': 3, '7': 2, '4': 2, '5': 2, 'q': 2, 'æ': 2, 'à': 1, 'Ć': 1, '6': 1, '0': 1})\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":"OrderedDict([(' ', 63444), ('a', 30979), ('i', 29353), ('e', 25343), ('o', 23050), ('z', 22741), ('n', 15505), ('r', 15328)])"}],"source":["from collections import Counter\nfrom collections import OrderedDict\n\ndef freq_list(g, top=None):\n c = Counter(g)\n\n if top is None:\n items = c.items()\n else:\n items = c.most_common(top)\n\n return OrderedDict(sorted(items, key=lambda t: -t[1]))\n\nfreq_list(get_characters(pan_tadeusz), top=8)"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"image/png":"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BgAAAAAAULrQA6uYQkNDderUqVztycnJql69eglkBAAAAAAAUDpRwCqmKVOmaNiwYVq+fLlOnDihEydOaPny5YqJidFLL72ktLQ06wUAAAAAAIDi4xbCYurQoYMkqWvXrrLZbJIkY4wkqWPHjtbfNptNWVlZJZMkAAAAAABAKUABq5jWr19f0ikAAAAAAAD8I3ALYTFFREQU+lVUU6dOlc1mU0xMjNVmjNGECRMUHBwsT09PtWzZUvv373d4X3p6uoYOHSp/f395eXmpU6dOOnHihENMSkqKoqOjZbfbZbfbFR0drTNnzjjEHDt2TB07dpSXl5f8/f01bNgwZWRkFHk9AAAAAAAArgUKWFfpjz/+0HfffadvvvnG4SX9VXTq3r17kea3c+dOzZ8/X/Xr13donzZtmmbOnKm5c+dq586dCgoKUps2bXT27FkrJiYmRitXrlRsbKw2b96sc+fOqUOHDg63MHbv3l179+5VXFyc4uLitHfvXkVHR1vTs7Ky1L59e50/f16bN29WbGysVqxYoZEjRxZn8wAAAAAAAFw1biEspl9//VWPPfaYPv/88zynT506Va1bt9a6desKPc9z586pR48eeuuttzRp0iSr3Rij2bNna9y4cercubMkadGiRQoMDNT777+vgQMHKjU1Ve+8844WL16s1q1bS5KWLFmikJAQrV27VlFRUTp48KDi4uK0bds2NW3aVJL01ltvKTw8XIcOHVJoaKji4+N14MABHT9+XMHBwZKkGTNmqE+fPpo8ebJ8fHyKtb0AAAAAAACKix5YxRQTE6OUlBRt27ZNnp6eiouL06JFi1SjRg2tWrVKnp6e6tevnwYNGlToeQ4ZMkTt27e3ClA5jhw5oqSkJEVGRlptHh4eioiI0JYtWyRJCQkJyszMdIgJDg5WWFiYFbN161bZ7XareCVJzZo1k91ud4gJCwuzileSFBUVpfT0dCUkJOSZd3p6usNTF3nyIgAAAAAAuJbogVVM//vf//Txxx+rSZMmKlOmjKpWrao2bdrIx8dHU6dO1ebNmzV06NBCzy82Nla7d+/Wzp07c01LSkqSJAUGBjq0BwYG6ueff7Zi3N3d5evrmysm5/1JSUkKCAjINf+AgACHmMuX4+vrK3d3dyvmclOnTtULL7xQmNUEAAAAAAAoMnpgFdP58+etYlCFChX066+/SpLq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jjN0pcGzf/rpJ1WqVEnNmzd3aD98+LC1baZMmaJ69erp4sWL+v777/Xuu+8qODjYofh4NQralwcOHKjBgwfrtddeuybL+uqrr3ThwgWHIsHatWvl6empFi1aOMReuHBB77zzjj777LN851e/fn3dcsstWrp0qZ544olc0ws6X+S4dF/OUbFixTyX16xZM+3Zs6dQ61pceeWTV7EsOztbq1ev1qpVqxzaC3Psvf7663rjjTe0aNEi1a1bV7t27dJjjz0mu92u4cOHW/N6/PHHtW/fPi1evFjBwcFasmSJWrdurQMHDujmm2/Wxo0bNWTIEDVp0kQXL17UuHHjFBkZqQMHDuTZ4zAvhT2Xnj9/Xg0aNNBjjz2mhx56KM95Va5cWS+++KKqV68uSVq0aJEeeOAB7dmzR3Xr1r1iLv369VPnzp31888/q2rVqg7T3n33XTVs2NDqebdz506H26/37dunNm3aqEuXLrnmu3PnTs2fP1/169fPNa1u3bpau3at9feN6BE7atSoPNuPHj16xXNySkqKWrRooXvvvVeff/65AgIC9NNPP+mmm25ymNeHH36omJgYzZs3Ty1atNCbb76pdu3a6cCBA1f8vwu47gyAK/r8889NixYtjN1uNxUqVDDt27c3P/74Y56xERERZvjw4XlOy87ONi+99JKpVq2aKVu2rKlfv75ZtmyZQ8yff/5phg4daipWrGg8PDxMixYtzI4dO6zpR44cMZJyvSIiIhxyGDp0qHn66aeNr6+vCQwMNOPHj8833yFDhpinnnrK+Pn5mXvuucdh+rJly0xYWJgpW7asqVChgmnVqpU5d+6cWbVqlbHb7SYrK8sYY8yePXuMJDNq1CjrvQMGDDCPPPKIMcaYrKws8+KLL5rbbrvNuLu7m5CQEDNp0iRjjDGLFi0yFSpUMH/++afDsjt37myio6Pz3baff/658fHxMYsWLbLazp07Z6Kjo42Xl5cJCgoy06dPd3jf559/nue2OHLkiOnWrVue2yg/vXv3zvU5HDlyxERERJgnn3zSDB8+3Nx0000mICDAvPnmm+bcuXOmT58+pnz58ubWW281n332mcO8HnjgAfP9998XKYccOZ/jkCFDrP103LhxJjs724qpWrWqmTVrlsP7GjRokOf2KGg/vnwbPPDAA8XK59Ljwd3d3dSvX9/873//c5hPYY69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8vf3d3jPvffeq9dff13SX70+5s2bp3bt2mnHjh1XXB9zSc+Gq+lJZIyRzWZT586dVbFiRS1atEjNmzfX7bffrnnz5uU6d6xdu1YtW7bUokWL9Nlnn6l169b6+OOPHR48kLNef/zxh95++219//33eQ52/M033+jdd9/Vd999l2fvoRwF/R97JZdvmx07dig7O1s9evQoUo+iSz+rHNu3b8/z6XTPPvusvvrqK23fvv26jE949OhRPf7442rdurVatmyp119/XWvXrtXRo0dzbccLFy7k6v2Tl5yeRpf2Rs5RmPPF5dvn8t4nhbn2knIf05evz4cffqhPPvlEkZGRDmOqXS6vz+vysVEPHjyoEydO5NurJz85x97HH3+sJUuW6P3331fdunW1d+9excTEKDg4WL1797biFy9erL59++rmm2+Wi4uL7rjjDnXv3j1XD2VJevLJJ/XNN9/k2TurR48eGjBggObNmycPDw8tXbpUjzzySK7riuKcSy8XGhqqvXv36syZM1qxYoV69+6tjRs3qk6dOlbM9OnTFRYWpv/+97/atWuXw35Wq1YtNW/eXO+++67uvfde/fTTT9q0aZPi4+PzXeY777yjdu3aKTg42Go7fvy4hg8frvj4+Hz340uvX+rVq6fw8HDddtttWrRokUaMGCGp4OvSM2fOqHv37rmub0aMGKGnn37ais/KylJ2dnaB10N+fn6SrnxOzs7OVuPGjTVlyhRJ0u233679+/fr9ddfd7ibIa955ZyzgZJGAQsohI4dOyokJERvvfWWgoODlZ2drbCwMGVkZBR6Hjn/0axevTrXhVHOAJ85FyeF+U9j0qRJiouL044dO/L8knP5bRM2my3fWx7zu83BxcVFa9as0ZYtWxQfH685c+Zo3Lhx2r59u6pVq6aWLVvqnXfe0ddff60yZcqoTp06ioiI0MaNG5WSkmLdflWYwZdvv/12NWjQQO+9956ioqL07bff5jkIdsOGDbV7924tWLBATZo0cdguppi33l0PeW3/S9ty8s7OztZrr72mPn366MyZM9c1pzJlyuTaRpmZmdd1mfnJ2RebNGni0J6RkeFQ6LvSsVfQMXOpwh4PkyZNUnx8fJ7HVWGOzysdM4VV1AHLC5LzhcrNzU3BwcHWtqhcubLWr1/vcKwGBQWpWrVq+uqrr7R+/Xrdd999RV6e3W7Pt4Al/TW4eps2bdSmTRs9//zzevzxxzV+/PjrVsC65557FBUVpWeffTbXMj788ENNnz5dq1evVo0aNQo9T29v7zzPu3mZP3++Ll686DCosDFGbm5uSklJcShu3nzzzVqxYoXuvfdetW3bVnFxcbmWU5h9uW/fvnryySclKc8BvL28vKyBkiWpUaNGstvteuutt/TUU0/JZrPpwIEDeT5x7bvvvpPdbldaWpoOHjxY7CczHjx4UNWqVdN9992n1157TYcPH1bbtm314Ycf6sSJE9bt2Dk+/fRT+fj4KDQ0VAsXLlSlSpVyDbx+6Xq9+uqruvfee/XCCy/kupUp59avgn7cuNL/sfmpXr26bDabNYh9jpxci3psX/5ZScrzltgPP/xQL7/8sj7++GPVqlXLYZqPj491e9ilzpw5U6RCw+UDtUvKtwjj7++f6wmQecm5/Tq/gdevdL7Ia/tcqjDXXlLBx3RGRobWrFmjRo0aXfHphVfKR/rrNq42bdrk2hdy9p2Cjj1fX1/95z//0ZgxY6wHidSrV08///yzpk6d6lDAuu2227Rx40adP39eaWlpqlSpkrp165br/6KhQ4dq1apV+vLLL1W5cuVcy+3YsaM16HyTJk20adMmzZw50yGmuOfSy7m7u1vbr3Hjxtq5c6deeeUVh+EtDh8+rF9++UXZ2dn6+eefcxX1+/XrpyeffFKvvfaaFixYoKpVq+b7Y9DPP/+stWvXWrcz50hISFBycrIaNWpktWVlZenLL7/U3LlzlZ6enquA5+XlpXr16umHH36w2gq6Lv3kk0/UuHHjXNc3s2bNyvO4Kuh6qEaNGrLZbFc8J1eqVMmhGChJtWvX1ooVK6y//f395eLioqSkJIe45OTkPIcxAG40xsACruD333/XwYMH9dxzz6lVq1aqXbt2oS7KLlenTh15eHjo2LFjql69usMr50K9evXqcnd3d/gFLDMzU7t27VLt2rWtthUrVmjixIn673//q9tuu+3qV7IANptNLVq00AsvvKA9e/bI3d1dK1eulCRrHKzZs2crIiJCNptNERER2rBhg8P4VzVq1JCnp6fDY3zz8vjjj2vBggVWz4TLv8BIf12QrV+/Xh9//HGuX9arV68uNzc3bdu2zWpLSUmxxom4Htzd3R2eZFOSLl3vnL9r1KhhXWRVrFjRYXyptLS0qxrD42ryyTkeli9frr1791qvAwcOWI/XLsyxd9ttt8nNzc2h50haWprDBWRhrVixQpMmTdLy5cvzLDYV9vgs6JgprMIeM4WR84WqatWqDsWPe++91zpWW7ZsabVHREToiy++0LZt2xzGvyqsTZs2qWvXroWOr1Onjs6fP1/k5RTFiy++qE8++cRh/I69e/eqb9++evHFFxUVFXVdlnvx4kW99957mjFjhsN+/vXXX6tq1apaunRprvdUqVJFGzduVHJysiIjI5WWllbk5bZt21YZGRnKyMgo1LrZbDaVKVNGFy5ckJ+fn9q0aaN58+bpwoULDnFJSUlaunSpHn30UUVFRem1117L87O7UjH+f//7n7799ls99NBDGjFihMaPH6+WLVuqZ8+eGjJkiO6++26dPHnSip84caI++OADffXVV3rttde0du1abdq0qcDeU5I0fvx4TZ8+Xb/88otDe0REhDVmVV6u5v/YnO03d+7c675f58jZl//zn/+oQ4cOuabXqlVLu3btytW+c+fOYvdQ3rBhQ4HTb7/9dh04cOCK89m3b58qV66cq5dgfop6vijMtdeVuLu76+2333booXM1Pv744zyfQlmYY69bt276448/cvUIdHFxKfBHykqVKlljVz3wwAOS/iquPPnkk/roo4/0v//9L98fWTw9PdW5c2ctXbpUH3zwgWrWrOlQ2Lme51JjjEOPxZyxrLp166ZJkyapX79+OnXqlMN7unbtKhcXF73//vtatGiRHnvssXx7Di1YsEABAQFq3769Q3urVq307bffOpy3GzdurB49emjv3r159mpPT0/XwYMHValSJastv+vSQ4cO6fTp03le3/zwww+59lVfX98Cr4cqVKhQqHNyixYtHJ7uK0nff/+9ww8s7u7uatSoUa5xc9esWZPriatASaAHFnAFvr6+8vPz0/z581WpUiUdO3ZMY8aMKfJ8vL29NWrUKD311FPKzs7WXXfdpbS0NG3ZskXly5dX79695eXlpSeeeEJPP/20KlSooCpVqmjatGn6448/1K9fP0l/Xez16tVLzzzzjOrWrWv9QuLu7p6rm/rV2r59u9atW6fIyEgFBARo+/bt+vXXX60v63a7XQ0bNtSSJUv0yiuvSPqrqNWlSxdlZmZaX4rLli2rZ555RqNHj5a7u7tatGihX3/9Vfv377fWS/qrm/qoUaP01ltv5fuYeEmqWbOmNei0q6urZs+eLemvW5f69eunp59+Wn5+fgoMDNS4ceOKfOtHUdxyyy3avn27jh49qvLly1/zz6Aojh8/rhEjRmjgwIHavXu35syZoxkzZljT77vvPi1cuFAdO3aUr6+v/v3vf1/XWwsLyifneJg4caImTpyoGjVqKD09XT/88IPKlSunkJCQQh173t7e6t27t3XMBAQEaPz48SpTpkyRurrnHFfjxo1TaGhonsdVYY7PKx0zl5s7d65WrlyZq1BV2GPmatx7770aMmSIMjMzHQarj4iI0BNPPKE///wzVwFr5cqVGjt2bK7eJZdq1aqVevfunet2hN9//11dunRR3759Vb9+fXl7e2vXrl2aNm2a9YXqeqlXr5569OihOXPmSPrrIREPPvigVTS5/JdmFxeXfHuEFMWnn36qlJQU9evXL9ctXQ8//LDeeecdq6fUpSpXrqwNGzbo3nvvVWRkpL744osi3RLm4uJi3daa3xetnHVOSUnR3Llzde7cOXXs2FHSX/tl8+bNFRUVpUmTJqlatWrav3+/nn76ad18882aPHmyUlNT1bx5c915552aOHGi6tevr4sXL2rNmjV6/fXXreXnLCsrK0unTp1SXFycpk6dqg4dOlj7SK9eveTn56fDhw/rySefVMWKFXXs2DGrQJWVlaWNGzfKbrerbNmyWrduncqVK3fF7dCyZUvVrVtXU6ZM0dy5c6329evX57sfX4v/Y3MePd+4cWNNmDBB9evXV5kyZbRz50599913Dl/+U1NTtXfvXof355xfCiNnXw4PD1ffvn3z3JcHDx6suXPnasiQIRowYIA8PT21Zs0avfPOOxo6dKhq1aqldevWWds753PJ+X/45MmTatWqlaZOnXrFW4hzREVFaezYsbl6GV5u06ZNuQaLlq7d+aIw115FcaXP69JjK4erq6tVoEtOTtbOnTutH2ouV5hj78KFC5o8ebKqVKmiunXras+ePZo5c2auhzV88cUXMsYoNDRUP/74o55++mmFhoZaD8cZMmSI3n//fX388cfy9va28rbb7bl6h/Xo0UMdO3bU/v37HW5fLey59Ny5c/rxxx+t9iNHjmjv3r0O2+7ZZ59Vu3btFBISorNnzyo2NlYbNmxQXFyc9b5x48YpNTVVr776qsqXL6/PP/9c/fr106effmrFlC9f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","text/plain":""},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\nfrom collections import OrderedDict\n\ndef rang_freq_with_labels(name, g, top=None):\n freq = freq_list(g, top)\n\n plt.figure(figsize=(12, 3))\n plt.ylabel('liczba wystąpień')\n\n plt.bar(freq.keys(), freq.values())\n\n fname = f'02_Jezyki/{name}.png'\n\n plt.savefig(fname)\n\n return fname\n\nrang_freq_with_labels('pt-chars', get_characters(pan_tadeusz))"]},{"cell_type":"markdown","metadata":{},"source":["#### Słowa\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Co rozumiemy pod pojęciem słowa czy wyrazu, nie jest oczywiste. W praktyce zależy to od wyboru **tokenizatora**.\n\nZałóżmy, że przez wyraz rozumieć będziemy nieprzerwany ciąg liter bądź cyfr (oraz gwiazdek\n— to za chwilę ułatwi nam analizę pewnego tekstu…).\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":"['Ty', 'co', 'gród', 'zamkowy', 'Nowogródzki', 'ochraniasz', 'z', 'jego', 'wiernym', 'ludem', 'Jak', 'mnie', 'dziecko', 'do', 'zdrowia', 'powróciłaś', 'cudem', 'Gdy', 'od', 'płaczącej', 'matki', 'pod', 'Twoją', 'opiekę', 'Ofiarowany', 'martwą', 'podniosłem', 'powiekę', 'I', 'zaraz']"}],"source":["from itertools import islice\nimport regex as re\n\ndef get_words(t):\n for m in re.finditer(r'[\\p{L}0-9\\*]+', t):\n yield m.group(0)\n\nlist(islice(get_words(pan_tadeusz), 100, 130))"]},{"cell_type":"markdown","metadata":{},"source":["Zobaczmy 20 najczęstszych wyrazów.\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"image/png":"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ODhYTZo00YEDByo9r/RL5gEDBuiGG25QzZo11aBBA0kqs/5R//79lZ+fr/Xr17vMwsgHDhxQ+/btHda56dixo/Lz83Xy5EkLk/1iyJAhOnv2rJYvX65q1aopPT1dycnJ5ufI399f3bt3V2lpqY4ePWpp1oMHD2rnzp36+9//Lkny9PTU/fffr//85z+W5rrUpcf7kpISzZo1Sy1atFBwcLD8/f21fv16S9fvateuncP3ZPv27fXll19q//79Lvf5v9iRI0dUXFysjh07mmNeXl667bbbXCLfb5GXl6eYmBjFxMRowoQJlma52mOsVV5++WXdcsstuvbaa+Xv769FixaVybZjxw797W9/05IlSyxZ9uLAgQMqLCxU586dy93XsmVL1ahRwxzr2LGjSktLdfDgwcqMaerUqZPOnj2rXbt2aevWrWrcuLFq166tqKgo7dq1S2fPntWWLVtUt25d3XDDDZZkBP4IT6sDAK7Mw8NDGzZsUFpamtavX6+kpCRNmzatzOkBF6Zi33rrrQ7jRUVFioyMrLS8l4qOjtbixYu1b98+VatWTc2aNVNUVJRSUlKUm5vL6YN/0MyZM7Vu3Trt3LnTpRad9/Lycti22WwqLS3V119/rZ49e+rhhx/W008/raCgIKWmpmrIkCGVfgrJ5TJeqrS0VG3atNHy5cvL7Lv22mudls8dGb9yutXl9huGYdliw3fffbfCw8O1aNEihYWFqbS0VBEREWVOD+3Zs6eWLVum7du36y9/+YslWS9V3vt24T22evHmmTNnav369Q7HptLSUg0fPlyjR48uU1+3bt3Kjuhg8eLFOn/+vK6//npzzDAMeXl5KTc3V4GBgRam+0V5x/t58+YpISFBiYmJ5tqCcXFxbnV6s5Wf/0tzSGU/O66ST/rlFPxLj6OX/uwsKSkx12x85ZVXKjNeua72GGuFVatWaezYsZo3b57at2+vgIAAPffcc2V+x77xxhsVHBys//znP+rVq5e8vb0rNaefn99l913p+9Oq79uGDRuqTp062rx5s8Pv+qGhoWrQoIH+97//afPmzS7zsxT4rVxjugDgwmw2mzp27Kjp06dr79698vb21tq1ax1qmjVrJh8fH61Zs0YZGRnmbf/+/Q6LUVe2C+tgJSYmKioqSjabTVFRUdqyZQvrX/1Bb775pmbMmKFVq1bpxhtvtDrO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","text/plain":""},"metadata":{},"output_type":"display_data"}],"source":["rang_freq_with_labels('pt-words-20', get_words(pan_tadeusz), top=20)"]},{"cell_type":"markdown","metadata":{},"source":["Zobaczmy pełny obraz, już bez etykiet.\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"image/png":"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","text/plain":""},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\nfrom math import log\n\ndef rang_freq(name, g):\n freq = freq_list(g)\n\n plt.figure().clear()\n plt.plot(range(1, len(freq.values())+1), freq.values())\n\n fname = f'02_Jezyki/{name}.png'\n\n plt.savefig(fname)\n\n return fname\n\nrang_freq('pt-words', get_words(pan_tadeusz))"]},{"cell_type":"markdown","metadata":{},"source":["Widać, jak różne skale obejmuje ten wykres. Zastosujemy logarytm,\nnajpierw tylko do współrzędnej $y$.\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"image/png":"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I2ttbc0WLVpUvebll1/OmpqasrvvvjvLsix75plnsojIli5dWr3mkUceySIi++Uvf1mH72pkiYjs9ttvrz4fznG56667sqampuzll1+uXnPLLbdk5XI56+7ursv328h+d6yyLMvmzZuXfeYzn9nje4xVPtavX59FRLZkyZIsy/xepUYHsEC2b98eTzzxRMyePXvI67Nnz46HH344p6rSsHLlyujs7Ixp06bFl770pXjhhRciIuLFF1+MdevWDRmTcrkcH//4x6tj8sQTT8SOHTuGXNPZ2RnTp0+vXvPII49ER0dHnHDCCdVrTjzxxOjo6DC278FwjssjjzwS06dPj87Ozuo1n/zkJ6NSqcQTTzxR1+9zJLn//vtjwoQJcfjhh8ef/umfxvr166ufM1b56O7ujoiIcePGRYTfq9QIgAXy+uuvR19fX0ycOHHI6xMnTox169blVNXId8IJJ8TNN98cP/3pT+P666+PdevWxUknnRQbNmyo/r3vbUzWrVsXo0aNigMPPHCv10yYMGG3rz1hwgRj+x4M57isW7dut69z4IEHxqhRo4zdOzRnzpz493//97j33nvjH//xH+Oxxx6L0047LSqVSkQYqzxkWRYXX3xxfPSjH43p06dHhN+r1LTkXQC7K5VKQ55nWbbba9TOnDlzqh/PmDEjZs2aFYcddljcdNNN1RvV38uY/O41b3e9sd03wzUuxm7fnHvuudWPp0+fHscdd1xMnTo1fvzjH8fnPve5Pb7PWNXPggUL4he/+EU89NBDu33O71UadAALZPz48dHc3Lzb//2sX79+t/9Ton7a2tpixowZsXLlyupq4L2NyaRJk2L79u2xcePGvV7z6quv7va1XnvtNWP7HgznuEyaNGm3r7Nx48bYsWOHsXuPJk+eHFOnTo2VK1dGhLEabhdeeGHceeedcd9998WUKVOqr/u9SosAWCCjRo2KmTNnxuLFi4e8vnjx4jjppJNyqio9lUolnn322Zg8eXJMmzYtJk2aNGRMtm/fHkuWLKmOycyZM6O1tXXINWvXro2nn366es2sWbOiu7s7fv7zn1evefTRR6O7u9vYvgfDOS6zZs2Kp59+OtauXVu95mc/+1mUy+WYOXNmXb/PkWrDhg2xZs2amDx5ckQYq+GSZVksWLAgbrvttrj33ntj2rRpQz7v9yoxw77shL1atGhR1tramt1www3ZM888k1100UVZW1tb9pvf/Cbv0kasSy65JLv//vuzF154IVu6dGk2d+7crL29vfp3fuWVV2YdHR3Zbbfdli1fvjz78pe/nE2ePDnr6emp/hkXXHBBNmXKlOyee+7Jnnzyyey0007LjjnmmKy3t7d6zVlnnZUdffTR2SOPPJI98sgj2YwZM7K5c+cO+/fbKDZt2pQtW7YsW7ZsWRYR2VVXXZUtW7YsW7VqVZZlwzcuvb292fTp07PTTz89e/LJJ7N77rknmzJlSrZgwYLh+8souL2N1aZNm7JLLrkke/jhh7MXX3wxu++++7JZs2Zl73vf+4zVMPvWt76VdXR0ZPfff3+2du3a6mPr1q3Va/xepUMALKB/+qd/yqZOnZqNGjUq+4M/+IPqEn3q49xzz80mT56ctba2Zp2dndnnPve5bMWKFdXP9/f3Z5dddlk2adKkrFwuZx/72Mey5cuXD/kz3nzzzWzBggXZuHHjsjFjxmRz587NVq9ePeSaDRs2ZOedd17W3t6etbe3Z+edd162cePG4fgWG9J9992XRcRuj3nz5mVZNrzjsmrVquzss8/OxowZk40bNy5bsGBBtm3btnp++w1lb2O1devWbPbs2dnBBx+ctba2Zoccckg2b9683cbBWNXf241RRGQ33nhj9Rq/V+koZVmWDXfXEQCA/LgHEAAgMQIgAEBiBEAAgMQIgAAAiREAAQASIwACACRGAAQASIwACACQGAEQACAxAiAAQGIEQACAxAiAAACJEQABABIjAAIAJEYABABIjAAIAJAYARAAIDECIABAYgRAAIDECIAAAIkRAAEAEiMAAgAkRgAEAEiMAAgAkBgBEAAgMQIgAEBiBEAAgMQIgAAAiREAAQASIwACACRGAAQASMz/DxrYP4SYQx7KAAAAAElFTkSuQmCC","text/plain":""},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\nfrom math import log\n\ndef rang_log_freq(name, g):\n freq = freq_list(g)\n\n plt.figure().clear()\n plt.plot(range(1, len(freq.values())+1), [log(y) for y in freq.values()])\n\n fname = f'02_Jezyki/{name}.png'\n\n plt.savefig(fname)\n\n return fname\n\nrang_log_freq('pt-words-log', get_words(pan_tadeusz))"]},{"cell_type":"markdown","metadata":{},"source":["****Pytanie**** Dlaczego widzimy coraz dłuższe „schodki”?\n\n"]},{"cell_type":"markdown","metadata":{},"source":["#### Hapax legomena\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Z poprzedniego wykresu możemy odczytać, że ok. 2/3 wyrazów wystąpiło\ndokładnie 1 raz. Słowa występujące jeden raz w danym korpusie noszą\nnazwę *hapax legomena* (w liczbie pojedynczej *hapax legomenon*, ἅπαξ\nλεγόμενον, „raz powiedziane”, żargonowo: „hapaks”).\n\n„Prawdziwe” hapax legomena, słowa, które wystąpiły tylko raz w *całym*\nkorpusie tekstów danego języka (np. starożytnego) rzecz jasna\nsprawiają olbrzymie trudności w tłumaczeniu. Przykładem jest greckie\nsłowo ἐπιούσιος, przydawka odnosząca się do chleba w modlitwie „Ojcze\nnasz”. Jest to jedyne poświadczenie tego słowa w całym znanym korpusie\ngreki (nie tylko z Pisma Świętego). W języku polskim tłumaczymy je na\n„powszedni”, ale na przykład w rosyjskim przyjął się odpowiednik\n„насущный” — o przeciwstawnym do polskiego znaczeniu!\n\nW sumie podobne problemy hapaksy mogą sprawiać metodom statystycznym\nprzy przetwarzaniu jakiekolwiek korpusu.\n\n"]},{"cell_type":"markdown","metadata":{},"source":["#### Wykres log-log\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Jeśli wspomniany wcześniej wykres narysujemy używając skali\nlogarytmicznej dla ****obu**** osi, otrzymamy kształt zbliżony do linii prostej.\n\nTę własność tekstów nazywamy ****prawem Zipfa****.\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"image/png":"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","text/plain":""},"metadata":{},"output_type":"display_data"}],"source":["import matplotlib.pyplot as plt\nfrom math import log\n\ndef log_rang_log_freq(name, g):\n freq = freq_list(g)\n\n plt.figure().clear()\n plt.plot([log(x) for x in range(1, len(freq.values())+1)], [log(y) for y in freq.values()])\n\n fname = f'02_Jezyki/{name}.png'\n\n plt.savefig(fname)\n\n return fname\n\nlog_rang_log_freq('pt-words-log-log', get_words(pan_tadeusz))"]},{"cell_type":"markdown","metadata":{},"source":["#### Związek między frekwencją a długością\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Powiązane z prawem Zipfa prawo językowe opisuje zależność między\nczęstością użycia słowa a jego długością. Generalnie im krótsze słowo, tym częstsze.\n\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"data":{"image/png":"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","text/plain":""},"metadata":{},"output_type":"display_data"}],"source":["def freq_vs_length(name, g, top=None):\n freq = freq_list(g)\n\n plt.figure().clear()\n plt.scatter([len(x) for x in freq.keys()], [log(y) for y in freq.values()],\n facecolors='none', edgecolors='r')\n\n fname = f'02_Jezyki/{name}.png'\n\n plt.savefig(fname)\n\n return fname\n\nfreq_vs_length('pt-lengths', get_words(pan_tadeusz))"]}],"metadata":{"org":null,"kernelspec":{"display_name":"Python 3","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.5.2"}},"nbformat":4,"nbformat_minor":0} \ No newline at end of file diff --git a/wyk/02_Jezyki.org b/wyk/02_Jezyki.org index 8f95bd5..2d278ab 100644 --- a/wyk/02_Jezyki.org +++ b/wyk/02_Jezyki.org @@ -1,4 +1,4 @@ -* Języki i ich prawa +* Języki i ich prawa statystyczne Jakim rozkładom statystycznym podlegają języki? @@ -9,7 +9,7 @@ Używać będziemy generatorów. *Pytanie* Dlaczego generatory zamiast list? -#+BEGIN_SRC python :session mysession :exports both :results raw drawer +#+BEGIN_SRC ipython :session mysession :exports both :results raw drawer import requests url = 'https://wolnelektury.pl/media/book/txt/pan-tadeusz.txt' @@ -31,7 +31,7 @@ Powrót pani *** Znaki -#+BEGIN_SRC python :session mysession :exports both :results raw drawer +#+BEGIN_SRC ipython :session mysession :exports both :results raw drawer from itertools import islice def get_characters(t): @@ -45,7 +45,7 @@ Powrót pani ['K', 's', 'i', 'ę', 'g', 'a', ' ', 'p', 'i', 'e', 'r', 'w', 's', 'z', 'a', '\r', '\n', '\r', '\n', '\r', '\n', '\r', '\n', 'G', 'o', 's', 'p', 'o', 'd', 'a', 'r', 's', 't', 'w', 'o', '\r', '\n', '\r', '\n', 'P', 'o', 'w', 'r', 'ó', 't', ' ', 'p', 'a', 'n', 'i'] :end: -#+BEGIN_SRC python :session mysession :exports both :results raw drawer +#+BEGIN_SRC ipython :session mysession :exports both :results raw drawer from collections import Counter c = Counter(get_characters(pan_tadeusz)) @@ -65,7 +65,7 @@ Napiszmy pomocniczą funkcję, która zwraca *listę frekwencyjną*. Counter({' ': 63444, 'a': 30979, 'i': 29353, 'e': 25343, 'o': 23050, 'z': 22741, 'n': 15505, 'r': 15328, 's': 15255, 'w': 14625, 'c': 14153, 'y': 13732, 'k': 12362, 'd': 11465, '\r': 10851, '\n': 10851, 't': 10757, 'm': 10269, 'ł': 10059, ',': 9130, 'p': 8031, 'u': 7699, 'l': 6677, 'j': 6586, 'b': 5753, 'ę': 5534, 'ą': 4794, 'g': 4775, 'h': 3915, 'ż': 3334, 'ó': 3097, 'ś': 2524, '.': 2380, 'ć': 1956, ';': 1445, 'P': 1265, 'W': 1258, ':': 1152, '!': 1083, 'S': 1045, 'T': 971, 'I': 795, 'N': 793, 'Z': 785, 'J': 729, '—': 720, 'A': 698, 'K': 683, 'ń': 651, 'M': 585, 'B': 567, 'O': 567, 'C': 556, 'D': 552, '«': 540, '»': 538, 'R': 489, '?': 441, 'ź': 414, 'f': 386, 'G': 358, 'L': 316, 'H': 309, 'Ż': 219, 'U': 184, '…': 157, '*': 150, '(': 76, ')': 76, 'Ś': 71, 'F': 47, 'é': 43, '-': 33, 'Ł': 24, 'E': 23, '/': 19, 'Ó': 13, '8': 10, '9': 8, '2': 6, 'v': 5, 'Ź': 4, '1': 4, '3': 3, 'x': 3, 'V': 3, '7': 2, '4': 2, '5': 2, 'q': 2, 'æ': 2, 'à': 1, 'Ć': 1, '6': 1, '0': 1}) :end: -#+BEGIN_SRC python :session mysession :exports both :results raw drawer +#+BEGIN_SRC ipython :session mysession :exports both :results raw drawer from collections import Counter from collections import OrderedDict @@ -88,7 +88,7 @@ OrderedDict([(' ', 63444), ('a', 30979), ('i', 29353), ('e', 25343), ('o', 23050 :end: -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file import matplotlib.pyplot as plt from collections import OrderedDict @@ -119,7 +119,7 @@ Co rozumiemy pod pojęciem słowa czy wyrazu, nie jest oczywiste. W praktyce zal Załóżmy, że przez wyraz rozumieć będziemy nieprzerwany ciąg liter bądź cyfr (oraz gwiazdek — to za chwilę ułatwi nam analizę pewnego tekstu…). -#+BEGIN_SRC python :session mysession :exports both :results raw drawer +#+BEGIN_SRC ipython :session mysession :exports both :results raw drawer from itertools import islice import regex as re @@ -138,7 +138,7 @@ Załóżmy, że przez wyraz rozumieć będziemy nieprzerwany ciąg liter bądź Zobaczmy 20 najczęstszych wyrazów. -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file rang_freq_with_labels('pt-words-20', get_words(pan_tadeusz), top=20) #+END_SRC @@ -147,7 +147,7 @@ Zobaczmy 20 najczęstszych wyrazów. Zobaczmy pełny obraz, już bez etykiet. -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file import matplotlib.pyplot as plt from math import log @@ -172,7 +172,7 @@ Zobaczmy pełny obraz, już bez etykiet. Widać, jak różne skale obejmuje ten wykres. Zastosujemy logarytm, najpierw tylko do współrzędnej $y$. -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file import matplotlib.pyplot as plt from math import log @@ -222,7 +222,7 @@ logarytmicznej dla **obu** osi, otrzymamy kształt zbliżony do linii prostej. Tę własność tekstów nazywamy **prawem Zipfa**. -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file import matplotlib.pyplot as plt from math import log @@ -249,7 +249,7 @@ Tę własność tekstów nazywamy **prawem Zipfa**. Powiązane z prawem Zipfa prawo językowe opisuje zależność między częstością użycia słowa a jego długością. Generalnie im krótsze słowo, tym częstsze. -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file def freq_vs_length(name, g, top=None): freq = freq_list(g) @@ -268,229 +268,3 @@ częstością użycia słowa a jego długością. Generalnie im krótsze słowo, #+RESULTS: [[file:02_Jezyki/pt-lengths.png]] - -** N-gramy - -W modelowaniu języka często rozpatruje się n-gramy, czyli podciągi o -rozmiarze $n$. - -Na przykład /digramy/ (/bigramy/) to zbitki dwóch jednostek, np. liter albo wyrazów. - -|$n$| $n$-gram| nazwa | -|---+---------+---------------| -| 1 | 1-gram | unigram | -| 2 | 2-gram | digram/bigram | -| 3 | 3-gram | trigram | -| 4 | 4-gram | tetragram | -| 5 | 5-gram | pentagram | - - -*Pytanie:* Jak nazywa się 6-gram? - -Jak widać, dla symetrii mówimy czasami o unigramach, jeśli operujemy -po prostu na jednostkach, nie na ich podciągach. - -*** N-gramy z Pana Tadeusza - -Statystyki, które policzyliśmy dla pojedynczych liter czy wyrazów, możemy powtórzyć dla n-gramów. - -#+BEGIN_SRC python :session mysession :exports both :results raw drawer - def ngrams(iter, size): - ngram = [] - for item in iter: - ngram.append(item) - if len(ngram) == size: - yield tuple(ngram) - ngram = ngram[1:] - - list(ngrams("kotek", 3)) -#+END_SRC - -#+RESULTS: -:results: -[('k', 'o', 't'), ('o', 't', 'e'), ('t', 'e', 'k')] -:end: - -Zauważmy, że policzyliśmy wszystkie n-gramy, również częściowo pokrywające się. - -Zawsze powinniśmy się upewnić, czy jest jasne, czy chodzi o n-gramy znakowe czy wyrazowe - -*** 3-gramy znakowe - -#+BEGIN_SRC python :session mysession :results file - log_rang_log_freq('pt-3-char-ngrams-log-log', ngrams(get_characters(pan_tadeusz), 3)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/pt-3-char-ngrams-log-log.png]] - -*** 2-gramy wyrazowe - -#+BEGIN_SRC python :session mysession :results file - log_rang_log_freq('pt-2-word-ngrams-log-log', ngrams(get_words(pan_tadeusz), 2)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/pt-2-word-ngrams-log-log.png]] - -** Tajemniczy język Manuskryptu Wojnicza - -[[https://pl.wikipedia.org/wiki/Manuskrypt_Wojnicza][Manuskrypt Wojnicza]] to powstały w XV w. manuskrypt spisany w -tajemniczym alfabecie, do dzisiaj nieodszyfrowanym. Rękopis stanowi -jedną z największych zagadek historii (i lingwistyki). - -[[./02_Jezyki/voynich135.jpg][Źródło: https://commons.wikimedia.org/wiki/File:Voynich_Manuscript_(135).jpg]] - -Sami zbadajmy statystyczne własności tekstu manuskryptu. Użyjmy -transkrypcji Vnow, gdzie poszczególne znaki tajemniczego alfabetu -zamienione na litery alfabetu łacińskiego, cyfry i gwiazdkę. Jak -transkrybować manuskrypt, pozostaje sprawą dyskusyjną, natomiast wybór -takiego czy innego systemu transkrypcji nie powinien wpływać -dramatycznie na analizę statystyczną. - -#+BEGIN_SRC python :session mysession :exports both :results raw drawer - import requests - - voynich_url = 'http://www.voynich.net/reeds/gillogly/voynich.now' - voynich = requests.get(voynich_url).content.decode('utf-8') - - voynich = re.sub(r'\{[^\}]+\}|^<[^>]+>|[-# ]+', '', voynich, flags=re.MULTILINE) - - voynich = voynich.replace('\n\n', '#') - voynich = voynich.replace('\n', ' ') - voynich = voynich.replace('#', '\n') - - voynich = voynich.replace('.', ' ') - - voynich[100:150] -#+END_SRC - -#+RESULTS: -:results: -9 OR 9FAM ZO8 QOAR9 Q*R 8ARAM 29 [O82*]OM OPCC9 OP -:end: - -#+BEGIN_SRC python :session mysession :results file - rang_freq_with_labels('voy-chars', get_characters(voynich)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/voy-chars.png]] - -#+BEGIN_SRC python :session mysession :results file - log_rang_log_freq('voy-log-log', get_words(voynich)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/voy-log-log.png]] - -#+BEGIN_SRC python :session mysession :results file - rang_freq_with_labels('voy-words-20', get_words(voynich), top=20) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/voy-words-20.png]] - -#+BEGIN_SRC python :session mysession :results file - log_rang_log_freq('voy-words-log-log', get_words(voynich)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/voy-words-log-log.png]] - -** Język DNA - -Kod genetyczny przejawia własności zaskakująco podobne do języków naturalnych. -Przede wszystkim ma charakter dyskretny, genotyp to ciąg symboli ze skończonego alfabetu. -Podstawowe litery są tylko cztery, reprezentują one nukleotydy, z których zbudowana jest nić DNA: -a, g, c, t. - - -#+BEGIN_SRC python :session mysession :exports both :results raw drawer - import requests - - dna_url = 'https://raw.githubusercontent.com/egreen18/NanO_GEM/master/rawGenome.txt' - dna = requests.get(dna_url).content.decode('utf-8') - - dna = ''.join(dna.split('\n')[1:]) - dna = dna.replace('N', 'A') - - dna[0:100] -#+END_SRC - -#+RESULTS: -:results: -TATAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA -:end: - -#+BEGIN_SRC python :session mysession :results file - rang_freq_with_labels('dna-chars', get_characters(dna)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/dna-chars.png]] - -*** Tryplety — znaczące cząstki genotypu - -Nukleotydy rzeczywiście są jak litery, same w sobie nie niosą -znaczenia. Dopiero ciągi trzech nukleotydów, /tryplety/, kodują jeden -z dwudziestu aminokwasów. - -#+BEGIN_SRC python :session mysession :results file - genetic_code = { - 'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M', - 'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T', - 'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K', - 'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R', - 'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L', - 'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P', - 'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q', - 'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R', - 'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V', - 'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A', - 'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E', - 'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G', - 'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S', - 'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L', - 'TAC':'Y', 'TAT':'Y', 'TAA':'_', 'TAG':'_', - 'TGC':'C', 'TGT':'C', 'TGA':'_', 'TGG':'W', - } - - def get_triplets(t): - for triplet in re.finditer(r'.{3}', t): - yield genetic_code[triplet.group(0)] - - rang_freq_with_labels('dna-aminos', get_triplets(dna)) -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/dna-aminos.png]] - -*** „Zdania” w języku DNA - -Z aminokwasów zakodowanych przez tryplet budowane są białka. -Maszyneria budująca białka czyta sekwencję aż do napotkania -trypletu STOP (_ powyżej). Taka sekwencja to /gen/. - -#+BEGIN_SRC python :session mysession :results file - def get_genes(triplets): - gene = [] - for ammino in triplets: - if ammino == '_': - yield gene - gene = [] - else: - gene.append(ammino) - - plt.figure().clear() - plt.hist([len(g) for g in get_genes(get_triplets(dna))], bins=100) - - fname = '02_Jezyki/dna_length.png' - - plt.savefig(fname) - - fname -#+END_SRC - -#+RESULTS: -[[file:02_Jezyki/dna_length.png]]