diff --git a/notebooks/eda.ipynb b/notebooks/eda.ipynb
index e7f6df3..cd049c8 100644
--- a/notebooks/eda.ipynb
+++ b/notebooks/eda.ipynb
@@ -2,6 +2,7 @@
"cells": [
{
"cell_type": "code",
+ "execution_count": 21,
"id": "c93a55c8",
"metadata": {
"ExecuteTime": {
@@ -9,6 +10,7 @@
"start_time": "2025-09-21T12:36:58.109448Z"
}
},
+ "outputs": [],
"source": [
"import pandas as pd\n",
"import geopandas as gpd\n",
@@ -20,12 +22,11 @@
"sys.path.append(os.path.abspath(\"..\"))\n",
"from core.utils.data_loader import DataLoader\n",
"from core.config.pipeline_config import PipelineConfig"
- ],
- "outputs": [],
- "execution_count": 21
+ ]
},
{
"cell_type": "code",
+ "execution_count": 22,
"id": "c0b00261",
"metadata": {
"ExecuteTime": {
@@ -33,6 +34,7 @@
"start_time": "2025-09-21T12:37:00.288721Z"
}
},
+ "outputs": [],
"source": [
"config = PipelineConfig(\n",
" paths={\n",
@@ -47,37 +49,38 @@
")\n",
"\n",
"loader = DataLoader(config)"
- ],
- "outputs": [],
- "execution_count": 22
+ ]
},
{
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "b38394ce38864379",
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-21T13:08:32.554903Z",
"start_time": "2025-09-21T13:07:48.219021Z"
}
},
- "cell_type": "code",
+ "outputs": [],
"source": [
"gdf = gpd.read_file(\"../osm/provinces.shp\")\n",
"gdf_proj = gdf.to_crs(epsg=32732)\n",
"gdf['centroid'] = gdf_proj.geometry.centroid.to_crs(gdf.crs)\n",
"\n",
"df = loader.load_csv_complete(config.paths.data_dir / \"names_featured.csv\")"
- ],
- "id": "b38394ce38864379",
- "outputs": [],
- "execution_count": 36
+ ]
},
{
"cell_type": "markdown",
"id": "c5aee565",
"metadata": {},
- "source": "## Breakdown by Province"
+ "source": [
+ "## Breakdown by Province"
+ ]
},
{
"cell_type": "code",
+ "execution_count": 37,
"id": "dac785a7-1a32-4a1b-b35d-d8b85df60589",
"metadata": {
"ExecuteTime": {
@@ -85,6 +88,7 @@
"start_time": "2025-09-21T13:09:11.722493Z"
}
},
+ "outputs": [],
"source": [
"import unicodedata\n",
"\n",
@@ -107,12 +111,11 @@
"counts.columns = ['province', 'count']\n",
"\n",
"gdf = gdf.merge(counts, left_on='province', right_on='province', how='left')\n"
- ],
- "outputs": [],
- "execution_count": 37
+ ]
},
{
"cell_type": "code",
+ "execution_count": 39,
"id": "c3f83d00-0606-44ea-a704-fc54d69263b4",
"metadata": {
"ExecuteTime": {
@@ -120,50 +123,9 @@
"start_time": "2025-09-21T13:09:31.853694Z"
}
},
- "source": "gdf.head(12)",
"outputs": [
{
"data": {
- "text/plain": [
- " full_id name \\\n",
- "0 r5646651 Kinshasa \n",
- "1 r193090 Bas-Congo \n",
- "2 r5642699 Sud-Kivu \n",
- "3 r5642698 Nord-Kivu \n",
- "4 r5642697 Maniema \n",
- "5 r193087 Kasaï-Occidental \n",
- "6 r193088 Kasaï-Oriental \n",
- "7 r3652052 Équateur \n",
- "8 r3652285 Orientale \n",
- "9 r3652335 Bandundu \n",
- "10 r3652419 Katanga \n",
- "\n",
- " geometry \\\n",
- "0 POLYGON ((16.03321 -4.98926, 16.02639 -4.98868... \n",
- "1 POLYGON ((15.64766 -4.91155, 15.6477 -4.91174,... \n",
- "2 POLYGON ((29.24225 -1.69991, 29.24228 -1.69991... \n",
- "3 POLYGON ((29.39797 0.81304, 29.39806 0.81285, ... \n",
- "4 POLYGON ((28.19331 -4.15135, 28.19369 -4.15152... \n",
- "5 POLYGON ((23.28516 -6.91736, 23.286 -6.91859, ... \n",
- "6 POLYGON ((23.28042 -7.98622, 23.28018 -7.98616... \n",
- "7 POLYGON ((23.31621 -0.24045, 23.31099 -0.24055... \n",
- "8 POLYGON ((23.08876 -0.40575, 23.08401 -0.40572... \n",
- "9 POLYGON ((20.35736 -2.19989, 20.36211 -2.20019... \n",
- "10 POLYGON ((23.1898 -7.76858, 23.18972 -7.77019,... \n",
- "\n",
- " centroid province count \n",
- "0 POINT (15.89714 -4.45276) KINSHASA 1122773 \n",
- "1 POINT (14.28812 -5.2961) BAS-CONGO 268119 \n",
- "2 POINT (28.26546 -3.22633) SUD-KIVU 346152 \n",
- "3 POINT (28.70741 -0.60502) NORD-KIVU 394999 \n",
- "4 POINT (26.39038 -3.06735) MANIEMA 127813 \n",
- "5 POINT (21.62853 -5.4419) KASAI-OCCIDENTAL 362896 \n",
- "6 POINT (23.94445 -4.54154) KASAI-ORIENTAL 358138 \n",
- "7 POINT (20.63056 1.02935) EQUATEUR 356404 \n",
- "8 POINT (26.42917 2.12421) ORIENTALE 317201 \n",
- "9 POINT (18.35771 -4.37828) BANDUNDU 809949 \n",
- "10 POINT (26.4593 -8.73955) KATANGA 836220 "
- ],
"text/html": [
"
\n",
"\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " province | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " KINSHASA | \n",
+ " 1140620 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " AUTRES | \n",
+ " 1035751 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " KATANGA | \n",
+ " 836220 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " BANDUNDU | \n",
+ " 809949 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " KASAI-ORIENTAL | \n",
+ " 434497 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " NORD-KIVU | \n",
+ " 394999 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " KASAI-OCCIDENTAL | \n",
+ " 367626 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " EQUATEUR | \n",
+ " 356404 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " SUD-KIVU | \n",
+ " 346152 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " ORIENTALE | \n",
+ " 322756 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " BAS-CONGO | \n",
+ " 295155 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " MANIEMA | \n",
+ " 127813 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " province count\n",
+ "0 KINSHASA 1140620\n",
+ "1 AUTRES 1035751\n",
+ "2 KATANGA 836220\n",
+ "3 BANDUNDU 809949\n",
+ "4 KASAI-ORIENTAL 434497\n",
+ "5 NORD-KIVU 394999\n",
+ "6 KASAI-OCCIDENTAL 367626\n",
+ "7 EQUATEUR 356404\n",
+ "8 SUD-KIVU 346152\n",
+ "9 ORIENTALE 322756\n",
+ "10 BAS-CONGO 295155\n",
+ "11 MANIEMA 127813"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "display(df['province'].value_counts().reset_index().head(12))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "98ba6e48-a7c4-4aae-8b46-872489c95faf",
+ "metadata": {},
+ "source": [
+ "# Surname (for whole country)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "e324e1c9e8da4bd8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "surnames = df_simple['surname'].astype(str).str.lower().tolist()\n",
+ "surnames = [re.sub(r\"[^a-z]\", \"\", name) for name in surnames] \n",
+ "sequences = ['^' + s + '$' for s in surnames if s]\n",
+ "\n",
+ "tokens = ['^'] + list('abcdefghijklmnopqrstuvwxyz') + ['$']\n",
+ "index = {t: i for i, t in enumerate(tokens)}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "5f80329b-423e-4966-b3c8-80e68bc58d77",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "transitions = Counter()\n",
+ "for seq in sequences:\n",
+ " for a, b in zip(seq, seq[1:]):\n",
+ " if a in index and b in index:\n",
+ " transitions[(a, b)] += 1\n",
+ "\n",
+ "matrix = np.zeros((len(tokens), len(tokens)), dtype=int)\n",
+ "for (a, b), count in transitions.items():\n",
+ " matrix[index[a], index[b]] += count\n",
+ "\n",
+ "df_counts = pd.DataFrame(matrix, index=tokens, columns=tokens)\n",
+ "df_probs = df_counts.div(df_counts.sum(axis=1).replace(0, 1), axis=0) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e45b650a-4b9a-48f5-b532-4a3c25fe45b6",
+ "metadata": {},
+ "source": [
+ "## Transition matrix for the entire country"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "67b3e0f724af646b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5wAAANXCAYAAABZnVCmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgbZJREFUeJzs3Xd8VHX2//H3nZBMgJjQQigivVepglIUBBVQZFdZVEBAVFRUsqBEBQRdgyjNVRZBQXFFsWBZcRGMARsLUpSigjQRpLdQJ8nM/f3BL/N1TAaSzNx7U15PH/fxkM/cO+fMzWSSk8+5n2uYpmkKAAAAAIAwczmdAAAAAACgaKLgBAAAAABYgoITAAAAAGAJCk4AAAAAgCUoOAEAAAAAlqDgBAAAAABYgoITAAAAAGAJCk4AAAAAgCUoOAEAAAAAlqDgBGCr1157TYZhaNeuXRfdd/ny5TIMQ8uXL7c8Lyd16dJFTZo0Cdvz7dq1S4Zh6Pnnn7/ovk8++aQMwwgYq1Gjhu68807/v/PydciK/dprr+Ux69C98847KleunE6dOmV77KLsxx9/VIkSJbRp0yanUymUatSooV69ejmdBgA4hoITKMQMw8jVVtALtpkzZzpSoCD/FixYoOnTpzudhp/X69X48eM1YsQIxcTEOJ1OkdKoUSP17NlT48aNczoVAEAhVMLpBADk3xtvvBHw7/nz52vZsmXZxhs2bGhnWhc0YMAA/e1vf5Pb7faPzZw5UxUqVAiYVZOkTp066ezZs4qKirI5y+LjiSee0JgxYy64T05fhwULFmjTpk16+OGHA/atXr26zp49q8jISCvSDeo///mPtmzZorvvvtvWuMXFvffeqxtuuEHbt29X7dq1nU4HAFCIUHAChdgdd9wR8O///e9/WrZsWbbxPztz5oxKlSplZWpBRUREKCIiIlf7ulwuRUdHW5xR+J0+fVqlS5d2Oo1cKVGihEqUuPCPgrx8HQzDcORrNm/ePF155ZWqWrWqrXGd/F6yU7du3VS2bFm9/vrrmjhxotPpWG7jxo1q2rSp02kAQJFASy1QxGVdH7h27Vp16tRJpUqV0mOPPSZJ+uijj9SzZ09VqVJFbrdbtWvX1lNPPSWv15vjc/z444+6+uqrVapUKVWtWlWTJ0/OFu+f//ynGjdurFKlSqls2bJq3bq1FixY4H/8z9dw1qhRQ5s3b9aKFSv8LcBdunSRFPzawXfffVetWrVSyZIlVaFCBd1xxx3au3dvwD533nmnYmJitHfvXvXp00cxMTGKj4/XqFGjsr2+nGRdd7V06VK1aNFC0dHRatSokRYtWhSwX9brWbFihe677z5VrFhRl156qf/xmTNnqnHjxnK73apSpYruv/9+HT9+PMeYa9euVYcOHVSyZEnVrFlTs2bNCng8PT1d48aNU6tWrRQXF6fSpUurY8eOSk1NDfo6pk2bpurVq6tkyZLq3LlztuvwcrqG88/+/HXo0qWLFi9erF9//dX/NatRo4ak4Ndw/vzzz/rrX/+qcuXKKTo6Wq1bt9bHH38csE9GRoYmTJigunXrKjo6WuXLl9dVV12lZcuWXTC/c+fOacmSJerWrVu2x5YtW6arrrpKZcqUUUxMjOrXr+9//0vBrynO6b0X7Hvpj9fMzp49W7Vr15bb7VabNm303XffBTzvhg0bdOedd6pWrVqKjo5WpUqVNGTIEB05ciRgv6yvy9atW3XHHXcoLi5O8fHxGjt2rEzT1G+//aabbrpJsbGxqlSpkqZMmZLttXs8Ho0fP1516tSR2+1WtWrV9Mgjj8jj8eTpHElSZGSkunTpoo8++uiCXwu7HT16VKNGjVLTpk0VExOj2NhYXX/99frhhx9Cet7evXurUaNGmjJlig4ePBiWXC/2WQIARRUznEAxcOTIEV1//fX629/+pjvuuEMJCQmSzv+yHRMTo8TERMXExOiLL77QuHHjlJaWpueeey7gOY4dO6brrrtOffv21a233qr33ntPjz76qJo2barrr79ekjRnzhw9+OCD+utf/6qHHnpI586d04YNG7Rq1SrddtttOeY2ffp0/3V3jz/+uCT588vJa6+9psGDB6tNmzZKTk7WgQMHNGPGDH3zzTdav369ypQp49/X6/WqR48eateunZ5//nl9/vnnmjJlimrXrq3hw4df9Lz98ssv6tevn+69914NGjRI8+bN0y233KIlS5bo2muvDdj3vvvuU3x8vMaNG6fTp09LOl80TJgwQd26ddPw4cO1ZcsW/etf/9J3332nb775JqDt9NixY7rhhht06623qn///nrnnXc0fPhwRUVFaciQIZKktLQ0vfLKK+rfv7+GDRumkydP6tVXX1WPHj20evVqtWjRIiCn+fPn6+TJk7r//vt17tw5zZgxQ9dcc402btx4wXN8MY8//rhOnDihPXv2aNq0aZJ0wesmN2/e7J99HDNmjEqXLq133nlHffr00fvvv6+bb77Zf76Sk5N11113qW3btkpLS9OaNWu0bt26bOf7j9auXav09HS1bNkyW9xevXqpWbNmmjhxotxut7Zt26Zvvvkm36892PeSdL7N+OTJk7rnnntkGIYmT56svn37aseOHf6v9bJly7Rjxw4NHjxYlSpV0ubNmzV79mxt3rxZ//vf/7IV//369VPDhg01adIkLV68WE8//bTKlSunl19+Wddcc42effZZvfnmmxo1apTatGmjTp06SZJ8Pp9uvPFGff3117r77rvVsGFDbdy4UdOmTdPWrVv14Ycf5vkctWrVSh999JHS0tIUGxub73MYTjt27NCHH36oW265RTVr1tSBAwf08ssvq3Pnzvrxxx9VpUqVfD3vlClTNGvWLD3yyCNKSkpS7969ddddd6l79+657tD4o7x8lgBAkWMCKDLuv/9+88/f1p07dzYlmbNmzcq2/5kzZ7KN3XPPPWapUqXMc+fOZXuO+fPn+8c8Ho9ZqVIl8y9/+Yt/7KabbjIbN258wRznzZtnSjJ37tzpH2vcuLHZuXPnbPumpqaakszU1FTTNE0zPT3drFixotmkSRPz7Nmz/v0++eQTU5I5btw4/9igQYNMSebEiRMDnvPyyy83W7VqdcEcTdM0q1evbkoy33//ff/YiRMnzMqVK5uXX355ttdz1VVXmZmZmf7xgwcPmlFRUWb37t1Nr9frH3/xxRdNSebcuXP9Y1nnd8qUKf4xj8djtmjRwqxYsaKZnp5umqZpZmZmmh6PJyDPY8eOmQkJCeaQIUP8Yzt37jQlmSVLljT37NnjH1+1apUpyRw5cqR/bPz48dneM9WrVzcHDRrk//efvw6maZo9e/Y0q1evnu28ZcWeN2+ef6xr165m06ZNA95TPp/P7NChg1m3bl3/WPPmzc2ePXtme86LeeWVV0xJ5saNGwPGp02bZkoyDx06FPTYnN6Pppnzaw72vZT1msuXL28ePXrUP/7RRx+Zksz//Oc//rGcvufeeustU5L55Zdf+seyvi533323fywzM9O89NJLTcMwzEmTJvnHjx07ZpYsWTLga/bGG2+YLpfL/OqrrwJizZo1y5RkfvPNN7k+R1kWLFhgSjJXrVp10X3tcu7cuYDvL9M8//Vwu93Zvvfz49dffzUnTJhg1qxZ05RkXnrppeYTTzxh7tixI9fPkdvPEgAoqmipBYoBt9utwYMHZxsvWbKk//9Pnjypw4cPq2PHjjpz5ox+/vnngH1jYmICrg2NiopS27ZttWPHDv9YmTJltGfPnmxthOGyZs0aHTx4UPfdd1/AdYI9e/ZUgwYNtHjx4mzH3HvvvQH/7tixY0DOF1KlShX/7JskxcbGauDAgVq/fr32798fsO+wYcMCZj4+//xzpaen6+GHH5bL5QrYLzY2NluuJUqU0D333OP/d1RUlO655x4dPHhQa9eulXT++teshXt8Pp+OHj2qzMxMtW7dWuvWrcuWf58+fQKuaWzbtq3atWunTz/9NFevPxyOHj2qL774Qrfeeqv/PXb48GEdOXJEPXr00C+//OJvhy5Tpow2b96sX375JU8xstpRy5YtGzCeNdv90Ucfyefzhf5iFPx7STo/G/nHHDp27ChJAe+3P37PnTt3TocPH9YVV1whSTl+De+66y7//0dERKh169YyTVNDhw71j5cpU0b169cPiPPuu++qYcOGatCggf+cHz58WNdcc40k+duw83KOsl7b4cOHL7ifndxut//7y+v16siRI/624JzOZ15ddtllGjdunLZv366UlBR17tzZ3yXRrVs3ffnll7l6nrx8lgBAUUPBCRQDVatWzXGl182bN+vmm29WXFycYmNjFR8f7y8qT5w4EbDvpZdemq3dr2zZsjp27Jj/348++qhiYmLUtm1b1a1bV/fff39I7Yt/9uuvv0qS6tevn+2xBg0a+B/PEh0drfj4+AvmfCF16tTJ9prr1asnSdmu+atZs2auco2KilKtWrWy5VqlSpVsCw3lFOv1119Xs2bN/Nc4xsfHa/Hixdm+XpJUt27dbGP16tXL1T1Qw2Xbtm0yTVNjx45VfHx8wDZ+/HhJ8l8jN3HiRB0/flz16tVT06ZNNXr0aG3YsCHXsUzTDPh3v379dOWVV+quu+5SQkKC/va3v+mdd94JqfgM9r0knS9O/iirQPvj++3o0aN66KGHlJCQoJIlSyo+Pt7/3snpa/jn54yLi1N0dLQqVKiQbfyPcX755Rdt3rw52znPek9lnfO8nKOs83uxa35zsn///nxvF+Lz+TRt2jTVrVtXbrdbFSpUUHx8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UYLdquSbb74xr7jiCrNkyZJmlSpVzEceecT87LPPcrwdRE7PMWjQoIBbY7z88stmp06dzPLly5tut9usXbu2OXr0aPPEiRP+fXK6DcX+/fvNnj17mpdccokpyX+LlJxuTWGaprlw4ULz8ssvN91ut1muXDnz9ttvD7j9R1ZupUuXzpZzTrcByUn16tXNnj17mp999pnZrFkz0+12mw0aNDDffffdgP2yXs93332X4/O8+OKLZoMGDczIyEgzISHBHD58uHns2LGAfbLO75o1a8z27dub0dHRZvXq1c0XX3wxYD+fz2c+88wzZvXq1U23221efvnl5ieffJLt65B1m47nnnvOnDJlilmtWjXT7XabHTt2NH/44YeLno/c3Bbl1KlT5m233WaWKVPGlOSPn9NtUUzTNLdv324OHDjQrFSpkhkZGWlWrVrV7NWrl/nee+/593n66afNtm3bmmXKlDFLlixpNmjQwPzHP/7hvy3MhSxatMg0DMPcvXu3fywlJcW86aabzCpVqphRUVFmlSpVzP79+5tbt27Nllu3bt1Mt9ttJiQkmI899pi5bNmyXH8f/PF8/5kkc/z48f5/79mzx7z55pvNMmXKmHFxceYtt9xi/v7779n2y/q6/Pl2JcHe1znllp6ebj777LNm48aNTbfbbZYtW9Zs1aqVOWHCBP/3ZG7P0X//+19TkvnLL79ki+2kc+fOmX//+9/NypUrmyVLljSvvPJKc+XKlWbnzp1zvNVSbp06dSpsOeb2swQAiirDNEOYzgCAIqpGjRpq0qSJPvnkE6dTQS54vV41atRIt956q5566imn0yly+vTpI8Mw9MEHHzidCgCgkOG2KACAQi8iIkITJ07USy+9lGN7MfLvp59+0ieffEIhDwDIF2Y4ASAHzHACAACEjhlOAAAAAIAlmOEEAAAAAFiCGU4AAAAAgCUoOAEAAAAAlqDgBAAAAABYooTTCVjizAn7Y547bX/M6NL2xvNm2BtPkiIi7Y1XXC5pNn32xjMc+NuWYdgbz3PG3niSzPRztse0/b1z9qS98SQZCTVtjymf1954rgh740n2v3c8Z+2NJ0kRDpzXEm5749n9dZTs/zx34mdWhgOf5yWi7I1Xuqy98cLoXiPW6RRyNMtMczqFXGGGEwAAAABgCQpOAAAAAIAlimZLLQAAAACEATN0oeH8AQAA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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "letters = list('abcdefghijklmnopqrstuvwxyz')\n",
+ "plt.figure(figsize=(12, 10))\n",
+ "sns.heatmap(df_probs.loc[letters, letters].values,\n",
+ " xticklabels=letters, yticklabels=letters,\n",
+ " cmap=\"Reds\")\n",
+ "plt.title(\"Transition probabilities (surnames) — a -> b\")\n",
+ "plt.xlabel(\"Next letter\")\n",
+ "plt.ylabel(\"Current letter\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "ffb0b937-fb9e-47d5-94c7-20afdf99560c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " letter | \n",
+ " count | \n",
+ " freq | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " a | \n",
+ " 5638609 | \n",
+ " 0.175533 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " b | \n",
+ " 1982642 | \n",
+ " 0.061721 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " c | \n",
+ " 67967 | \n",
+ " 0.002116 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " d | \n",
+ " 833422 | \n",
+ " 0.025945 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " e | \n",
+ " 1888919 | \n",
+ " 0.058803 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " f | \n",
+ " 161048 | \n",
+ " 0.005014 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " g | \n",
+ " 1189924 | \n",
+ " 0.037043 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " h | \n",
+ " 502652 | \n",
+ " 0.015648 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " i | \n",
+ " 2434995 | \n",
+ " 0.075803 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " j | \n",
+ " 137482 | \n",
+ " 0.004280 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " k | \n",
+ " 1951774 | \n",
+ " 0.060760 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " l | \n",
+ " 1520935 | \n",
+ " 0.047348 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " m | \n",
+ " 2625688 | \n",
+ " 0.081739 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " n | \n",
+ " 2675387 | \n",
+ " 0.083286 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " o | \n",
+ " 2159415 | \n",
+ " 0.067224 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " p | \n",
+ " 311915 | \n",
+ " 0.009710 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " q | \n",
+ " 1252 | \n",
+ " 0.000039 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " r | \n",
+ " 285818 | \n",
+ " 0.008898 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " s | \n",
+ " 1048120 | \n",
+ " 0.032629 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " t | \n",
+ " 870620 | \n",
+ " 0.027103 | \n",
+ "
\n",
+ " \n",
+ " | 20 | \n",
+ " u | \n",
+ " 2235199 | \n",
+ " 0.069583 | \n",
+ "
\n",
+ " \n",
+ " | 21 | \n",
+ " v | \n",
+ " 139435 | \n",
+ " 0.004341 | \n",
+ "
\n",
+ " \n",
+ " | 22 | \n",
+ " w | \n",
+ " 417888 | \n",
+ " 0.013009 | \n",
+ "
\n",
+ " \n",
+ " | 23 | \n",
+ " x | \n",
+ " 708 | \n",
+ " 0.000022 | \n",
+ "
\n",
+ " \n",
+ " | 24 | \n",
+ " y | \n",
+ " 654446 | \n",
+ " 0.020373 | \n",
+ "
\n",
+ " \n",
+ " | 25 | \n",
+ " z | \n",
+ " 386517 | \n",
+ " 0.012032 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " letter count freq\n",
+ "0 a 5638609 0.175533\n",
+ "1 b 1982642 0.061721\n",
+ "2 c 67967 0.002116\n",
+ "3 d 833422 0.025945\n",
+ "4 e 1888919 0.058803\n",
+ "5 f 161048 0.005014\n",
+ "6 g 1189924 0.037043\n",
+ "7 h 502652 0.015648\n",
+ "8 i 2434995 0.075803\n",
+ "9 j 137482 0.004280\n",
+ "10 k 1951774 0.060760\n",
+ "11 l 1520935 0.047348\n",
+ "12 m 2625688 0.081739\n",
+ "13 n 2675387 0.083286\n",
+ "14 o 2159415 0.067224\n",
+ "15 p 311915 0.009710\n",
+ "16 q 1252 0.000039\n",
+ "17 r 285818 0.008898\n",
+ "18 s 1048120 0.032629\n",
+ "19 t 870620 0.027103\n",
+ "20 u 2235199 0.069583\n",
+ "21 v 139435 0.004341\n",
+ "22 w 417888 0.013009\n",
+ "23 x 708 0.000022\n",
+ "24 y 654446 0.020373\n",
+ "25 z 386517 0.012032"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "all_letters = \"\".join(df_simple['surname'].astype(str).str.lower().tolist())\n",
+ "letters_only = [c for c in all_letters if c.isalpha()]\n",
+ "\n",
+ "counts = Counter(letters_only)\n",
+ "letters = list(\"abcdefghijklmnopqrstuvwxyz\")\n",
+ "\n",
+ "# Build DataFrame with all 26 letters\n",
+ "df_letters = pd.DataFrame({\n",
+ " \"letter\": letters,\n",
+ " \"count\": [counts.get(l, 0) for l in letters]\n",
+ "})\n",
+ "\n",
+ "# Compute relative frequencies\n",
+ "df_letters[\"freq\"] = df_letters[\"count\"] / df_letters[\"count\"].sum()\n",
+ "df_letters"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "4c62f894-9d65-4470-898c-e33c20155dff",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAIjCAYAAACzoGDyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXpRJREFUeJzt3X98zfX///H72diZX9vMr+G9bH4U8nuy/MjI3g0lyntplB+J8kbYm0qJoo8pv6Yo0duv3n6nVPReMSY/ZmJUJCFMbEOyYdnYXt8/+u68HdvYmW1nXt2ul8vr0s7z9TzP5+N1tuN0P69fFsMwDAEAAAAAAFNwcXYBAAAAAACg8BD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQB/OVOnTlXt2rXl6uqqZs2aObscU9q1a5fc3Nx04sQJh5/bv39/+fn5FWje/v37q3z58gV6bl4sFouGDRtWqGPm5Xa2PT86dOigDh06FNn4txITEyOLxaKYmJhCHffll19WYGBgoY4JAHcygj4AIIdFixbJYrFo9+7dtz3W6dOn9frrr2vfvn051i1btkyRkZG3PYcjvv76a7344otq27atFi5cqMmTJxfr/H8Vr776qsLCwlSrVi1nl1Li3Ow9gYIZOXKkvvvuO33++efOLgUASoRSzi4AAGBup0+f1htvvCE/P78ce8+XLVum/fv3a+TIkcVWz6ZNm+Ti4qJ///vfcnNzK7Z5/0r27dunjRs3aseOHc4upUS62Xti/vz5ysrKck5hdzAfHx91795d06ZN06OPPurscgDA6dijDwAwlaysLF25ciXP9WfOnFGZMmVuGfJvNQ7ytnDhQt111126//77nV3KHad06dKyWq3OLqPADMPQH3/8UWzzXb582fbzE088oW3btumXX34ptvkBoKQi6AMACuzUqVN65plnVK1aNVmtVt17771asGCBbX1MTIzuu+8+SdKAAQNksVhksVi0aNEidejQQevXr9eJEyds7defm5yenq4JEyaobt26slqt8vX11Ysvvqj09HS7GrLPn166dKnuvfdeWa1WRUVF5VqvxWLRwoULdfnyZbtabjXOrbYz26+//qoePXqoXLlyqlq1qkaNGqWvvvoqxznJfn5+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dO7cOQUFBemXX35RSkqKQ3Nmv57h4eF27f/6178kSevXr7dr9/f3V0hISI4x8vN+2Ldvnw4fPqzevXvrt99+s71mly9fVqdOnfTNN9/kuDjhjb/b61WsWFHnzp3L55YCgHlx6D4AwGFnz57VhQsXNG/ePM2bNy/XPmfOnCnw+IcPH9bBgwdVpUqVfI3t7+9f4LluNo4j23nixAnVrVs3x3np99xzT4HrcfR1uOuuu3L0qVixon7//XdJf25Pamqq7VDzvHh5ealbt25atmyZJk2aJOnPw/Zr1qxp+5LhVozrDqnOduDAAY0bN06bNm1Samqq3br8hNF69erlaLv77ru1atUqu7bs89ivd/3rkG3dunV68803tW/fPrtzx2/8Hd5s7rS0NJ09e1YuLi5F8p44evSoatSoIW9v75v22759uyZMmKDY2FilpaXZrUtJSZGnp2e+5zxx4oRcXFxUt25du3YfHx95eXnpxIkTdu25vf/y+344fPiwJKlfv3551pOSkmL3xdHN3u+GYeT6+wOAvxqCPgDAYdl72J566qk8/we9SZMmtzV+48aNNWPGjFzX+/r62j2+fm/m7bhxnKLazryCSGZmplxdXe3md+R1uP6518stdN9K3759tXr1au3YsUONGzfW559/rn/+859ycbn5wYDZ1wK4MVRfuHBBQUFB8vDw0MSJE1WnTh25u7srPj5eL730UqHeUi6v1+F6W7du1aOPPqr27dvrvffeU/Xq1VW6dGktXLhQy5Ytc3jOon5P3MzRo0fVqVMn1a9fXzNmzJCvr6/c3Nz05ZdfaubMmQV+bfMbmG/n/Zdd29SpU3PcajBb9rU78jPf77//rsqVKxe4HgAwC4I+AMBhVapUUYUKFZSZmWm70nVebhYW8lpXp04dfffdd+rUqZNT9845sp21atXS/v37c+xRPHToUI6+FStW1IULF3K0nzhxQrVr17Y9LuzXoUqVKvLw8MjzSvXX69y5s6pUqaKlS5cqMDBQaWlpevrpp2/5vPr160uSjh07ZtceExOj3377TZ988onat29va7+x381k7/293s8//5znxRdvZs2aNXJ3d9dXX31ldzu7hQsXOjR32bJlbUcPFMZ74kZ16tTRV199pfPnz+e5V/+LL75Qenq6Pv/8c7ujOm48tSO/atWqpaysLB0+fFgNGjSwtScnJ+vC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hmr+/Pn6/fffnV0WctGnTx+tWbPGdkj40qVL9eSTT8rFpXjjVFBQkGJiYmQYhrZu3arHH39cDRo00LZt27RlyxbVqFFD9erVK9aask2bNk3Xrl3T6tWrtXTpUlmtVqfUMWjQIH399dc6deqUJGnRokXq37+/3b+LzvLMM8/o4sWLWrZsWZH/7RD0naRbt246f/685s+fr7i4OMXFxUn684Iwf3VlypRxdgkl1qVLlyT9ee7wvn37bMuPP/7o1PP0kbcbr25vsVicdooObq158+a2QxAN7gSQ69/v9W3Z/9PkjL9p3lu4HeXKlXN2CZL+/AJtw4YN+u9//6uGDRvq3Xff1T333KNjx445uzSnc3FxyfHv8NWrV51UzZ//724YhtavX6+TJ09q69atTjm1q0OHDtq2bZu+++47lS5dWvXr11eHDh0UExOjLVu2OPVL6qNHj+r06dPKyspy2rUdpD8/y5s2baolS5Zoz549OnDggPr37++0erK9+eab+uqrr/T555+rQoUKRT4fQd8JfvvtNx06dEjjxo1Tp06d1KBBA6d/e5v9RUO2nTt3ql69enJ1dS32WurVq6cyZcoU+8U7clOnTh2VLl3a7vX5/fff9fPPPzulnoYNG8pqtSohIUF169a1WziHTqpdu7ZKly5td52AlJQUp/2+cOepU6eONm/erM8++0zDhw93djm4A9SpU8d2rne2q1ev6ttvv1XDhg2dUlNJ+UwvaZ+hJZXFYlHbtm31xhtvaO/evXJzc9Onn37qtHrc3NycckTnjapUqaLExETb49TUVKd+AeLu7q7HH39cS5cu1fLly3XPPfeoRYsWxV5H9nn6M2fOtIX67KAfExNT7OfnZ8vIyNBTTz2lXr16adKkSXr22WedegTjs88+q0WLFmnhwoUKDg52+v8nr1mzRhMnTtSqVatUp06dYpmT2+s5QcWKFVWpUiXNmzdP1atXV0JCgt3VMp0hISFB4eHheu655xQfH693333XaVeXd3d310svvaQXX3xRbm5uatu2rc6ePasDBw5o4MCBxVpL+fLlNXDgQI0ZM0aVKlVS1apV9eqrrxb7YVrZKlSooNGjR2vUqFHKyspSu3btlJKSou3bt8vDw0P9+vVzSl0lRYUKFdSvXz+NGTNG3t7eqlq1qiZMmCAXF5cScbgW7gx33323Nm/erA4dOqhUqVLcSxo3Va5cOQ0ZMsT2785dd92lt99+W2lpacX+mZWtpHyml7TP0JIoLi5O0dHReuihh1S1alXFxcXp7NmzatCggdNq8vPzU1xcnI4fP67y5cvL29vbKb+zBx98UIsWLVK3bt3k5eWl8ePHO2UH1PX69OmjRx55RAcOHCj2K9tnq1ixopo0aaKlS5dq9uzZkqT27dvriSee0NWrV522R//VV19VSkqK3nnnHZUvX15ffvmlnnnmGa1bt84p9fTu3VujR4/W/PnztWTJEqfUkG3//v3q27evXnrpJd17771KSkqS9OeXakV5y2OCvhO4uLhoxYoVeuGFF9SoUSPdc889euedd5z2DZwk9e3bV3/88YdatWolV1dXjRgxQoMHD3ZaPa+99ppKlSql8ePH6/Tp06pevbqef/55p9QydepUXbp0Sd26dVOFChX0r3/9SykpKU6pRZImTZqkKlWqKCIiQr/88ou8vLzUokULvfLKK06rqSSZMWOGnn/+eT3yyCPy8PDQiy++qJMnT8rd3d3ZpeEOcs8992jTpk3q0KGDXF1dnX5bTZRsU6ZMUVZWlp5++mldvHhRLVu21FdffaWKFSs6pZ6S9Jle0j5DSxoPDw998803ioyMVGpqqmrVqqXp06erS5cuTqtp9OjR6tevnxo2bKg//vhDx44dc8qtc8eOHatjx47pkUcekaenpyZNmuT0UxoefPBBeXt769ChQ+rdu7fT6ggKCtK+ffts2cHb21sNGzZUcnKyU66BERMTo8jISG3evFkeHh6SpI8++khNmzbV+++/ryFDhhR7TZ6enurZs6fWr1/v9Fv47t69W2lpaXrzzTf15ptv2tqzr7dQVCwGJyECMLHLly+rZs2amj59utP2ruHmwsLC5Orqqv/85z/OLgW443Xo0EHNmjUr0Uei3Ak1ArjzderUSffee6/eeecdZ5fiFBw7BcBU9u7dq+XLl+vo0aOKj4+3XSine/fuTq4MN7p27Zp+/PFHxcbG6t5773V2OQAAwAR+//13ffrpp4qJidHQoUOdXY7TcOg+ANOZNm2aDh06JDc3NwUEBGjr1q2qXLmys8vCDfbv3682bdqoY8eOTjs1BwAAmEvz5s31+++/66233ioRt/N0Fg7dBwAAAADARDh0HwAAAAAAEyHoAwAAAABgIgR9AAAAAABMhKAPAAAAAICJEPQBAAAAADARgj4AAAAAACZC0AcAAPnSv39/9ejRo0DP7dChg0aOHGnXFhMTI4vFogsXLtx2bQAA4H8I+gAA4I5mGIauXbvm7DIAACgxCPoAAOC27d+/X126dFH58uVVrVo1Pf300zp37pykP48E2LJli2bNmiWLxSKLxaLjx4+rY8eOkqSKFSvKYrGof//+kqSsrCxFRETI399fZcqUUdOmTfXxxx/b5so+EuC///2vAgICZLVatW3btmLfZgAASiqCPgAAuC0XLlzQgw8+qObNm2v37t2KiopScnKynnjiCUnSrFmz1Lp1aw0aNEiJiYlKTEyUr6+v1qxZI0k6dOiQEhMTNWvWLElSRESElixZorlz5+rAgQMaNWqUnnrqKW3ZssVu3pdffllTpkzRwYMH1aRJk+LdaAAASrBSzi4AAADc2WbPnq3mzZtr8uTJtrYFCxbI19dXP//8s+6++265ubmpbNmy8vHxsfXx9vaWJFWtWlVeXl6SpPT0dE2ePFkbN25U69atJUm1a9fWtm3b9MEHHygoKMj2/IkTJ+rvf/97MWwhAAB3FoI+AAC4Ld999502b96s8uXL51h39OhR3X333fke68iRI0pLS8sR4DMyMtS8eXO7tpYtWxasYAAATI6gDwAAbsulS5fUrVs3vfXWWznWVa9e3eGxJGn9+vWqWbOm3Tqr1Wr3uFy5cg5WCgDAXwNBHwAA3JYWLVpozZo18vPzU6lSuf+vhZubmzIzM3O0SbJrb9iwoaxWqxISEuwO0wcAAPlH0AcAAPmWkpKiffv22bUNHjxY8+fPV1hYmF588UV5e3vryJEjWrFihT788EO5urrKz89PcXFxOn78uMqXLy9vb2/VqlVLFotF69atU9euXVWmTBlVqFBBo0eP1qhRo5SVlaV27dopJSVF27dvl4eHh/r16+ecDQcA4A7CVfcBAEC+xcTEqHnz5nbLpEmTtH37dmVmZuqhhx5S48aNNXLkSHl5ecnF5c//1Rg9erRcXV3VsGFDValSRQkJCapZs6beeOMNvfzyy6pWrZqGDRsmSZo0aZJee+01RUREqEGDBurcubPWr18vf39/Z246AAB3DIthGIaziwAAAAAAAIWDPfoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCL/D73PSqBSYeL0AAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(12,6))\n",
+ "sns.barplot(x=\"letter\", y=\"freq\", data=df_letters, color=\"steelblue\")\n",
+ "plt.title(\"Letter frequency (alphabetical order)\")\n",
+ "plt.xlabel(\"Letter\")\n",
+ "plt.ylabel(\"Relative frequency\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "b90a37c2-a368-4df2-a2d4-4e5d0fdba63e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAIjCAYAAACzoGDyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXxpJREFUeJzt3Xt8z/X///H7e2Obww5mY6ZlQ4WcJ8shI8uklJJT5JAPnw7E9kF0QPE1ybH0aVGEDzmW+lATy3zCEEM5JIQV25BsbBnbXr8/+nnXu23szbb326vb9XJ5Xdr7+Xq+n6/H62Xrvfter9fzZTEMwxAAAAAAADAFF0cXAAAAAAAAig9BHwAAAAAAEyHoAwAAAABgIgR9AAAAAABMhKAPAAAAAICJEPQBAAAAADARgj4AAAAAACZC0AcAAAAAwEQI+gAAAAAAmAhBHwDwt/bmm2+qZs2acnV1VePGjR1djint2LFDbm5uOnHixHX7BgcHq3///iVflBMYP368LBaLTZsZ9//DDz+UxWLR8ePHi3Xcnj17qnv37sU6JgCYBUEfAHBNV39J37lz502PderUKY0fP1579uzJt27JkiWaOXPmTW/DHl9++aVGjRqlVq1aaf78+Zo0aVKpbv/v4uWXX1avXr1Uo0YNR5cCE3nxxRe1atUq7d2719GlAIDTKePoAgAAfx+nTp3Sa6+9puDg4Hxnz5csWaJ9+/Zp+PDhpVbPV199JRcXF33wwQdyc3Mrte3+nezZs0cbNmzQ1q1bHV3KLeHQoUNyceE8TFE0adJEzZo107Rp07Rw4UJHlwMAToVPEgCAaeXl5enSpUuFrj99+rTKlSt33ZB/vXFQuPnz5+v222/Xvffe6+hSbgnu7u4qW7aso8uwS2n/fGRmZlq/7t69uz7++GNdvHix1LYPALcCgj4AoFicPHlSTz/9tKpWrSp3d3fdfffdmjdvnnV9QkKC7rnnHknSgAEDZLFYZLFY9OGHH6pt27Zau3atTpw4YW0PDg62vjc7O1vjxo1T7dq15e7urqCgII0aNUrZ2dk2NVgsFg0ZMkSLFy/W3XffLXd3d8XFxRVYr8Vi0fz585WZmWlTy/XGud5+XvXzzz+rS5cuqlChgqpUqaKoqCitW7dOFotFCQkJ1n6F3ZPdtm1btW3b1qbN3uOwevVq1a9f31pnQcfi5MmTGjhwoAIDA+Xu7q6QkBA9++yzunz5sn788UdZLBbNmDEj3/u2bt0qi8Wijz76qMDje9Xq1at1//3357sX3TAMTZw4UbfddpvKly+vdu3aaf/+/QWOcf78eQ0fPlxBQUFyd3dX7dq19cYbbygvL8+m39KlSxUaGipPT095eXmpQYMGmjVrVr6xoqKiFBwcLHd3d912223q27evzp49W6LHefPmzbrnnnvk4eGhWrVq6b333itwX//6/XD11pktW7YoOjpa/v7+qlChgh577DGdOXPG5r15eXkaP368AgMDrcf0wIEDRb7vPzMzU//617+sx/muu+7S1KlTZRhGgftd0M/H/v37df/996tcuXK67bbbNHHixHz/Tld98cUXuu+++1ShQgV5enrqoYceyvc90L9/f1WsWFFHjx5Vp06d5Onpqd69e1vXP/DAA8rMzNT69euvu38A8HfCpfsAgJuWlpame++91xoA/P399cUXX2jgwIHKyMjQ8OHDVbduXb3++usaO3asBg8erPvuu0+S1LJlS1WvXl3p6en6+eefraGyYsWKkn4PL4888og2b96swYMHq27duvruu+80Y8YM/fDDD1q9erVNLV999ZWWL1+uIUOGyM/Pz+YPBn+2aNEizZkzRzt27ND7779vreVa4xRlPyXpt99+U/v27ZWcnKwXXnhBgYGBWrRokb766qsbPsb2HofNmzfr448/1nPPPSdPT0+99dZb6tq1q5KTk1W5cmVJv99K0bx5c50/f16DBw9WnTp1dPLkSa1cuVJZWVmqWbOmWrVqpcWLFysqKspm/MWLF8vT01OPPvpooTWfPHlSycnJatq0ab51Y8eO1cSJE9WpUyd16tRJSUlJ6tChgy5fvmzTLysrS+Hh4Tp58qT++c9/6vbbb9fWrVs1ZswYpaSkWOd1WL9+vXr16qX27dvrjTfekCQdPHhQW7Zs0bBhwyRJFy9e1H333aeDBw/q6aefVtOmTXX27Fl99tln+vnnn+Xn51cix/m7775Thw4d5O/vr/HjxysnJ0fjxo1T1apVr/2P/idDhw5VpUqVNG7cOB0/flwzZ87UkCFDtGzZMmufMWPGaMqUKercubMiIyO1d+9eRUZGFulsu2EYeuSRR7Rx40YNHDhQjRs31rp16zRy5EidPHky3x97Cvr5SE1NVbt27ZSTk6PRo0erQoUKmjNnjsqVK5dve4sWLVK/fv0UGRmpN954Q1lZWXr33XfVunVr7d692+bnNicnR5GRkWrdurWmTp2q8uXLW9fVq1dP5cqV05YtW/TYY48V+XgCgOkZAABcw/z58w1JxjfffFNon4EDBxrVqlUzzp49a9Pes2dPw9vb28jKyjIMwzC++eYbQ5Ixf/78fGM89NBDRo0aNfK1L1q0yHBxcTG+/vprm/bY2FhDkrFlyxZrmyTDxcXF2L9/f5H2rV+/fkaFChXytRc2TlH3c+bMmYYkY/ny5dY+mZmZRu3atQ1JxsaNG63tNWrUMPr165evhvDwcCM8PNz62t7j4ObmZhw5csTatnfvXkOS8fbbb1vb+vbta7i4uBT4b5uXl2cYhmG89957hiTj4MGD1nWXL182/Pz8Cqz7zzZs2GBIMv773//atJ8+fdpwc3MzHnroIet2DMMwXnrpJUOSzbgTJkwwKlSoYPzwww82Y4wePdpwdXU1kpOTDcMwjGHDhhleXl5GTk5OofWMHTvWkGR8/PHHhe5vSRznLl26GB4eHsaJEyesbQcOHDBcXV2Nv/4q9tfvh6s/fxERETbHKioqynB1dTXOnz9vGIZhpKamGmXKlDG6dOliM9748ePzHdOCrF692pBkTJw40ab9iSeeMCwWi80+FvbzMXz4cEOSsX37dmvb6dOnDW9vb0OScezYMcMwDOPChQuGj4+PMWjQIJv3p6amGt7e3jbt/fr1MyQZo0ePLrT2O++803jwwQevuX8A8HfDpfsAgJtiGIZWrVqlzp07yzAMnT171rpERkYqPT1dSUlJNzz+ihUrVLduXdWpU8dm7Pvvv1+StHHjRpv+4eHhqlev3k3tU0Hj2LOfn3/+uapVq6YnnnjC+v7y5ctr8ODBN1yPvcchIiJCtWrVsr5u2LChvLy89OOPP0r6/QqB1atXq3PnzmrWrFm+7V291L579+7y8PDQ4sWLrevWrVuns2fPqk+fPtes+ZdffpEkVapUyaZ9w4YNunz5soYOHWpzSX9BEzGuWLFC9913nypVqmSz3xEREcrNzdX//vc/SZKPj891L+FetWqVGjVqVOCZ36t1FPdxzs3N1bp169SlSxfdfvvt1n5169ZVZGRkobX+1eDBg22O1X333afc3FzrIwvj4+OVk5Oj5557zuZ9Q4cOLdL4n3/+uVxdXfXCCy/YtP/rX/+SYRj64osvbNoL+jn7/PPPde+996p58+bWNn9/f5tL7aXfr744f/68evXqZXOMXV1dFRYWlu8YS9Kzzz5baO1XvzcAAH/g0n0AwE05c+aMzp8/rzlz5mjOnDkF9jl9+vQNj3/48GEdPHhQ/v7+RRo7JCTkhrd1rXHs2c8TJ06odu3a+e5Lv+uuu264HnuPw59D5VWVKlXSr7/+Kun3/cnIyFD9+vWvuV0fHx917txZS5Ys0YQJEyT9ftl+9erVreH3eoy/3ON9NZzecccdNu3+/v75/ihw+PBhffvtt9fd7+eee07Lly/Xgw8+qOrVq6tDhw7q3r27OnbsaO179OhRde3a9Zq1lsRx/u233/Ltq/T798Pnn39+zXoK287V43R1O1ePae3atW36+fr65jumBTlx4oQCAwPl6elp0163bl2b8a8q6OfsxIkTCgsLy9f+1+/7w4cPS1Kh3z9eXl42r8uUKaPbbrut0NoNw8j3swYAf3cEfQDATbk60VafPn3Ur1+/Avs0bNjwpsZv0KCBpk+fXuD6oKAgm9cF3Q98I/46TkntZ2EBJTc3V66urjbbt+c4/Pm9f/bX0F0Uffv21YoVK7R161Y1aNBAn332mZ577rnrPgbu6j3qV8PojcjLy9MDDzygUaNGFbj+zjvvlCRVqVJFe/bs0bp16/TFF1/oiy++0Pz589W3b18tWLDAru056jhfS2ltp6hu5ufs6s/SokWLFBAQkG99mTK2v566u7tf83vt119/LfAPKQDwd0bQBwDcFH9/f3l6eio3N1cRERHX7Huts26FratVq5b27t2r9u3bO/SsnT37WaNGDe3bty/fmcZDhw7l61upUiWdP38+X/uJEydUs2ZN6+viPg7+/v7y8vLSvn37rtu3Y8eO8vf31+LFixUWFqasrCw99dRT131fnTp1JEnHjh2zaa9Ro4ak38/s/nkfz5w5k++PArVq1dLFixeve8wlyc3NTZ07d1bnzp2Vl5en5557Tu+9955effVV1a5dW7Vq1bru/pbEcS5Xrpz1LPafFfT9cKOuHtMjR47YnG3/5ZdfivSHlho1amjDhg26cOGCzVn977//3mb8641RlP28eqtDlSpVivTvei05OTn66aef9Mgjj9zUOABgNtyjDwC4Ka6ururatatWrVpVYIj68yPAKlSoIEkFBtsKFSooPT09X3v37t118uRJzZ07N9+63377zeaZ2iXJnv3s1KmTTp06pZUrV1rbsrKyCrzkv1atWtq2bZvNbPNr1qzRTz/9ZNOvuI+Di4uLunTpov/+97/auXNnvvV/PlNcpkwZ9erVS8uXL9eHH36oBg0aFOnqherVqysoKCjf+BERESpbtqzefvttm+1cnUH/z7p3767ExEStW7cu37rz588rJydH0h/zAfx5/67WePWxeF27dtXevXv1ySefFLq/xX2cXV1dFRkZqdWrVys5OdnafvDgwQL36Ua1b99eZcqU0bvvvmvTPnv27CK9v1OnTsrNzc3Xf8aMGbJYLHrwwQeLNMa2bdu0Y8cOa9uZM2ds5neQpMjISHl5eWnSpEm6cuVKvnH++tjAazlw4IAuXbpk88QMAABn9AEARTRv3rwCnw8+bNgwTZ48WRs3blRYWJgGDRqkevXq6dy5c0pKStKGDRt07tw5Sb+HWh8fH8XGxsrT01MVKlRQWFiYQkJCFBoaqmXLlik6Olr33HOPKlasqM6dO+upp57S8uXL9cwzz2jjxo1q1aqVcnNz9f3332v58uVat25dgZPJlYSi7uegQYM0e/Zs9e3bV7t27VK1atW0aNEim8eCXfWPf/xDK1euVMeOHdW9e3cdPXpU//nPf2wmeJNUIsdh0qRJ+vLLLxUeHm59lFxKSopWrFihzZs3y8fHx9q3b9++euutt7Rx40br4+uK4tFHH9Unn3xic3WDv7+/RowYoZiYGD388MPq1KmTdu/erS+++EJ+fn427x85cqQ+++wzPfzww+rfv79CQ0OVmZmp7777TitXrtTx48fl5+enf/zjHzp37pzuv/9+3XbbbTpx4oTefvttNW7c2Hqf+ciRI7Vy5Up169ZNTz/9tEJDQ3Xu3Dl99tlnio2NVaNGjUrkOL/22muKi4vTfffdp+eee045OTl6++23dffdd+vbb7+1a6zCVK1aVcOGDdO0adP0yCOPqGPHjtq7d6/1mF7v6oTOnTurXbt2evnll3X8+HE1atRIX375pT799FMNHz483/djQUaNGqVFixapY8eOGjZsmPXxejVq1LDZTy8vL7377rt66qmn1LRpU/Xs2VP+/v5KTk7W2rVr1apVqyL/gWL9+vUqX768HnjggSL1B4C/DQfM9A8AuIVcfbxXYctPP/1kGIZhpKWlGc8//7wR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yJHy9fXV7bffrilTpigrK0sDBw50SE3JycmKjo7WP//5TyUlJentt9926IzcknTnnXdq48aNatu2rcqUKeOQZ5B7enpqxIgRioqKUl5enlq3bq309HRt2bJFXl5e6tevX6nX5Ew8PT3Vr18/6/dylSpVNG7cOLm4uDjk8uvt27crPj5eHTp0UJUqVbR9+3adOXNGdevWLfVa/iw4OFjbt2/X8ePHVbFiRfn6+pb6ZasVK1bUwIEDNXLkSFWuXFlVqlTRyy+/7PDLZ5988kmNGDFCc+fO1cKFCx1ai7OoVKmSGjZsqMWLF2v27NmSpDZt2qh79+66cuWKQ87o79u3T3379tWLL76ou+++W6mpqZJ+/yOWIx6j64yfWShc79699fDDD2v//v2l/sQIZ+bh4aEXX3xRo0aNkpubm1q1aqUzZ85o//79pf77oDN+Rrz88stKT0/XW2+9pYoVK+rzzz/X008/rTVr1pTodgn6DuDi4qKlS5fqhRdeUP369XXXXXfprbfecthftnHrGDNmjI4dO6aHH35Y3t7emjBhgsMv5Z08ebLy8vL01FNP6cKFC2rWrJnWrVunSpUqOaSevn376rffflPz5s3l6uqqYcOGafDgwQ6p5c/uuusuffXVV2rbtq1cXV0d8ovchAkT5O/vr5iYGP3444/y8fFR06ZN9dJLL5V6Lc5o+vTpeuaZZ/Twww/Ly8tLo0aN0k8//SQPD49Sr8XLy0v/+9//NHPmTGVkZKhGjRqaNm2aHnzwwVKv5c9GjBihfv36qV69evrtt9907Ngxhzzu6s0339TFixfVuXNneXp66l//+pfS09NLvY4/8/b2VteuXbV27VqneNSVswgPD9eePXusv+P4+vqqXr16SktLc8g9szt37lRWVpYmTpyoiRMn2tT55ycClBZn/cxCwe6//375+vrq0KFDevLJJx1djlN59dVXVaZMGY0dO1anTp1StWrV9MwzzzikFmf6jEhISNDMmTO1ceNGeXl5SZIWLVqkRo0a6d1339Wzzz5bYtu2GI68aRQAACeVmZmp6tWra9q0aQ67QgW3lvbt2+vuu+/WW2+95ehScAto27atGjdu7JCrvGAevXr1kqurq/7zn/84uhSn9nf8eeMefQAAJO3evVsfffSRjh49qqSkJOskS48++qiDK4Oz+/XXX/XJJ58oISFBzz//vKPLAfA3kJOTowMHDigxMVF33323o8uBE+LSfQAA/r+pU6fq0KFDcnNzU2hoqL7++mv5+fk5uiw4uSZNmujXX3/VG2+84fBHOAH4e9i3b59atmypdu3aOewSeTg3Lt0HAAAAAMBEuHQfAAAAAAATIegDAAAAAGAiBH0AAAAAAEyEoA8AAAAAgIkQ9AEAAAAAMBGCPgAAAAAAJkLQBwAARdK/f3916dLlht7btm1bDR8+3KYtISFBFotF58+fv+naAADAHwj6AADglmYYhnJychxdBgAAToOgDwAAbtq+ffv04IMPqmLFiqpataqeeuopnT17VtLvVwJs2rRJs2bNksVikcVi0fHjx9WuXTtJUqVKlWSxWNS/f39JUl5enmJiYhQSEqJy5cqpUaNGWrlypXVbV68E+OKLLxQaGip3d3dt3ry51PcZAABnRdAHAAA35fz587r//vvVpEkT7dy5U3FxcUpLS1P37t0lSbNmzVKLFi00aNAgpaSkKCUlRUFBQVq1apUk6dChQ0pJSdGsWbMkSTExMVq4cKFiY2O1f/9+RUVFqU+fPtq0aZPNdkePHq3Jkyfr4MGDatiwYenuNAAATqyMowsAAAC3ttmzZ6tJkyaaNGmStW3evHkKCgrSDz/8oDvvvFNubm4qX768AgICrH18fX0lSVWqVJGPj48kKTs7W5MmTdKGDRvUokULSVLNmjW1efNmvffeewoPD7e+//XXX9cDDzxQCnsIAMCthaAPAABuyt69e7Vx40ZVrFgx37qjR4/qzjvvLPJYR44cUVZWVr4Af/nyZTVp0sSmrVmzZjdWMAAAJkfQBwAAN+XixYvq3Lmz3njjjXzrqlWrZvdYkrR27VpVr17dZp27u7vN6woVKthZKQAAfw8EfQAAcFOaNm2qVatWKTg4WGXKFPyrhZubm3Jzc/O1SbJpr1evntzd3ZWcnGxzmT4AACg6gj4AACiy9PR07dmzx6Zt8ODBmjt3rnr16qVRo0bJ19dXR44c0dKlS/X+++/L1dVVwcHB2r59u44fP66KFSvK19dXNWrUkMVi0Zo1a9SpUyeVK1dOnp6eGjFihKKiopSXl6fWrVsrPT1dW7ZskZeXl/r16+eYHQcA4BbCrPsAAKDIEhIS1KRJE5tlwoQJ2rJli3Jzc9WhQwc1aNBAw4cPl4+Pj1xcfv9VY8SIEXJ1dVW9evXk7++v5ORkVa9eXa+99ppGjx6tqlWrasiQIZKkCRMm6NVXX1VMTIzq1q2rjh07au3atQoJCXHkrgMAcMuwGIZhOLoIAAAAAABQPDijDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAmQtAHAAAAAMBECPoAAAAAAJgIQR8AAAAAABMh6AMAAAAAYCIEfQAAAAAATISgDwAAAACAiRD0AQAAAAAwEYI+AAAAAAAm8v8A4Up9VwKr3NYAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "df_sorted = df_letters.sort_values(\"freq\", ascending=False)\n",
+ "\n",
+ "plt.figure(figsize=(12,6))\n",
+ "sns.barplot(x=\"letter\", y=\"freq\", data=df_sorted, color=\"darkorange\")\n",
+ "plt.title(\"Letter frequency (descending order)\")\n",
+ "plt.xlabel(\"Letter\")\n",
+ "plt.ylabel(\"Relative frequency\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "41a84964-69b1-4b3f-af5e-02118c26234d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " letter | \n",
+ " count | \n",
+ " freq | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " a | \n",
+ " 5638609 | \n",
+ " 0.175533 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " n | \n",
+ " 2675387 | \n",
+ " 0.083286 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " m | \n",
+ " 2625688 | \n",
+ " 0.081739 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " i | \n",
+ " 2434995 | \n",
+ " 0.075803 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " u | \n",
+ " 2235199 | \n",
+ " 0.069583 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " o | \n",
+ " 2159415 | \n",
+ " 0.067224 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " b | \n",
+ " 1982642 | \n",
+ " 0.061721 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " k | \n",
+ " 1951774 | \n",
+ " 0.060760 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " e | \n",
+ " 1888919 | \n",
+ " 0.058803 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " l | \n",
+ " 1520935 | \n",
+ " 0.047348 | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " g | \n",
+ " 1189924 | \n",
+ " 0.037043 | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " s | \n",
+ " 1048120 | \n",
+ " 0.032629 | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " t | \n",
+ " 870620 | \n",
+ " 0.027103 | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " d | \n",
+ " 833422 | \n",
+ " 0.025945 | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " y | \n",
+ " 654446 | \n",
+ " 0.020373 | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " h | \n",
+ " 502652 | \n",
+ " 0.015648 | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " w | \n",
+ " 417888 | \n",
+ " 0.013009 | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " z | \n",
+ " 386517 | \n",
+ " 0.012032 | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " p | \n",
+ " 311915 | \n",
+ " 0.009710 | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " r | \n",
+ " 285818 | \n",
+ " 0.008898 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " letter count freq\n",
+ "0 a 5638609 0.175533\n",
+ "1 n 2675387 0.083286\n",
+ "2 m 2625688 0.081739\n",
+ "3 i 2434995 0.075803\n",
+ "4 u 2235199 0.069583\n",
+ "5 o 2159415 0.067224\n",
+ "6 b 1982642 0.061721\n",
+ "7 k 1951774 0.060760\n",
+ "8 e 1888919 0.058803\n",
+ "9 l 1520935 0.047348\n",
+ "10 g 1189924 0.037043\n",
+ "11 s 1048120 0.032629\n",
+ "12 t 870620 0.027103\n",
+ "13 d 833422 0.025945\n",
+ "14 y 654446 0.020373\n",
+ "15 h 502652 0.015648\n",
+ "16 w 417888 0.013009\n",
+ "17 z 386517 0.012032\n",
+ "18 p 311915 0.009710\n",
+ "19 r 285818 0.008898"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_letters.sort_values(\"freq\", ascending=False).reset_index(drop=True).head(20)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "34111d28-3f23-432e-be95-688c1471b87c",
+ "metadata": {},
+ "source": [
+ "## Fréquence des bigrammes et trigrammes les plus utilisés"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "98c7ed61-5c2d-4d9a-9d85-e4efe4bfc402",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "letters = list(\"abcdefghijklmnopqrstuvwxyz\")\n",
+ "index = {l: i for i, l in enumerate(letters)}\n",
+ "matrix = np.zeros((26, 26), dtype=int)\n",
+ "\n",
+ "for name in df_simple['surname'].astype(str).str.lower():\n",
+ " name = re.sub(r\"[^a-z]\", \"\", name)\n",
+ " for a, b in zip(name, name[1:]):\n",
+ " if a in index and b in index:\n",
+ " matrix[index[a], index[b]] += 1\n",
+ "\n",
+ "df_bigrams_matrix = pd.DataFrame(matrix, index=letters, columns=letters)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "39d54a8d-044f-42d7-89fc-0a2f5522e343",
+ "metadata": {},
+ "source": [
+ "### Fréquence des bigrammes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "2a3c00fc-d319-4396-905b-cded302af650",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "letters = list(\"abcdefghijklmnopqrstuvwxyz\")\n",
+ "index = {l: i for i, l in enumerate(letters)}\n",
+ "matrix = np.zeros((26, 26), dtype=int)\n",
+ "\n",
+ "for name in df_simple['surname'].astype(str).str.lower():\n",
+ " name = re.sub(r\"[^a-z]\", \"\", name)\n",
+ " for a, b in zip(name, name[1:]):\n",
+ " if a in index and b in index:\n",
+ " matrix[index[a], index[b]] += 1\n",
+ "\n",
+ "df_bigrams_matrix = pd.DataFrame(matrix, index=letters, columns=letters)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d44d59a1-7578-42c4-b076-fe65ef11cb3d",
+ "metadata": {},
+ "source": [
+ "### Heatmap des bigrammes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "86bf7ee4-ecd7-4ac3-b005-e2e210b88ca5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABCcAAAPxCAYAAADJ9ccYAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAh0lJREFUeJzs3Xl4lOW5P/B7EmAiIAELgqIVxKVVxAUtbriiuGGtp9Za9+20tlo1RSu1oqg1ahVt64Jal2OrrdVqT09bFaXgVmuPgnWpdVcUZRMhCjqBZH5/8DOHaQJMaIZnEj6fXu91mWfed+abNylJ7rmf58nk8/l8AAAAACRSkToAAAAAsGZTnAAAAACSUpwAAAAAklKcAAAAAJJSnAAAAACSUpwAAAAAklKcAAAAAJJSnAAAAACSUpwAAAAAklKcAGhnMplMXHDBBaljtLn//d//jZ133jm6desWmUwmnn322dSRys6AAQPiuOOOW62v2VG/3wCA8qI4AZDYbbfdFplMpuBYd911Y88994z7778/dbzVYvHixXHYYYfFvHnz4qqrropf/OIXsdFGG6WOBQDAatIpdQAAlrrwwgtj4MCBkc/nY9asWXHbbbfFAQccEP/zP/8TBx10UNN5n3zySXTq1LH++X799dfj7bffjptuuilOOumk1HHK1ssvvxwVFav3fYWO+P0GAJQfv20AlIn9998/tt9++6aPTzzxxOjbt2/86le/KihOVFVVtdlrNjY2Rn19fZs+56qYPXt2RET07NlzpecuXLgwunXrVuJE5Smbza7210z9vdFaa/L3BwC0Z6Z1AJSpnj17xlprrdXsXeuW1gCYMmVKbL/99lFVVRWDBg2KG264IS644ILIZDLNrj311FPjjjvuiC233DKy2Ww88MADERFxxRVXxM477xyf+9znYq211oqhQ4fGPffc0yzXZ89x9913xxZbbBFrrbVW7LTTTvH8889HRMQNN9wQm2yySVRVVcUee+wRb7311go/z+OOOy523333iIg47LDDIpPJxB577NH0WPfu3eP111+PAw44INZee+048sgjI2JpYeXqq6+OLbfcMqqqqqJv377xzW9+Mz788MOC58/n83HxxRfHBhtsEF27do0999wzXnzxxWbrN7R0vyL+b9rNv34e999/fwwfPjy6desWa6+9dhx44IHx4osvNvvcunfvHjNmzIhDDjkkunfvHn369InRo0dHQ0NDwbmNjY3xk5/8JLbaaquoqqqKPn36xH777RdPP/100zktrTkxf/78OOOMM2LDDTeMbDYbm2yySVx22WXR2NhYcN6vf/3rGDp0aKy99trRo0eP2GqrreInP/lJy1+UZfzr99tn9+m1116L4447Lnr27BnV1dVx/PHHx6JFi1b6fK+++mr8x3/8R/Tr1y+qqqpigw02iK9//euxYMGCiIh46623IpPJxG233VZ0ln/84x/xjW98I3r16hW77rpr07066KCD4vHHH48vfelLUVVVFRtvvHHcfvvtBc85b968GD16dGy11VbRvXv36NGjR+y///7x97//veC8KVOmRCaTid/85jcxbty46N+/f6y99trx1a9+NRYsWBC5XC7OOOOMWHfddaN79+5x/PHHRy6Xa/Y5/PKXv4yhQ4fGWmutFeuss058/etfj3feeadV9wgAOiKdEwBlYsGCBTF37tzI5/Mxe/bs+NnPfhYff/xxHHXUUSu8btq0abHffvvFeuutF+PGjYuGhoa48MILo0+fPi2e/+c//zl+85vfxKmnnhq9e/eOAQMGRETET37ykzj44IPjyCOPjPr6+vj1r38dhx12WPzhD3+IAw88sOA5Hnvssfj9738f3/nOdyIiora2Ng466KA4++yz47rrrotvf/vb8eGHH8bll18eJ5xwQvz5z39ebv5vfvOb0b9//7jkkkviu9/9buywww7Rt2/fpseXLFkSI0eOjF133TWuuOKK6Nq1a9N1t912Wxx//PHx3e9+N95888245pprYtq0afHEE09E586dIyJi7NixcfHFF8cBBxwQBxxwQEydOjX23XffqK+vX/EXZAV+8YtfxLHHHhsjR46Myy67LBYtWhTXX3997LrrrjFt2rSmexoR0dDQECNHjoxhw4bFFVdcEQ8//HBceeWVMWjQoDjllFOazjvxxBPjtttui/333z9OOumkWLJkSTz22GPx17/+taCjZlmLFi2K3XffPWbMmBHf/OY34/Of/3z85S9/iTFjxsT7778fV199dUREPPTQQ3HEEUfE3nvvHZdddllERLz00kvxxBNPxOmnn75K9+BrX/taDBw4MGpra2Pq1Knx85//PNZdd92m529JfX19jBw5MnK5XJx22mnRr1+/mDFjRvzhD3+I+fPnR3V19SplOeyww2LTTTeNSy65JPL5fNP4a6+9Fl/96lfjxBNPjGOPPTZuueWWOO6442Lo0KGx5ZZbRkTEG2+8Eb/73e/isMMOi4EDB8asWbPihhtuiN133z3+8Y9/xPrrr1/wWrW1tbHWWmvFOeecE6+99lr87Gc/i86dO0dFRUV8+OGHccEFF8Rf//rXuO2222LgwIExduzYpmt/9KMfxXnnnRdf+9rX4qSTToo5c+bEz372s9htt91i2rRp0bNnz5LdIwAoe3kAkrr11lvzEdHsyGaz+dtuu63Z+RGRP//885s+HjVqVL5r1675GTNmNI29+uqr+U6dOuX/9Z/5iMhXVFTkX3zxxWbPu2jRooKP6+vr84MHD87vtddezZ4jm83m33zzzaaxG264IR8R+X79+uXr6uqaxseMGZOPiIJzWzJ58uR8ROTvvvvugvFjjz02HxH5c845p2D8sccey0dE/o477igYf+CBBwrGZ8+ene/SpUv+wAMPzDc2Njad94Mf/CAfEfljjz22aez8889vdr/y+f/7+nz2OXz00Uf5nj175k8++eSC82bOnJmvrq4uGP8s/4UXXlhw7rbbbpsfOnRo08d//vOf8xGR/+53v9vs9ZfNvdFGGxVkvuiii/LdunXLv/LKKwXXnHPOOfnKysr89OnT8/l8Pn/66afne/TokV+yZEmz51+Zf/1+++w+nXDCCQXnfeUrX8l/7nOfW+FzTZs2rcWv87LefPPNfETkb7311qKzHHHEEc3O3WijjfIRkX/00UebxmbPnp3PZrP5733ve01jn376ab6hoaFZhmw2W/B1++x7dPDgwfn6+vqm8SOOOCKfyWTy+++/f8Fz7LTTTvmNNtqo6eO33norX1lZmf/Rj35UcN7zzz+f79SpU9N4MfcIADoi0zoAysS1114bDz30UDz00EPxy1/+Mvbcc8846aST4t57713uNQ0NDfHwww/HIYccUvAO7yabbBL7779/i9fsvvvuscUWWzQbX2uttZr++8MPP4wFCxbE8OHDY+rUqc3O3XvvvQu6A4YNGxYREf/xH/8Ra6+9drPxN954Y7mfQzGW7TCIiLj77rujuro69tlnn5g7d27TMXTo0OjevXtMnjw5IiIefvjhqK+vj9NOO61gysYZZ5yxylkeeuihmD9/fhxxxBEFr11ZWRnDhg1reu1lfetb3yr4ePjw4QX35Le//W1kMpk4//zzm13b0lSTz9x9990xfPjw6NWrV0GWESNGRENDQzz66KMRsXSK0MKFC+Ohhx5a1U+7mZY+pw8++CDq6uqWe81n7/o/+OCDRU0BWdUsn9liiy1i+PDhTR/36dMnNt9884J7n81mmxYZbWhoiA8++CC6d+8em2++eYvf+8ccc0xTV07E0u/xfD4fJ5xwQsF5w4YNi3feeSeWLFkSERH33ntvNDY2xte+9rWCr1W/fv1i0003bfq+KdU9AoBypzgBUCa+9KUvxYgRI2LEiBFx5JFHxh//+MfYYost4tRTT13uFITZs2fHJ598Eptsskmzx1oai4gYOHBgi+N/+MMfYscdd4yqqqpYZ511ok+fPnH99de3OM/985//fMHHn/1BteGGG7Y4/q/rQLRGp06dYoMNNigYe/XVV2PBggWx7rrrRp8+fQqOjz/+uGmBzbfffjsiIjbddNOC6/v06RO9evVapTyvvvpqRETstddezV574sSJTa/9mc/Wj1hWr169Cu7J66+/Huuvv36ss846rc7ywAMPNMsxYsSIiPi/hUa//e1vx2abbRb7779/bLDBBnHCCSc0rTWyqv71e+Cz+7mir/XAgQOjpqYmfv7zn0fv3r1j5MiRce211/7bayks73v6XzN+lnPZjI2NjXHVVVfFpptuGtlsNnr37h19+vSJ55577t/+3m9sbGx6jldffTXy+Xxsuummzb5eL730UtPXqlT3CIDy9eijj8aoUaNi/fXXj0wmE7/73e9a/Rz5fD6uuOKK2GyzzSKbzUb//v3jRz/6UduHLSFrTgCUqYqKithzzz3jJz/5Sbz66qtNc+T/Xct2SHzmsccei4MPPjh22223uO6662K99daLzp07x6233hp33nlns/MrKytbfO7ljeeXWQegtZZ9Z/szjY2Nse6668Ydd9zR4jXLW29jRZbXodDSwpURS9ed6NevX7Pz/3UB0+Xdk7bQ2NgY++yzT5x99tktPr7ZZptFRMS6664bzz77bDz44INx//33x/333x+33nprHHPMMfFf//Vfq/Taq/q1vvLKK+O4446L//7v/46JEyfGd7/73aitrY2//vWvscEGGxT9dVhWS9/TxWa85JJL4rzzzosTTjghLrroolhnnXWioqIizjjjjGaLiq7oOVf2Wo2NjZHJZOL+++9v8dzu3bs3/ffK7hEAHcvChQtj6623jhNOOCEOPfTQVXqO008/PSZOnBhXXHFFbLXVVjFv3ryYN29eGyctLcUJgDL2WUv4xx9/3OLj6667blRVVcVrr73W7LGWxpbnt7/9bVRVVcWDDz5YsF3lrbfe2srEq8egQYPi4Ycfjl122WW5f5hGRGy00UYRsfRd64033rhpfM6cOc3e4f/snf/58+cXbGn6WffFsq8dsfTef9ah8O8aNGhQPPjggzFv3rxWdU8MGjQoPv7446JydOnSJUaNGhWjRo2KxsbG+Pa3vx033HBDnHfeecvtsimVrbbaKrbaaqv44Q9/GH/5y19il112iQkTJsTFF19c8HVY1r9+HdrKPffcE3vuuWfcfPPNBePz58+P3r17t9nrDBo0KPL5fAwcOLCpaLQiK7pHAHQs+++//3Kn40ZE5HK5OPfcc+NXv/pVzJ8/PwYPHhyXXXZZ0+5mL730Ulx//fXxwgsvxOabbx4Ry+8qLGemdQCUqcWLF8fEiROjS5cu8cUvfrHFcyorK2PEiBHxu9/9Lt57772m8ddeey3uv//+ol+rsrIyMplMwbvTb7311iq1Fa4OX/va16KhoSEuuuiiZo8tWbKk6Q/bESNGROfOneNnP/tZwbvln+1isazPig6frdMQsfSdjH/tLBg5cmT06NEjLrnkkli8eHGz55kzZ06rP5//+I//iHw+H+PGjWv22Io6Eb72ta/Fk08+GQ8++GCzx+bPn99U3Prggw8KHquoqIghQ4ZERLS43WWp1NXVNWX6zFZbbRUVFRVNOXr06BG9e/cu+DpERFx33XUlyVRZWdnsHt99990xY8aMNn2dQw89NCorK2PcuHHNXi+fzzd9jYq5RwCsWU499dR48skn49e//nU899xzcdhhh8V+++3XNNX0f/7nf2LjjTeOP/zhDzFw4MAYMGBAnHTSSTonAFg1999/f/zzn/+MiKVrBdx5553x6quvxjnnnBM9evRY7nUXXHBBTJw4MXbZZZc45ZRToqGhIa655poYPHhwPPvss0W99oEHHhjjx4+P/fbbL77xjW/E7Nmz49prr41NNtkknnvuubb49NrU7rvvHt/85jejtrY2nn322dh3332jc+fO8eqrr8bdd98dP/nJT+KrX/1q9OnTJ0aPHt201ekBBxwQ06ZNi/vvv7/Zu+L77rtvfP7zn48TTzwxzjrrrKisrIxbbrkl+vTpE9OnT286r0ePHnH99dfH0UcfHdttt118/etfbzrnj3/8Y+yyyy5xzTXXtOrz2XPPPePoo4+On/70p/Hqq6/GfvvtF42NjfHYY4/FnnvuGaeeemqL15111lnx+9//Pg466KCmLTIXLlwYzz//fNxzzz3x1ltvRe/evZt+Qdlrr71igw02iLfffjt+9rOfxTbbbLPcwlcp/PnPf45TTz01DjvssNhss81iyZIl8Ytf/CIqKyvjP/7jP5rOO+mkk+LSSy+Nk046Kbbffvt49NFH45VXXilJpoMOOiguvPDCOP7442PnnXeO559/Pu64446CTpu2MGjQoLj44otjzJgx8dZbb8UhhxwSa6+9drz55ptx3333xX/+53/G6NGji75HAKwZpk+fHrfeemtMnz69afHz0aNHxwMPPBC33nprXHLJJfHGG2/E22+/HXfffXfcfvvt0dDQEGeeeWZ89atfXeF27uVGcQKgTIwdO7bpv6uqquILX/hCXH/99fHNb35zhdcNHTo07r///hg9enScd955seGGG8aFF14YL730UlOxY2X22muvuPnmm+PSSy+NM844IwYOHBiXXXZZvPXWW2VZnIiImDBhQgwdOjRuuOGG+MEPfhCdOnWKAQMGxFFHHRW77LJL03kXX3xxVFVVxYQJE2Ly5MkxbNiwmDhxYhx44IEFz9e5c+e477774tvf/nacd9550a9fvzjjjDOiV69ecfzxxxec+41vfCPWX3/9uPTSS+PHP/5x5HK56N+/fwwfPrzZucW69dZbY8iQIXHzzTfHWWedFdXV1bH99tvHzjvvvNxrunbtGo888khccsklTb+Q9OjRIzbbbLMYN25c02KNRx11VNx4441x3XXXxfz586Nfv35x+OGHxwUXXNBsPY9S2nrrrWPkyJHxP//zPzFjxozo2rVrbL311nH//ffHjjvu2HTe2LFjY86cOXHPPffEb37zm9h///3j/vvvj3XXXbfNM/3gBz+IhQsXxp133hl33XVXbLfddvHHP/4xzjnnnDZ/rXPOOSc222yzuOqqq5q6ZDbccMPYd9994+CDD46I4u8RAGuG559/PhoaGppNCczlcvG5z30uIpaua5TL5eL2229vOu/mm2+OoUOHxssvv9w01aPcZfL/ziplAJStQw45JF588cWmlj8KDRgwIPbYY4+47bbbUkcBAIiIpQt033fffXHIIYdERMRdd90VRx55ZLz44ovNFlTu3r179OvXL84///xm000/+eST6Nq1a0ycODH22Wef1fkprDKdEwAdwCeffFKwMOSrr74af/rTn+LYY49NmAoAgH/HtttuGw0NDTF79uwYPnx4i+fssssusWTJknj99deb1tD6bDrkZ4uDtweKEwAdwMYbbxzHHXdcbLzxxvH222/H9ddfH126dFnuFpMAAJSHjz/+uGCXtTfffDOeffbZWGeddWKzzTaLI488Mo455pi48sorY9ttt405c+bEpEmTYsiQIXHggQfGiBEjYrvttosTTjghrr766mhsbIzvfOc7sc8++xS1Q1S5UJwA6AD222+/+NWvfhUzZ86MbDYbO+20U1xyySWx6aabpo4GAMAKPP3007Hnnns2fVxTUxMREccee2zcdtttceutt8bFF18c3/ve92LGjBnRu3fv2HHHHeOggw6KiKW7cP3P//xPnHbaabHbbrtFt27dYv/9948rr7wyyeezqqw5AQAAACS1+pboBgAAAGiB4gQAAACQlOIEAAAAkFTHXBBz4fzUCSIiouGpP6aOEJXDDkgdIfIfzkodISIiMr36pY4QsTiXOsFSmUzqBJGv/yR1hMhku6aOsFQmfZ244ZmHUkdYaupfUieIqKtLnSDe+PXjqSNERMSmz/xv6giRX/RR6giR6VadOsJSuUWpE5TNvxWZvp9PHSEqBgxOHSHyn3ycOkJERGQ6Z1NHiCiTn+mNb72QOkJU9C2DrSM/t0HqBCXzrUyP1BFWyYR8+t9vVib9b8QAAADAGk1xAgAAAEiqY07rAAAAgDbm3f3ScW8BAACApBQnAAAAgKQUJwAAAICkrDkBAAAARajIZFJH6LB0TgAAAABJKU4AAAAASSlOAAAAAElZcwIAAACK4N390nFvAQAAgKQUJwAAAICkTOsAAACAIlTYSbRkyqY48Y9//COmT58e9fX1BeMHH3xwokQAAADA6pC8OPHGG2/EV77ylXj++ecjk8lEPp+PiIhMZmlJqqGhYYXX53K5yOVyBWPZJbnIZrOlCQwAAAC0qeRrTpx++ukxcODAmD17dnTt2jVefPHFePTRR2P77bePKVOmrPT62traqK6uLjhqr7iq9MEBAACANpG8c+LJJ5+MP//5z9G7d++oqKiIioqK2HXXXaO2tja++93vxrRp01Z4/ZgxY6KmpqZgLLvkk1JGBgAAYA2U/N39Dix5caKhoSHWXnvtiIjo3bt3vPfee7H55pvHRhttFC+//PJKr89ms82ncCxsLEVUAAAAoASSFycGDx4cf//732PgwIExbNiwuPzyy6NLly5x4403xsYbb5w6HgAAAFBiyYsTP/zhD2PhwoUREXHhhRfGQQcdFMOHD4/Pfe5zcddddyVOBwAAAEtVZOwlWirJixMjR45s+u9NNtkk/vnPf8a8efOiV69eTTt2AAAAAB1X8uJES9ZZZ53UEQAAAIDVxGKjAAAAQFJl2TkBAAAA5ca7+6Xj3gIAAABJKU4AAAAASSlOAAAAAElZcwIAAACKUJFJnaDj0jkBAAAAJKU4AQAAACRlWgcAAAAUwbv7pePeAgAAAEkpTgAAAABJZfL5fD51iLb23EYDUkeIiIghL/09dQSW0fj3KakjRMXWe6SOwDIaX3gsdYSIiKgYPDx1BGhRw+21qSNE5TFjUkeAFjX8+depI0TlXl9PHWGpTxemThBR1S11gqXK4U+rTBlsJ9G1OnWCkvlB556pI6ySSxbPTx1hpaw5AQAAAEXIlEPxp4MyrQMAAABISnECAAAASMq0DgAAACiCd/dLx70FAAAAklKcAAAAAJJSnAAAAACSsuYEAAAAFKHCTqIlo3MCAAAASEpxAgAAAEhKcQIAAABIypoTAAAAUATv7peOewsAAAAkpTgBAAAAJGVaBwAAABShImMv0VIpu86JfD4f+Xw+dQwAAABgNSmb4sTNN98cgwcPjqqqqqiqqorBgwfHz3/+85Vel8vloq6uruCoV9wAAACAdqMsihNjx46N008/PUaNGhV333133H333TFq1Kg488wzY+zYsSu8tra2NqqrqwuOmxcsWE3JAQAAgH9XWaw5cf3118dNN90URxxxRNPYwQcfHEOGDInTTjstLrzwwuVeO2bMmKipqSkYe2XwViXLCgAAwJqpLN7d76DKojixePHi2H777ZuNDx06NJYsWbLCa7PZbGSz2YKxLhYpAQAAgHajLAo/Rx99dFx//fXNxm+88cY48sgjEyQCAAAAVpdknRPLTsXIZDLx85//PCZOnBg77rhjREQ89dRTMX369DjmmGNSRQQAAIAmFZr0SyZZ58S0adOajueffz6GDh0affr0iddffz1ef/316N27d2y33Xbx4osvpooIAAAAa5RHH300Ro0aFeuvv35kMpn43e9+t9JrpkyZEtttt11ks9nYZJNN4rbbbmv16ybrnJg8eXKqlwYAAABasHDhwth6663jhBNOiEMPPXSl57/55ptx4IEHxre+9a244447YtKkSXHSSSfFeuutFyNHjiz6dctiQUwAAAAgvf333z/233//os+fMGFCDBw4MK688sqIiPjiF78Yjz/+eFx11VWKEwAAANDWymJHiVWQy+Uil8sVjLW08+WqePLJJ2PEiBEFYyNHjowzzjijVc/TXu8tAAAAUITa2tqorq4uOGpra9vkuWfOnBl9+/YtGOvbt2/U1dXFJ598UvTz6JwAAACADmzMmDEFO2ZGRJt0TbQlxQkAAADowNpqCkdL+vXrF7NmzSoYmzVrVvTo0SPWWmutop9HcQIAAACKUBGZ1BHKzk477RR/+tOfCsYeeuih2GmnnVr1PNacAAAAACIi4uOPP45nn302nn322YhYulXos88+G9OnT4+IpVNEjjnmmKbzv/Wtb8Ubb7wRZ599dvzzn/+M6667Ln7zm9/EmWee2arXVZwAAAAAIiLi6aefjm233Ta23XbbiIioqamJbbfdNsaOHRsREe+//35ToSIiYuDAgfHHP/4xHnroodh6663jyiuvjJ///Oet2kY0wrQOAAAAKErFGjCrY4899oh8Pr/cx2+77bYWr5k2bdq/9bo6JwAAAICkFCcAAACApDL5FfVrtFcL56dOsFRmDej5aU/K4Vvd98T/aVicOkH5qOycOgEAQNvpWp06Qclc2fVzqSOsku8t+iB1hJWy5gQAAAAUwdSD0nFvAQAAgKQUJwAAAICkFCcAAACApKw5AQAAAEWosL59yeicAAAAAJJSnAAAAACSMq0DAAAAilAR5nWUis4JAAAAICnFCQAAACApxQkAAAAgKWtOAAAAQBFsJVo6OicAAACApBQnAAAAgKRM6wAAAIAieHe/dJLf29ra2rjllluajd9yyy1x2WWXJUgEAAAArE7JixM33HBDfOELX2g2vuWWW8aECRNWen0ul4u6urqCI5fLlSIqAAAAUALJixMzZ86M9dZbr9l4nz594v3331/p9bW1tVFdXV1w1F5xVSmiAgAAACWQfM2JDTfcMJ544okYOHBgwfgTTzwR66+//kqvHzNmTNTU1BSMZZd80qYZAQAAwFaipZO8OHHyySfHGWecEYsXL4699torIiImTZoUZ599dnzve99b6fXZbDay2Wzh4MLGUkQFAAAASiB5ceKss86KDz74IL797W9HfX19RERUVVXF97///RgzZkzidAAAAECpZfL5fD51iIiIjz/+OF566aVYa621YtNNN23eDdEaC+e3Wa5/S0bPT1kph2913xP/p2Fx6gTlo7Jz6gQAAG2na3XqBCVzw9q9U0dYJd/8aG7qCCuVvHPiM927d48ddtghdQwAAABoUUV4s7FUku/WAQAAAKzZFCcAAACApMpmWgcAAACUM1uJlo7OCQAAACApxQkAAAAgKcUJAAAAIClrTgAAAEARLDlROjonAAAAgKQUJwAAAICkTOsAAACAIthKtHR0TgAAAABJdcjOicZXnk4dISIiKjbfIXUElpFfOD91hMh075U6Qvmo7Jw6QTT89Q+pI0REROU2e6aOEFHVLXUCylB+7rupI0Sm9wapI5SPfD51goiMtww/k/9oXuoIkVl7ndQRlvK9CbQBnRMAAABAUh2ycwIAAADaWoXNREtG5wQAAACQlOIEAAAAkJTiBAAAAJCUNScAAACgCBWWnCgZnRMAAABAUooTAAAAQFKmdQAAAEARvLtfOu4tAAAAkJTiBAAAAJCU4gQAAACQlDUnAAAAoAh2Ei0dnRMAAABAUooTAAAAQFJJpnXU1NQUfe748eNLmAQAAACKU5ExsaNUkhQnpk2bVvDx1KlTY8mSJbH55ptHRMQrr7wSlZWVMXTo0JU+Vy6Xi1wuVzDWub4+sl26tF1gAAAAoGSSTOuYPHly0zFq1KjYfffd4913342pU6fG1KlT45133ok999wzDjzwwJU+V21tbVRXVxccl97y69XwWQAAAABtIZPP5/MpA/Tv3z8mTpwYW265ZcH4Cy+8EPvuu2+89957K7y+xc6Jlx4vi86Jis13SB2BZeQ//jB1hMh075U6Asto+OsfUkeIiIjKbfZMHSGiqlvqBJSh/Nx3U0eITO8NUkcoH2l/ZVtKO3OT/EfzUkeIzNrrpI6wlO9N/lXX6tQJSuauXn1TR1glh384K3WElUq+lWhdXV3MmTOn2ficOXPio48+Wun12Ww2stlswVhjGRQmAAAA6FiUwUon+W4dX/nKV+L4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NScAAACgCJmMVSdKRecEAAAAkJTiBAAAAJCUaR0AAABQBJM6SkfnBAAAAJBU8s6JmpqaFsczmUxUVVXFJptsEl/+8pdjnXXWWc3JAAAAgNUheefEtGnT4uabb44bb7wxHnnkkXjkkUfipptuiptvvjkmTZoUNTU1sckmm8Q//vGPFq/P5XJRV1dXcOSWNKzmzwIAAAA6hmuvvTYGDBgQVVVVMWzYsPjb3/62wvOvvvrq2HzzzWOttdaKDTfcMM4888z49NNPW/WayYsTX/7yl2PEiBHx3nvvxTPPPBPPPPNMvPvuu7HPPvvEEUccETNmzIjddtstzjzzzBavr62tjerq6oLj0sefX82fBQAAAB1dpp0erXHXXXdFTU1NnH/++TF16tTYeuutY+TIkTF79uwWz7/zzjvjnHPOifPPPz9eeumluPnmm+Ouu+6KH/zgB6163Uw+n8+3Mmub6t+/fzz00EOxxRZbFIy/+OKLse+++8aMGTNi6tSpse+++8bcuXObXZ/L5SKXyxWMdbr8O5HtVFnS3MWo/N4VqSNEVHZOnaBs5OfPSh0hMj37po5QPhqWpE4Q+YUfpo4QERGZHn1SR4AWNTx0R+oIUbnPkakjQIvys99KHSEy6w5IHWGphsWpE/idt9x0rU6doGSeXu/zqSOsku3fn170ucOGDYsddtghrrnmmoiIaGxsjA033DBOO+20OOecc5qdf+qpp8ZLL70UkyZNahr73ve+F0899VQ8/vjjRb9u8s6JBQsWtFiBmTNnTtTV1UVERM+ePaO+vr7F67PZbPTo0aPgKIfCBAAAAJSDFpdD+Jc3+SMi6uvr45lnnokRI0Y0jVVUVMSIESPiySefbPG5d95553jmmWeapn688cYb8ac//SkOOOCAVmVMXpz48pe/HCeccELcd9998e6778a7774b9913X5x44olxyCGHRETE3/72t9hss83SBgUAAGCNlslk2uXR0nIItbW1zT6/uXPnRkNDQ/TtW9jx3bdv35g5c2aL9+Qb3/hGXHjhhbHrrrtG586dY9CgQbHHHnu0elpH8uLEDTfcEHvvvXd8/etfj4022ig22mij+PrXvx577713TJgwISIivvCFL8TPf/7zxEkBAACg/RkzZkwsWLCg4BgzZkybPPeUKVPikksuieuuuy6mTp0a9957b/zxj3+Miy66qFXPk3wr0e7du8dNN90UV111VbzxxhsREbHxxhtH9+7dm87ZZpttEqUDAACA9i2bzUY2m13peb17947KysqYNatwvb5Zs2ZFv379WrzmvPPOi6OPPjpOOumkiIjYaqutYuHChfGf//mfce6550ZFRXE9Eck7Jz7TvXv3GDJkSAwZMqSgMAEAAACUXpcuXWLo0KEFi1s2NjbGpEmTYqeddmrxmkWLFjUrQFRWLl0HsjX7byTvnAAAAID2oKK1+3K2QzU1NXHsscfG9ttvH1/60pfi6quvjoULF8bxxx8fERHHHHNM9O/fv2nNilGjRsX48eNj2223jWHDhsVrr70W5513XowaNaqpSFEMxQkAAAAgIiIOP/zwmDNnTowdOzZmzpwZ22yzTTzwwANNi2ROnz69oFPihz/8YWQymfjhD38YM2bMiD59+sSoUaPiRz/6UateN5NvTZ9FO9FwwXGpI0REROX3rkgdwZ7Py8jPn7Xyk0os07Pvyk9aUzQsSZ0g8gs/TB0hIiIyPfqkjgAtanjojtQRonKfI1NHgBblZ7+VOkJk1h2QOsJSDYtTJ/A7b7npWp06QclM679R6girZNsZb6eOsFJls+YEAAAAsGYyrQMAAACKkFkTFp1IROcEAAAAkJTiBAAAAJCUaR0AAABQhIxZHSWjcwIAAABISnECAAAASKpDTuuoOOGs1BGWst9yWcl04P2W26XK9P/85Kf/M3WEiIjIDO6TOgK0qHKXUakjQNnK9OyXOkL58Dsv0AbS/3UAAAAA7YA1J0rHtA4AAAAgKcUJAAAAICnTOgAAAKAIGfM6SkbnBAAAAJCU4gQAAACQlOIEAAAAkJQ1JwAAAKAIlpwoHZ0TAAAAQFKKEwAAAEBSihMAAABAUtacAAAAgCJkLDpRMjonAAAAgKQUJwAAAICkTOsAAACAIpjVUTo6JwAAAICkyqZzYtKkSTFp0qSYPXt2NDY2Fjx2yy23LPe6XC4XuVyuYKxLrj6y2S4lyQkAAAC0rbLonBg3blzsu+++MWnSpJg7d258+OGHBceK1NbWRnV1dcFRe91Nqyk5AAAA8O/K5PP5fOoQ6623Xlx++eVx9NFHt/raFjsnZr1eFp0Tmd4bpI7Asuo/TZ0goktV6gQso/GFx1JHiIiIisHDU0eAli2qS50gomuP1AmgZX6vgOXrWp06Qcn8c5NBqSOski+89nrqCCtVFtM66uvrY+edd16la7PZbGSz2YKx/Pz0hQkAAACgOGUxreOkk06KO++8M3UMAAAAIIFknRM1NTVN/93Y2Bg33nhjPPzwwzFkyJDo3Llzwbnjx49f3fEAAACggK1ESydZcWLatGkFH2+zzTYREfHCCy8UjGd89QEAAKBDS1acmDx5cqqXBgAAAMpIWaw5AQAAAKy5ymK3DgAAACh3lh0oHZ0TAAAAQFKKEwAAAEBSihMAAABAUtacAAAAgCJkvL1fMm4tAAAAkJTiBAAAAJCUaR0AAABQBFuJlo7OCQAAACApxQkAAAAgqY45raNhceoEERGRXzA7dYTI9OiTOkLE4lzqBEstqU+dIKKyMnWCpSrKIUf6lriKwcNTR1gqn0+dIPJz3k4dISIi8nNmpI4QsVb31AkiP+P11BEiIqJyp4NSRyiPn+mVnVMniIiI/EfzUkeIWPxp6gRLlcFy+ZmefVNHKIufHxERkW9MnaBMfreJiNyi1AnK515AK3XM4gQAAAC0MUtOlE76sjMAAACwRlOcAAAAAJIyrQMAAACKYCvR0tE5AQAAACSlOAEAAAAkpTgBAAAAJGXNCQAAACiCJSdKR+cEAAAAkJTiBAAAAJCU4gQAAACQlDUnAAAAoAgVFp0oGZ0TAAAAQFKKEwAAAEBSpnUAAABAEczqKB2dEwAAAEBS7b5zIpfLRS6XKxjrkquPbLZLokQAAABAa7T7zona2tqorq4uOGqvvyV1LAAAAKBIyTonampq4qKLLopu3bpFTU3NCs8dP378ch8bM2ZMs+u7vPfPNskIAAAAn8lYdKJkkhUnpk2bFosXL2767+VZ2Rc/m81GNpstGMt/YEoHAAAAtBfJihOTJ09u8b8BAACANUu7X3MCAAAAaN/a/W4dAAAAsDpYcqJ0dE4AAAAASSlOAAAAAEmZ1gEAAABFMK2jdHROAAAAAEkpTgAAAABJKU4AAAAASVlzAgAAAIqQqbDoRKnonAAAAACSUpwAAAAAkjKtAwAAAIpgK9HS0TkBAAAAJKU4AQAAACSVyefz+dQh2tyC2akTLNU5mzoBy8o3pk4QkVEPLCuL6lInWKprj9QJoGWNDakTRFRUpk4ALSuHX6H1l1OuulanTlAy72//xdQRVsl6T7+UOsJKWXMCAAAAilChKFgy3sYFAAAAklKcAAAAAJJSnAAAAACSsuYEAAAAFMGSE6WjcwIAAABISnECAAAASMq0DgAAAChCxryOktE5AQAAACSlOAEAAAAkpTgBAAAAJGXNCQAAACiCJSdKR+cEAAAAkJTiBAAAAJCUaR0AAABQBFuJlk67L07kcrnI5XIFY9lcLrLZbKJEAAAAQGus9uLEoYceGrfddlv06NEjDj300BWe271799hyyy3jW9/6VlRXV7d4Tm1tbYwbN65g7Pzvj44LxpzVZpkBAACA0lntxYnq6uqmVpjlFRw+k8vlYsKECfHEE0/E73//+xbPGTNmTNTU1BSMZT9d0DZhAQAAgJLL5PP5fOoQK/KPf/wjdthhh1i4cGHxFy2YXbpArdHZ1JKykm9MnSAiYw3asrKoLnWCpbr2SJ0AWtbYkDpBREVl6gTQsnL4Fdrcd8pV1xW/Cd2ezdt5cOoIq2Sdv7yQOsJKlf1fSptvvnn85S9/SR0DAAAAKJGyL05UVlbG1ltvnToGAAAAUCJlX5wAAAAAOrZ2v5UoAAAArA4Za72UjM4JAAAAICnFCQAAACAp0zoAAACgCBlv75eMWwsAAAAkpTgBAAAAJKU4AQAAACRlzQkAAAAogq1ES0fnBAAAAJCU4gQAAACQlGkdAAAAUIwK0zpKRecEAAAAkFSH7Jz4Ud8vpI4QERHnznszdQSWkf/gvdQRItN7g9QRykc+nzpBNEydlDpCRERU7vqV1BGgRQ3P/jl1hKjcdkTqCBEWP6MFjS8+njpCVAwenjrCUvWfpk4Q0aUqdYKlGpakThBR2SH/xGMNoHMCAAAASEpZDQAAAIqhm65kdE4AAAAASSlOAAAAAEkpTgAAAABJWXMCAAAAipCx5kTJ6JwAAAAAklKcAAAAAJIyrQMAAACKUWFaR6nonAAAAACSUpwAAAAAklKcAAAAAJKy5gQAAAAUw1aiJaNzAgAAAEhKcQIAAABIyrQOAAAAKELGVqIlUxadE7/61a+W+9hZZ521wmtzuVzU1dUVHEvy+baOCAAAAJRIWRQnTjnllLj//vubjZ955pnxy1/+coXX1tbWRnV1dcHxSMOnpYoKAAAAtLGyKE7ccccdccQRR8Tjjz/eNHbaaafFb37zm5g8efIKrx0zZkwsWLCg4Ni9sqrUkQEAAIA2UhZrThx44IFx3XXXxcEHHxwPPfRQ3HzzzfHf//3fMXny5Nhss81WeG02m41sNlsw1sn2LgAAALQ1f2uWTFkUJyIivvGNb8T8+fNjl112iT59+sQjjzwSm2yySepYAAAAQIklK07U1NS0ON6nT5/Ybrvt4rrrrmsaGz9+/OqKBQAAAKxmyYoT06ZNa3F8k002ibq6uqbHM9pmAAAAoENLVpxY2UKXAAAAUE4yFd48L5Wy2K0DAAAAWHMpTgAAAABJlc1uHQAAAFDWrIlYMjonAAAAgKQUJwAAAICkFCcAAACApKw5AQAAAMWwlWjJ6JwAAAAAklKcAAAAAJJSnAAAAACSsuYEAAAAFCGTseZEqXTI4sQ5Y7+aOgJlqPGf/5s6QlTuukHqCOWjDP5hrxi4ZeoIUN7qc6kTlMW/FdCS/MvPpY4QMXh46gRLdeqcOkH5qOyQf17BamFaBwAAAJCU0h4AAAAUw1aiJaNzAgAAAEhKcQIAAABISnECAAAASMqaEwAAAFAMu0iVjM4JAAAAICnFCQAAACAp0zoAAACgCBlv75eMWwsAAAAkpTgBAAAAJKU4AQAAADS59tprY8CAAVFVVRXDhg2Lv/3tbys8f/78+fGd73wn1ltvvchms7HZZpvFn/70p1a9pjUnAAAAoBhrwFaid911V9TU1MSECRNi2LBhcfXVV8fIkSPj5ZdfjnXXXbfZ+fX19bHPPvvEuuuuG/fcc0/0798/3n777ejZs2erXldxAgAAAIiIiPHjx8fJJ58cxx9/fERETJgwIf74xz/GLbfcEuecc06z82+55ZaYN29e/OUvf4nOnTtHRMSAAQNa/bqmdQAAAEAHlsvloq6uruDI5XLNzquvr49nnnkmRowY0TRWUVERI0aMiCeffLLF5/79738fO+20U3znO9+Jvn37xuDBg+OSSy6JhoaGVmVs98WJFm/yktbdBAAAAOioamtro7q6uuCora1tdt7cuXOjoaEh+vbtWzDet2/fmDlzZovP/cYbb8Q999wTDQ0N8ac//SnOO++8uPLKK+Piiy9uVcZ2P62jtrY2xo0bVzB23l7bxfl7D02UCAAAgI4oU9E+15wYM2ZM1NTUFIxls9k2ee7GxsZYd91148Ybb4zKysoYOnRozJgxI3784x/H+eefX/TztPviREs3udPVZyZKAwAAAOUlm80WVYzo3bt3VFZWxqxZswrGZ82aFf369WvxmvXWWy86d+4clZWVTWNf/OIXY+bMmVFfXx9dunQpKmOy4sS/FhRWZPz48ct9rKWb3NCpcjlnAwAAAC3p0qVLDB06NCZNmhSHHHJIRCztjJg0aVKceuqpLV6zyy67xJ133hmNjY1RUbF05YhXXnkl1ltvvaILExEJixPTpk0r6rzMGrBVCwAAAO3AGvD3aU1NTRx77LGx/fbbx5e+9KW4+uqrY+HChU27dxxzzDHRv3//pjUrTjnllLjmmmvi9NNPj9NOOy1effXVuOSSS+K73/1uq143WXFi8uTJqV4aAAAAaMHhhx8ec+bMibFjx8bMmTNjm222iQceeKBpkczp06c3dUhERGy44Ybx4IMPxplnnhlDhgyJ/v37x+mnnx7f//73W/W67X7NCQAAAKDtnHrqqcudxjFlypRmYzvttFP89a9//bdes91vJQoAAAC0b63qnGhoaIgnnngihgwZEj179ixRJAAAAChD7XQr0fagVZ0TlZWVse+++8aHH35YqjwAAADAGqbV0zoGDx4cb7zxRimyAAAAAGugVi+IefHFF8fo0aPjoosuiqFDh0a3bt0KHu/Ro0ebhQMAAIBykVkDthJNpdXFiQMOOCAiIg4++OCCL0w+n49MJhMNDQ1tlw4AAADo8FpdnJg8eXIpcgAAAABrqFYXJ3bfffdS5AAAAADWUK1eEDMi4rHHHoujjjoqdt5555gxY0ZERPziF7+Ixx9/vE3DAQAAQNmoyLTPox1odXHit7/9bYwcOTLWWmutmDp1auRyuYiIWLBgQVxyySVtHhAAAADo2FpdnLj44otjwoQJcdNNN0Xnzp2bxnfZZZeYOnVqm4YDAAAAOr5WFydefvnl2G233ZqNV1dXx/z589siEwAAALAGafWCmP369YvXXnstBgwYUDD++OOPx8Ybb9xWuf4tnzz+bOoIERFx16WbpI4QJ858LXWEslGx7V6pI0TkG1MnWCqzSsvNdDzdqlMngLJWsfHg1BEiP39W6giR6dk3dQTKUP6fL6aOENHYkDpBRETkP/ogdYTIVK+bOgJrikz7WL+hPWr1Xygnn3xynH766fHUU09FJpOJ9957L+64444YPXp0nHLKKaXICAAAAHRgre6cOOecc6KxsTH23nvvWLRoUey2226RzWZj9OjRcdppp5UiIwAAANCBtbo4kclk4txzz42zzjorXnvttfj4449jiy22iO7du5ciHwAAAJSFjGkdJdPqaR0nnHBCfPTRR9GlS5fYYost4ktf+lJ07949Fi5cGCeccEIpMgIAAAAdWKuLE//1X/8Vn3zySbPxTz75JG6//fY2CQUAAACsOYqe1lFXVxf5fD7y+Xx89NFHUVVV1fRYQ0ND/OlPf4p117VKLgAAANA6RRcnevbsGZlMJjKZTGy22WbNHs9kMjFu3Lg2DQcAAABlo8KaE6VSdHFi8uTJkc/nY6+99orf/va3sc466zQ91qVLl9hoo41i/fXXL0lIAAAAoOMqujix++67R0TEm2++GZ///OdbXKV0+vTp8fnPf77t0gEAAAAdXqu3Et14443j/fffb7a+xAcffBADBw6MhoaGNgsHAAAA5cJWoqXT6t068vl8i+Mff/xxwSKZAAAAAMUounOipqYmIpZWisaOHRtdu3ZteqyhoSGeeuqp2Gabbdo8IAAAANCxFV2cmDZtWkQs7Zx4/vnno0uXLk2PdenSJbbeeusYPXp02ycEAAAAOrRW7dYREXH88cfHT37yk+jRo0ebBvn000/jueeei9mzZ0djY2PBYwcffHCbvhYAAAC0mq1ES6bVC2LeeuutERHx2muvxeuvvx677bZbrLXWWpHP51d5cZAHHnggjjnmmJg7d26zxzKZjEU2AQAAoANr9YKY8+bNi7333js222yzOOCAA+L999+PiIgTTzwxvve9761SiNNOOy0OO+yweP/996OxsbHgUJgAAACAjq3VxYkzzjgjOnfuHNOnTy9YFPPwww+PBx54YJVCzJo1K2pqaqJv376tvjaXy0VdXV3BkWtoXPmFAAAAQFlodXFi4sSJcdlll8UGG2xQML7pppvG22+/vUohvvrVr8aUKVNW6dra2tqorq4uOK584/1Vei4AAABYrkymfR7tQKvXnFi4cGFBx8Rn5s2bF9lsdpVCXHPNNXHYYYfFY489FltttVV07ty54PHvfve7y712zJgxTducfmbxYXutUg4AAABg9Wt1cWL48OFx++23x0UXXRQRSxesbGxsjMsvvzz23HPPVQrxq1/9KiZOnBhVVVUxZcqUgoU1M5nMCosT2Wy2WVHk48pWN4QAAAAAibS6OHH55ZfH3nvvHU8//XTU19fH2WefHS+++GLMmzcvnnjiiVUKce6558a4cePinHPOiYoKhQUAAADKT8ZWoiXT6krA4MGD45VXXoldd901vvzlL8fChQvj0EMPjWnTpsWgQYNWKUR9fX0cfvjhChMAAACwBmp150RERHV1dZx77rltFuLYY4+Nu+66K37wgx+02XMCAAAA7UNRxYnnnnuu6CccMmRIq0M0NDTE5ZdfHg8++GAMGTKk2YKY48ePb/VzAgAAAO1DUcWJbbbZJjKZTOTz+RWel8lkoqGhodUhnn/++dh2220jIuKFF15o9pwAAACQnL9PS6ao4sSbb75Z0hCTJ08u6fMDAAAA5auo4sRGG21U6hwAAADAGsr2GAAAAEBSq7RbBwAAAKxxKqw5USo6JwAAAICkFCcAAACApFpdnNh4443jgw8+aDY+f/782HjjjdskFAAAAJSbTCbTLo/2oNXFibfeeisaGhqajedyuZgxY0abhAIAAADWHEUviPn73/++6b8ffPDBqK6ubvq4oaEhJk2aFAMGDGjTcAAAAEDHV3Rx4pBDDomIpW0sxx57bMFjnTt3jgEDBsSVV17ZpuEAAACAji+Tz+fzrblg4MCB8b//+7/Ru3fvUmX6tzW++FjqCBERUTFwSOoIEa378pbEknH/mTpCRER0OrsMimdde6ROEBER3+q2YeoIMWHhO6kjRH5u+gwREZle66WOEPkFc1JHiIiITK++qSNEZKwV3WTxp6kTRHSuSp2AZeTnz0odYamK9P8/zaxVBj/TO2dTJ+Bf5OfPTB0h8h+8nzpCVGy1R+oIJbPk1INSR1glna75Q+oIK1V058Rn3nzzzVLkAAAAANZQrS5ORERMmjQpJk2aFLNnz47GxsaCx2655ZY2CQYAAACsGVpdnBg3blxceOGFsf3228d6663XbrYlAQAAgH+Lv39LptXFiQkTJsRtt90WRx99dCnyAAAAAGuYVq8mVF9fHzvvvHMpsgAAAABroFYXJ0466aS48847S5EFAAAAWAO1elrHp59+GjfeeGM8/PDDMWTIkOjcuXPB4+PHj2+zcAAAAFA2rDlRMq0uTjz33HOxzTbbRETECy+8UPCYxTEBAACA1mp1cWLy5MmlyAEAAACsoVq95sRnXnvttXjwwQfjk08+iYiIfD7fZqEAAACANUerixMffPBB7L333rHZZpvFAQccEO+//35ERJx44onxve99r80DAgAAQFnIZNrn0Q60ujhx5plnRufOnWP69OnRtWvXpvHDDz88HnjggTYNBwAAAHR8rV5zYuLEifHggw/GBhtsUDC+6aabxttvv91mwQAAAIA1Q6uLEwsXLizomPjMvHnzIpvNtkkoAAAAKDsVq7xsIyvR6js7fPjwuP3225s+zmQy0djYGJdffnnsueeebRoOAAAA6Pha3Tlx+eWXx9577x1PP/101NfXx9lnnx0vvvhizJs3L5544olVDjJp0qSYNGlSzJ49OxobGwseu+WWW5Z7XS6Xi1wuVzDWub4+sl26rHIWAAAAYPVpdefE4MGD45VXXoldd901vvzlL8fChQvj0EMPjWnTpsWgQYNWKcS4ceNi3333jUmTJsXcuXPjww8/LDhWpLa2NqqrqwuOS2/65SrlAAAAAFa/VnVOLF68OPbbb7+YMGFCnHvuuW0WYsKECXHbbbfF0Ucf3eprx4wZEzU1NQVjnV//37aKBgAAAEu1k20526NWFSc6d+4czz33XJuHqK+vj5133nmVrs1ms80W4mw0pQMAAADajVZP6zjqqKPi5ptvbtMQJ510Utx5551t+pwAAABA+9DqBTGXLFkSt9xySzz88MMxdOjQ6NatW8Hj48ePb3WITz/9NG688cZ4+OGHY8iQIdG5c+d/+zkBAACgTZnWUTKtLk688MILsd1220VExCuvvFLwWGYVv1DPPfdcbLPNNk3P3xbPCQAAALQPrSpONDQ0xLhx42KrrbaKXr16tVmIyZMnt9lzAQAAAO1Lq9acqKysjH333Tfmz59fojgAAADAmqbVC2IOHjw43njjjVJkAQAAgPKVybTPox1odXHi4osvjtGjR8cf/vCHeP/996Ourq7gAAAAAGiNVi+IecABB0RExMEHH1ywWGU+n49MJhMNDQ1tlw4AAADo8FpdnLB4JQAAANCWWl2c2H333UuRAwAAAMpbRatXRqBIrS5OPProoyt8fLfddlvlMAAAAMCap9XFiT322KPZ2LJrT1hzAgAAAGiNVvekfPjhhwXH7Nmz44EHHogddtghJk6cWIqMAAAAkF7qLUE78Faire6cqK6ubja2zz77RJcuXaKmpiaeeeaZNgkGAAAArBnabDWPvn37xssvv9xWTwcAAACsIVrdOfHcc88VfJzP5+P999+PSy+9NLbZZpu2yvVvqRiwVeoIS+UWpU4Qke2aOkF0Ou+61BGWquycOkFEY3msyTLh47dTR4jI51MniMw666eOsFRFZeoE5fHvVUQ0vvH31BEiPvk4dYLIP/FQ6ggREVH5nxekjhDRsCR1gojKVv+6VBpl8DMkUwa/V0RE5BsbU0eI6NQldYKy+FkaERH5Mvh6lMPP0oiISN8+X7Hx1qkjwCpp9U/bbbbZJjKZTOT/5R/DHXfcMW655ZY2CwYAAABlpZ2s39Aetbo48eabbxZ8XFFREX369Imqqqo2CwUAAACsOVpdnNhoo41KkQMAAABYQxW9IOaf//zn2GKLLaKurq7ZYwsWLIgtt9wyHnvssTYNBwAAAGUj9ZagHXgr0aKLE1dffXWcfPLJ0aNHj2aPVVdXxze/+c0YP358m4YDAAAAOr6iixN///vfY7/99lvu4/vuu28888wzbRIKAAAAWHMUXZyYNWtWdO68/K0YO3XqFHPmzGmTUAAAAMCao+gFMfv37x8vvPBCbLLJJi0+/txzz8V6663XZsEAAACgrFQU/f4+rVT0nT3ggAPivPPOi08//bTZY5988kmcf/75cdBBB7VpOAAAAKDjK7pz4oc//GHce++9sdlmm8Wpp54am2++eURE/POf/4xrr702Ghoa4txzzy1ZUAAAAKBjKro40bdv3/jLX/4Sp5xySowZMyby+XxERGQymRg5cmRce+210bdv35IFBQAAADqmoosTEREbbbRR/OlPf4oPP/wwXnvttcjn87HppptGr169SpUPAAAAykMmkzpBh9Wq4sRnevXqFTvssENbZwEAAADWQJYaBQAAAJJapc4JAAAAWOOY1lEyZVGcmD9/ftx8883x0ksvRUTElltuGSeccEJUV1cnTgYAAACUWvJpHU8//XQMGjQorrrqqpg3b17Mmzcvxo8fH4MGDYqpU6eu9PpcLhd1dXUFRy6XWw3JAQAAgLaQvDhx5plnxsEHHxxvvfVW3HvvvXHvvffGm2++GQcddFCcccYZK72+trY2qqurC47aK64qfXAAAACgTSSf1vH000/HTTfdFJ06/V+UTp06xdlnnx3bb7/9Sq8fM2ZM1NTUFIxll3zS5jkBAABYw1lzomSSFyd69OgR06dPjy984QsF4++8806svfbaK70+m81GNpstHFzY2JYRAQAAgBJKPq3j8MMPjxNPPDHuuuuueOedd+Kdd96JX//613HSSSfFEUcckToeAAAAUGLJOyeuuOKKyGQyccwxx8SS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KJnGv09a+UllqGLrvVNHWCl/PQMAAEAxvNlYMu4sAAAAkJTiBAAAAJCUaR0AAABQDGshlUzyzomTTjoppkyZkjoGAAAAkEjy4sScOXNiv/32iw033DDOOuus+Pvf/96q63O5XNTV1RUcuVyuRGkBAACAtpa8OPHf//3f8f7778d5550X//u//xvbbbddbLnllnHJJZfEW2+9tdLra2tro7q6uuCovfLqkucGAAAA2kYmny+HTcz/z7vvvhu/+tWv4pZbbolXX301lixZssLzc7lcs06JbP3Hkc1mSxmzOJWW9Cgr+cbUCWw9VG5yn6ROsFR2rdQJoGXl8CuCub2Uq08Xpk4QUdUtdQJoWdfq1AlKpvGFR1NHWCUVg3dLHWGlyuqv58WLF8fTTz8dTz31VLz11lvRt2/flV6TzWabFyI+WlyihAAAAEBbK4u3cSdPnhwnn3xy9O3bN4477rjo0aNH/OEPf4h33303dTQAAACgxJJ3TvTv3z/mzZsX++23X9x4440xatSo8piSAQAAAKwWyYsTF1xwQRx22GHRs2fP1FEAAABg+ayFVDLJixMnn3xy6ggAAABAQmWx5gQAAACw5kreOQEAAADtQsb7+6XizgIAAABJKU4AAAAASSlOAAAAAElZcwIAAACKUeH9/VJxZwEAAICkFCcAAACApEzrAAAAgCJkMpnUETosnRMAAABAUooTAAAAQFIdclpHw3OPpI4QERGV2+6dOgLLyC+YnTpCZHr2Sx2BZWnLgxVrbEidIKKyQ/6qQkfQpSp1AoAOxU98AAAAKEbG5INScWcBAACApBQnAAAAgKQUJwAAAICkrDkBAAAAxbCgesnonAAAAACSUpwAAAAAkjKtAwAAAIphK9GScWcBAACApBQnAAAAgKQUJwAAAICkrDkBAAAAxbCVaMnonAAAAACSSl6cOOaYY+LWW2+N119/PXUUAAAAIIHk0zq6dOkStbW1ceKJJ0b//v1j9913jz322CN233332HTTTVPHAwAAgKUqkr+/32Fl8vl8PnWIiIgZM2bEo48+Go888kg88sgj8corr8R6660X77777gqvy+VykcvlCsY6PXN/ZLt0LmXcolRuu3fqCCwjP39m6giR6dkvdQSWVf9p6gRLdalKnQBa1rAkdYKIyuTvo0DLGhtSJ4ioqEydAFrWtTp1gpLJv/ls6girJDNwm9QRVqpsyj69evWKz33uc9GrV6/o2bNndOrUKfr06bPS62pra6O6urrguPQX966GxAAAAEBbSN458YMf/CCmTJkS06ZNiy9+8YtN0zp222236NWr10qv1zlBsXRO0IzOCVgxnROwfDonYPl0TpSd9tA5kfwn/qWXXhp9+vSJ888/Pw499NDYbLPNWnV9NpuNbDZbMNZQBoUJAAAAOhhbiZZM8uLEtGnT4pFHHokpU6bElVdeGV26dGnqnthjjz1aXawAAAAA2pfk0zr+1d///ve46qqr4o477ojGxsZoaGh9y1zDE+Wx5oRpHeXFtA6aMa0DVsy0Dlg+0zpg+TrytI63/p46wirJDNg6dYSVSv4TP5/Px7Rp02LKlCkxZcqUePzxx6Ouri6GDBkSu+++e+p4AAAAQIklL06ss8468fHHH8fWW28du+++e5x88skxfPjw6NmzZ+poAAAA8H8yZbPhZYeTvDjxy1/+MoYPHx49evRIHQUAAABIIHlx4sADD0wdAQAAAEgoeXECAAAA2gVbiZaMCTMAAABAUooTAAAAQFKKEwAAAEBS1pwAAACAolhzolR0TgAAAABJKU4AAAAASZnWAQAAAMWwlWjJ6JwAAAAAkuqQnROV2+6dOgJlKNOzX+oIlJsuVakTQHmr7JC/JkDbqKhMnQCgQ9E5AQAAACTlLREAAAAohjUnSkbnBAAAAJCU4gQAAACQlOIEAAAAkJQ1JwAAAKAo1pwoFZ0TAAAAQFKKEwAAAEBSpnUAAABAMWwlWjI6JwAAAICkFCcAAACApBQnAAAAgKSsOQEAAADFsOREyeicAAAAAJJSnAAAAACSSl6cmDx58nIfu+GGG1ZjEgAAAFiRTDs9yl/y4sR+++0XZ511VixevLhpbO7cuTFq1Kg455xzVnp9LpeLurq6giOXy5UyMgAAANCGkhcnJk+eHPfdd1/ssMMO8Y9//CP++Mc/xuDBg6Ouri6effbZlV5fW1sb1dXVBUftFeNLHxwAAABoE5l8Pp9PHeLjjz+Ob33rW3HPPfdEY2NjXHTRRXH22WdHJrPy9pNcLtesUyLb8Glks9lSxQUAAGB5ulanTlAy+fdeSR1hlWTW3yx1hJUqi61EX3nllXj66adjgw02iPfeey9efvnlWLRoUXTr1m2l12az2eaFiEXJ6y0AAAB0NEW8gc6qST6t49JLL42ddtop9tlnn3jhhRfib3/7W0ybNi2GDBkSTz75ZOp4AAAAQIkln9ax3nrrxS233BL7779/09jixYvjBz/4Qfz0pz9dtcUtFy1ow4QAAAAUrSNP63j/1dQRVklmvU1TR1ip5MWJuXPnRu/evVt87JFHHondd9+99U+qOAEAAJCG4kTZUZxIRXECAAAgjY5cnJj5WuoIqyTTb5PUEVYq+ZoTAAAAwJpNcQIAAABIqiy2EgUAAIDyZyvRUtE5AQAAACSlOAEAAAAkpTgBAAAAJGXNCQAAAChGxpoTpaJzAgAAAEhKcQIAAABISnECAAAASMqaEwAAAFAUa06USocsTjRMm5Q6QkREVG67d+oILCNfNzd1hMj06J06AsvIz5meOkJERGT6fD51BGhRfuH81BEi061n6gjQsvpPUyeI6FKVOgFAmzGtAwAAAEiqQ3ZOAAAAQJuzlWjJ6JwAAAAAklKcAAAAAJJSnAAAAACSsuYEAAAAFMOaEyWjcwIAAABISnECAAAASMq0DgAAACiKaR2lonMCAAAASEpxAgAAAEhKcQIAAABIypoTAAAAUISMrURLRucEAAAAkFTy4sSxxx4bjz76aOoYAAAAQCLJixMLFiyIESNGxKabbhqXXHJJzJgxo1XX53K5qKurKzhy9YtLlBYAAABoa8mLE7/73e9ixowZccopp8Rdd90VAwYMiP333z/uueeeWLx45UWG2traqK6uLjgu/cW9qyE5AAAAa5RMpn0e7UAmn8/nU4dY1tSpU+PWW2+Nn//859G9e/c46qij4tvf/nZsuummLZ6fy+Uil8sVjHV65v7Idum8OuKuUOW2e6eOwDLydXNTR4hMj96pI7CM/JzpqSNERESmz+dTR4AW5RfOTx0hMt16po4ALav/NHWCiC5VqRNAy7pWp05QOh+8mzrBqvncBqkTrFTyzollvf/++/HQQw/FQw89FJWVlXHAAQfE888/H1tssUVcddVVLV6TzWajR48eBUc5FCYAAACA4iTfSnTx4sXx+9//Pm699daYOHFiDBkyJM4444z4xje+ET169IiIiPvuuy9OOOGEOPPMMxOnBQAAYM3VPqZItEfJixPrrbdeNDY2xhFHHBF/+9vfYptttml2zp577hk9e/Zc7dkAAACA0ktenLjqqqvisMMOi6qq5c+Z69mzZ7z55purMRUAAACwuiQvThx99NGpIwAAAAAJJS9OAAAAQLvQTrblbI/KarcOAAAAYM2jOAEAAAAkZVoHAAAAFMO0jpLROQEAAAAkpTgBAAAAJKU4AQAAACRlzQkAAAAoijUnSkXnBAAAAJCU4gQAAACQlOIEAAAAkFSHXHOios8GqSNQhjLZrqkjUG58T8AKZTpXpY4AAOUlY82JUtE5AQAAACSlOAEAAAAk1SGndQAAAECbM6ujZHROAAAAAEkpTgAAAABJKU4AAAAASVlzAgAAAIpi0YlS0TkBAAAAJKU4AQAAACRlWgcAAAAUI2NaR6nonAAAAACSUpwAAAAAklKcAAAAAJKy5gQAAAAUw5oTJaNzAgAAAEgqeXFir732inHjxjUb//DDD2OvvfZKkAgAAABYnZJP65gyZUo8//zzMW3atLjjjjuiW7duERFRX18fjzzyyEqvz+VykcvlCsa61NdHtkuXkuQFAAAA2lbyzomIiIcffjhmzpwZO+64Y7z11lutura2tjaqq6sLjtob/qs0QQEAAFiDZdrpUf4y+Xw+nzJARUVFzJw5M6qrq+P444+Phx56KO6+++744he/GOuvv340NDSs8PoWOyemP1cWnROZDTZPHYFl5RalThCR7Zo6AcvI181NHSEiIjI9eqeOAC2r/zR1goguVakTQMv8/wOWr2t16gSl89EHqROsmrU/lzrBSiWf1pH5/6udZrPZuPPOO+Piiy+O/fbbL77//e8XdX02m41sNlswli+DwgQAAABQnP/X3r2Hx3TnfwB/T0YmE7nKTRJF3JqERhJRKi6ZYoVdnqQ82IhIKlR1Iy5LQosQl6CNS2iL6JLsjjZ1KZZWa62JEBslQokHjWSjTFFsEonczPn94ZnZDNGfdDnntHm/nmeex3znm/N9Z+bMnPHJ93yP5MWJxyduzJ8/H76+voiOjpYoEREREREREVEjeCnRF0by4kRxcTFcXV3N2kaNGgUfHx+cOnVKolREREREREREJBbJixPt27dvtL1bt27o1q2byGmIiIiIiIiISGyyuFoHERERERERETVfks+cICIiIiIiIvpV4JoTLwxnThARERERERGRpFicICIiIiIiIiJJsThBRERERERERJLimhNEREREREREz4RrTrwonDlBRERERERERJJicYKIiIiIiIiIJMXiBBEREREREdGzUCh+nbcm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RFxcnNlaDiqVCg8fPmxSnh49eiArKwtubm6wt7dvtE9j21WpVABg1t66dWt4enri6tWriIyMbFIOIiIioheFC2ISERE9xs/PD5GRkUhLSzNrT0xMRG5uLuLi4lBQUIArV65g7969pgUxKyoqEBUVhfj4eAwbNgxarRZZWVnYuXOnaRteXl44evQorl+/jp9++umZ8kRGRsLFxQVhYWHIyclBcXExdDod4uPjTYt3enl54dy5c7h06RJ++ukn1NXVwc3NDdbW1jh48CBu3ryJsrIyAMDixYuRkpKCtLQ0XL58Gd999x22bt2K1atXP4+nj4iIiKjJWJwgIiJqRHJyMgwGg1lb9+7dkZ2djcuXL6N///4IDAzEwoUL4enpCQCYPn06bGxssHz5cgCPihzLly/HlClTcP36ddN2S0pK0KlTp2c+JaNly5Y4evQo2rVrh5EjR8LX1xexsbGorq42zaSYPHkyvL290bNnT7i6uuL48eNo0aIF0tLSsGnTJnh6eiIsLAwAMGnSJGzZsgVbt26Fn58fQkJCsG3bNtOlR4mIiIjEphAEQZA6BBERERERERE1X5w5QURERERERESSYnGCiIiIiIiIiCTF4gQRERERERERSYrFCSIiIiIiIiKSFIsTRERERERERCQpFieIiIiIiIiISFIsThARERERERGRpFicICIiIiIiIiJJsThBRERERERERJJicYKIiIiIiIiIJMXiBBERERERERFJ6v8Aa5XxxP3/TqsAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(14, 12))\n",
+ "sns.heatmap(df_bigrams_matrix, cmap=\"Reds\", cbar=True, xticklabels=letters, yticklabels=letters)\n",
+ "plt.title(\"Bigram frequencies in surnames\")\n",
+ "plt.xlabel(\"Next letter\")\n",
+ "plt.ylabel(\"Current letter\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8e948cdd-c77b-48f6-b643-0a24f513afa9",
+ "metadata": {},
+ "source": [
+ "### Tableau des bigrammes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "07a8bd99-761e-4492-a8ff-0c66185524d7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " a | \n",
+ " b | \n",
+ " c | \n",
+ " d | \n",
+ " e | \n",
+ " f | \n",
+ " g | \n",
+ " h | \n",
+ " i | \n",
+ " j | \n",
+ " ... | \n",
+ " q | \n",
+ " r | \n",
+ " s | \n",
+ " t | \n",
+ " u | \n",
+ " v | \n",
+ " w | \n",
+ " x | \n",
+ " y | \n",
+ " z | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | a | \n",
+ " 5228 | \n",
+ " 263129 | \n",
+ " 8991 | \n",
+ " 116767 | \n",
+ " 6306 | \n",
+ " 38087 | \n",
+ " 30182 | \n",
+ " 75189 | \n",
+ " 28541 | \n",
+ " 19495 | \n",
+ " ... | \n",
+ " 28 | \n",
+ " 48719 | \n",
+ " 268202 | \n",
+ " 186897 | \n",
+ " 24085 | \n",
+ " 75440 | \n",
+ " 47762 | \n",
+ " 40 | \n",
+ " 173351 | \n",
+ " 60875 | \n",
+ "
\n",
+ " \n",
+ " | b | \n",
+ " 781156 | \n",
+ " 166 | \n",
+ " 0 | \n",
+ " 1186 | \n",
+ " 226715 | \n",
+ " 1 | \n",
+ " 93 | \n",
+ " 2932 | \n",
+ " 221388 | \n",
+ " 9 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 2049 | \n",
+ " 23 | \n",
+ " 16 | \n",
+ " 293343 | \n",
+ " 16 | \n",
+ " 51227 | \n",
+ " 1 | \n",
+ " 8320 | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " | c | \n",
+ " 4411 | \n",
+ " 1 | \n",
+ " 280 | \n",
+ " 0 | \n",
+ " 6411 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 23056 | \n",
+ " 23602 | \n",
+ " 2 | \n",
+ " ... | \n",
+ " 458 | \n",
+ " 185 | \n",
+ " 6 | \n",
+ " 579 | \n",
+ " 1700 | \n",
+ " 0 | \n",
+ " 323 | \n",
+ " 0 | \n",
+ " 545 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | d | \n",
+ " 199445 | \n",
+ " 13 | \n",
+ " 0 | \n",
+ " 429 | \n",
+ " 76782 | \n",
+ " 8 | \n",
+ " 17 | \n",
+ " 3760 | \n",
+ " 259819 | \n",
+ " 54307 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 6879 | \n",
+ " 66 | \n",
+ " 14 | \n",
+ " 79705 | \n",
+ " 19 | \n",
+ " 6706 | \n",
+ " 1 | \n",
+ " 2546 | \n",
+ " 1787 | \n",
+ "
\n",
+ " \n",
+ " | e | \n",
+ " 10218 | \n",
+ " 55430 | \n",
+ " 1806 | \n",
+ " 28464 | \n",
+ " 9164 | \n",
+ " 9016 | \n",
+ " 8840 | \n",
+ " 6778 | \n",
+ " 2636 | \n",
+ " 6489 | \n",
+ " ... | \n",
+ " 9 | \n",
+ " 70449 | \n",
+ " 57711 | \n",
+ " 65537 | \n",
+ " 4229 | \n",
+ " 4548 | \n",
+ " 10063 | \n",
+ " 318 | \n",
+ " 54429 | \n",
+ " 23871 | \n",
+ "
\n",
+ " \n",
+ " | f | \n",
+ " 38611 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 4 | \n",
+ " 13782 | \n",
+ " 198 | \n",
+ " 3 | \n",
+ " 22 | \n",
+ " 24087 | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 1345 | \n",
+ " 45 | \n",
+ " 79 | \n",
+ " 63527 | \n",
+ " 0 | \n",
+ " 4005 | \n",
+ " 0 | \n",
+ " 798 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | g | \n",
+ " 466541 | \n",
+ " 24772 | \n",
+ " 9 | \n",
+ " 44 | \n",
+ " 102163 | \n",
+ " 7 | \n",
+ " 38 | \n",
+ " 18597 | \n",
+ " 94315 | \n",
+ " 13 | \n",
+ " ... | \n",
+ " 2 | \n",
+ " 1169 | \n",
+ " 25 | \n",
+ " 15 | \n",
+ " 141016 | \n",
+ " 4 | \n",
+ " 23274 | \n",
+ " 0 | \n",
+ " 1630 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | h | \n",
+ " 126923 | \n",
+ " 20 | \n",
+ " 2 | \n",
+ " 11 | \n",
+ " 38849 | \n",
+ " 16 | \n",
+ " 9 | \n",
+ " 8 | \n",
+ " 221195 | \n",
+ " 9 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 900 | \n",
+ " 96 | \n",
+ " 82 | \n",
+ " 40774 | \n",
+ " 4 | \n",
+ " 1921 | \n",
+ " 0 | \n",
+ " 1048 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | i | \n",
+ " 142956 | \n",
+ " 99789 | \n",
+ " 5475 | \n",
+ " 40211 | \n",
+ " 65119 | \n",
+ " 22757 | \n",
+ " 11706 | \n",
+ " 8267 | \n",
+ " 955 | \n",
+ " 6000 | \n",
+ " ... | \n",
+ " 614 | \n",
+ " 79659 | \n",
+ " 120640 | \n",
+ " 112233 | \n",
+ " 5614 | \n",
+ " 7655 | \n",
+ " 14137 | \n",
+ " 135 | \n",
+ " 46205 | \n",
+ " 32395 | \n",
+ "
\n",
+ " \n",
+ " | j | \n",
+ " 31283 | \n",
+ " 2 | \n",
+ " 5 | \n",
+ " 30 | \n",
+ " 11267 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 63052 | \n",
+ " 13 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 11 | \n",
+ " 8367 | \n",
+ " 2 | \n",
+ " 257 | \n",
+ " 0 | \n",
+ " 37 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | k | \n",
+ " 1007696 | \n",
+ " 127 | \n",
+ " 9 | \n",
+ " 15 | \n",
+ " 127691 | \n",
+ " 426 | \n",
+ " 6 | \n",
+ " 7691 | \n",
+ " 274640 | \n",
+ " 6 | \n",
+ " ... | \n",
+ " 5 | \n",
+ " 360 | \n",
+ " 2043 | \n",
+ " 31 | \n",
+ " 217831 | \n",
+ " 6 | \n",
+ " 40067 | \n",
+ " 0 | \n",
+ " 20183 | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " | l | \n",
+ " 447225 | \n",
+ " 704 | \n",
+ " 47 | \n",
+ " 331 | \n",
+ " 272326 | \n",
+ " 431 | \n",
+ " 109 | \n",
+ " 177 | \n",
+ " 155618 | \n",
+ " 7 | \n",
+ " ... | \n",
+ " 6 | \n",
+ " 8 | \n",
+ " 169 | \n",
+ " 117 | \n",
+ " 349100 | \n",
+ " 458 | \n",
+ " 13036 | \n",
+ " 1 | \n",
+ " 3818 | \n",
+ " 14 | \n",
+ "
\n",
+ " \n",
+ " | m | \n",
+ " 630378 | \n",
+ " 957543 | \n",
+ " 57 | \n",
+ " 140 | \n",
+ " 69192 | \n",
+ " 12061 | \n",
+ " 139 | \n",
+ " 27 | \n",
+ " 104343 | \n",
+ " 19 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 43 | \n",
+ " 1257 | \n",
+ " 209 | \n",
+ " 485738 | \n",
+ " 16584 | \n",
+ " 96340 | \n",
+ " 0 | \n",
+ " 1746 | \n",
+ " 400 | \n",
+ "
\n",
+ " \n",
+ " | n | \n",
+ " 178027 | \n",
+ " 308 | \n",
+ " 4846 | \n",
+ " 501221 | \n",
+ " 63320 | \n",
+ " 1730 | \n",
+ " 1072187 | \n",
+ " 408 | \n",
+ " 132065 | \n",
+ " 19182 | \n",
+ " ... | \n",
+ " 29 | \n",
+ " 438 | \n",
+ " 101026 | \n",
+ " 94788 | \n",
+ " 30568 | \n",
+ " 3386 | \n",
+ " 1594 | \n",
+ " 0 | \n",
+ " 104903 | \n",
+ " 185094 | \n",
+ "
\n",
+ " \n",
+ " | o | \n",
+ " 6033 | \n",
+ " 46846 | \n",
+ " 1704 | \n",
+ " 22198 | \n",
+ " 3292 | \n",
+ " 15467 | \n",
+ " 8924 | \n",
+ " 7986 | \n",
+ " 15828 | \n",
+ " 2737 | \n",
+ " ... | \n",
+ " 7 | \n",
+ " 14504 | \n",
+ " 58695 | \n",
+ " 68895 | \n",
+ " 7253 | \n",
+ " 4673 | \n",
+ " 16425 | \n",
+ " 36 | \n",
+ " 101989 | \n",
+ " 10943 | \n",
+ "
\n",
+ " \n",
+ " | p | \n",
+ " 85530 | \n",
+ " 22 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 65177 | \n",
+ " 1244 | \n",
+ " 0 | \n",
+ " 14841 | \n",
+ " 48942 | \n",
+ " 2 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 810 | \n",
+ " 28 | \n",
+ " 79 | \n",
+ " 44937 | \n",
+ " 2 | \n",
+ " 3765 | \n",
+ " 0 | \n",
+ " 2655 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | q | \n",
+ " 9 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 1222 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | r | \n",
+ " 91428 | \n",
+ " 196 | \n",
+ " 1888 | \n",
+ " 1146 | \n",
+ " 70223 | \n",
+ " 37 | \n",
+ " 877 | \n",
+ " 10283 | \n",
+ " 48804 | \n",
+ " 16 | \n",
+ " ... | \n",
+ " 39 | \n",
+ " 617 | \n",
+ " 321 | \n",
+ " 1858 | \n",
+ " 26502 | \n",
+ " 268 | \n",
+ " 5676 | \n",
+ " 0 | \n",
+ " 1388 | \n",
+ " 20 | \n",
+ "
\n",
+ " \n",
+ " | s | \n",
+ " 244729 | \n",
+ " 20 | \n",
+ " 1132 | \n",
+ " 27 | \n",
+ " 140580 | \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 258865 | \n",
+ " 166135 | \n",
+ " 19 | \n",
+ " ... | \n",
+ " 8 | \n",
+ " 158 | \n",
+ " 17350 | \n",
+ " 5835 | \n",
+ " 72439 | \n",
+ " 8 | \n",
+ " 10000 | \n",
+ " 2 | \n",
+ " 1212 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | t | \n",
+ " 189566 | \n",
+ " 10 | \n",
+ " 3548 | \n",
+ " 671 | \n",
+ " 115751 | \n",
+ " 61 | \n",
+ " 4 | \n",
+ " 15513 | \n",
+ " 68932 | \n",
+ " 6 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 2055 | \n",
+ " 166255 | \n",
+ " 1722 | \n",
+ " 162308 | \n",
+ " 2 | \n",
+ " 9482 | \n",
+ " 3 | \n",
+ " 2114 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | u | \n",
+ " 111689 | \n",
+ " 64538 | \n",
+ " 2476 | \n",
+ " 34405 | \n",
+ " 45750 | \n",
+ " 14052 | \n",
+ " 32712 | \n",
+ " 30536 | \n",
+ " 20865 | \n",
+ " 18966 | \n",
+ " ... | \n",
+ " 3 | \n",
+ " 33954 | \n",
+ " 109891 | \n",
+ " 123781 | \n",
+ " 1053 | \n",
+ " 10120 | \n",
+ " 17456 | \n",
+ " 134 | \n",
+ " 72914 | \n",
+ " 44982 | \n",
+ "
\n",
+ " \n",
+ " | v | \n",
+ " 20283 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 9997 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " 22 | \n",
+ " 44317 | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 64 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 54318 | \n",
+ " 4 | \n",
+ " 514 | \n",
+ " 0 | \n",
+ " 559 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | w | \n",
+ " 234581 | \n",
+ " 11 | \n",
+ " 0 | \n",
+ " 9 | \n",
+ " 108690 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 62 | \n",
+ " 40902 | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 12 | \n",
+ " 11 | \n",
+ " 14374 | \n",
+ " 3 | \n",
+ " 19 | \n",
+ " 1 | \n",
+ " 48 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | x | \n",
+ " 136 | \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 0 | \n",
+ " 26 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 192 | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 10 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | y | \n",
+ " 237389 | \n",
+ " 182 | \n",
+ " 111 | \n",
+ " 241 | \n",
+ " 88532 | \n",
+ " 11 | \n",
+ " 42 | \n",
+ " 47 | \n",
+ " 135242 | \n",
+ " 3 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 267 | \n",
+ " 274 | \n",
+ " 134 | \n",
+ " 38581 | \n",
+ " 383 | \n",
+ " 401 | \n",
+ " 2 | \n",
+ " 13 | \n",
+ " 57 | \n",
+ "
\n",
+ " \n",
+ " | z | \n",
+ " 161374 | \n",
+ " 33 | \n",
+ " 1 | \n",
+ " 101 | \n",
+ " 46336 | \n",
+ " 0 | \n",
+ " 4 | \n",
+ " 58 | \n",
+ " 90575 | \n",
+ " 16 | \n",
+ " ... | \n",
+ " 0 | \n",
+ " 95 | \n",
+ " 18 | \n",
+ " 2 | \n",
+ " 38622 | \n",
+ " 110 | \n",
+ " 2331 | \n",
+ " 0 | \n",
+ " 1039 | \n",
+ " 92 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
26 rows × 26 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " a b c d e f g h i \\\n",
+ "a 5228 263129 8991 116767 6306 38087 30182 75189 28541 \n",
+ "b 781156 166 0 1186 226715 1 93 2932 221388 \n",
+ "c 4411 1 280 0 6411 0 6 23056 23602 \n",
+ "d 199445 13 0 429 76782 8 17 3760 259819 \n",
+ "e 10218 55430 1806 28464 9164 9016 8840 6778 2636 \n",
+ "f 38611 0 0 4 13782 198 3 22 24087 \n",
+ "g 466541 24772 9 44 102163 7 38 18597 94315 \n",
+ "h 126923 20 2 11 38849 16 9 8 221195 \n",
+ "i 142956 99789 5475 40211 65119 22757 11706 8267 955 \n",
+ "j 31283 2 5 30 11267 1 2 17 63052 \n",
+ "k 1007696 127 9 15 127691 426 6 7691 274640 \n",
+ "l 447225 704 47 331 272326 431 109 177 155618 \n",
+ "m 630378 957543 57 140 69192 12061 139 27 104343 \n",
+ "n 178027 308 4846 501221 63320 1730 1072187 408 132065 \n",
+ "o 6033 46846 1704 22198 3292 15467 8924 7986 15828 \n",
+ "p 85530 22 1 0 65177 1244 0 14841 48942 \n",
+ "q 9 2 0 1 0 0 0 0 0 \n",
+ "r 91428 196 1888 1146 70223 37 877 10283 48804 \n",
+ "s 244729 20 1132 27 140580 7 3 258865 166135 \n",
+ "t 189566 10 3548 671 115751 61 4 15513 68932 \n",
+ "u 111689 64538 2476 34405 45750 14052 32712 30536 20865 \n",
+ "v 20283 3 0 1 9997 0 3 22 44317 \n",
+ "w 234581 11 0 9 108690 1 6 62 40902 \n",
+ "x 136 3 5 0 26 0 0 6 192 \n",
+ "y 237389 182 111 241 88532 11 42 47 135242 \n",
+ "z 161374 33 1 101 46336 0 4 58 90575 \n",
+ "\n",
+ " j ... q r s t u v w x y \\\n",
+ "a 19495 ... 28 48719 268202 186897 24085 75440 47762 40 173351 \n",
+ "b 9 ... 1 2049 23 16 293343 16 51227 1 8320 \n",
+ "c 2 ... 458 185 6 579 1700 0 323 0 545 \n",
+ "d 54307 ... 0 6879 66 14 79705 19 6706 1 2546 \n",
+ "e 6489 ... 9 70449 57711 65537 4229 4548 10063 318 54429 \n",
+ "f 0 ... 1 1345 45 79 63527 0 4005 0 798 \n",
+ "g 13 ... 2 1169 25 15 141016 4 23274 0 1630 \n",
+ "h 9 ... 1 900 96 82 40774 4 1921 0 1048 \n",
+ "i 6000 ... 614 79659 120640 112233 5614 7655 14137 135 46205 \n",
+ "j 13 ... 0 6 1 11 8367 2 257 0 37 \n",
+ "k 6 ... 5 360 2043 31 217831 6 40067 0 20183 \n",
+ "l 7 ... 6 8 169 117 349100 458 13036 1 3818 \n",
+ "m 19 ... 0 43 1257 209 485738 16584 96340 0 1746 \n",
+ "n 19182 ... 29 438 101026 94788 30568 3386 1594 0 104903 \n",
+ "o 2737 ... 7 14504 58695 68895 7253 4673 16425 36 101989 \n",
+ "p 2 ... 0 810 28 79 44937 2 3765 0 2655 \n",
+ "q 0 ... 0 1 2 0 1222 0 1 0 0 \n",
+ "r 16 ... 39 617 321 1858 26502 268 5676 0 1388 \n",
+ "s 19 ... 8 158 17350 5835 72439 8 10000 2 1212 \n",
+ "t 6 ... 1 2055 166255 1722 162308 2 9482 3 2114 \n",
+ "u 18966 ... 3 33954 109891 123781 1053 10120 17456 134 72914 \n",
+ "v 0 ... 1 64 2 3 54318 4 514 0 559 \n",
+ "w 0 ... 2 8 12 11 14374 3 19 1 48 \n",
+ "x 0 ... 0 0 0 3 7 0 1 10 4 \n",
+ "y 3 ... 1 267 274 134 38581 383 401 2 13 \n",
+ "z 16 ... 0 95 18 2 38622 110 2331 0 1039 \n",
+ "\n",
+ " z \n",
+ "a 60875 \n",
+ "b 18 \n",
+ "c 2 \n",
+ "d 1787 \n",
+ "e 23871 \n",
+ "f 1 \n",
+ "g 8 \n",
+ "h 4 \n",
+ "i 32395 \n",
+ "j 1 \n",
+ "k 11 \n",
+ "l 14 \n",
+ "m 400 \n",
+ "n 185094 \n",
+ "o 10943 \n",
+ "p 3 \n",
+ "q 0 \n",
+ "r 20 \n",
+ "s 7 \n",
+ "t 5 \n",
+ "u 44982 \n",
+ "v 8 \n",
+ "w 8 \n",
+ "x 0 \n",
+ "y 57 \n",
+ "z 92 \n",
+ "\n",
+ "[26 rows x 26 columns]"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_bigrams_matrix.head(26) "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "364580af-0604-4aab-9fad-1e777a9eab75",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Counting bigrams\n",
+ "bigram_counter = Counter()\n",
+ "for name in surnames:\n",
+ " for a, b in zip(name, name[1:]):\n",
+ " bigram_counter[a+b] += 1\n",
+ "\n",
+ "top_bigrams = bigram_counter.most_common(10)\n",
+ "\n",
+ "# Counting trigrams\n",
+ "trigram_counter = Counter()\n",
+ "for name in surnames:\n",
+ " for a, b, c in zip(name, name[1:], name[2:]):\n",
+ " trigram_counter[a+b+c] += 1\n",
+ "\n",
+ "top_trigrams = trigram_counter.most_common(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e67085b2-8b5b-4c1c-8339-8a9378a85697",
+ "metadata": {},
+ "source": [
+ "### The most frequently used bigrams"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "412883b2-c1fd-483f-b61a-ba2bfc8b04e7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " bigram | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " ng | \n",
+ " 1072187 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " ka | \n",
+ " 1007696 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " mb | \n",
+ " 957543 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " ba | \n",
+ " 781156 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " an | \n",
+ " 746783 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " ma | \n",
+ " 630378 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " nd | \n",
+ " 501221 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " mu | \n",
+ " 485738 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " ga | \n",
+ " 466541 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " am | \n",
+ " 466334 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " bigram count\n",
+ "0 ng 1072187\n",
+ "1 ka 1007696\n",
+ "2 mb 957543\n",
+ "3 ba 781156\n",
+ "4 an 746783\n",
+ "5 ma 630378\n",
+ "6 nd 501221\n",
+ "7 mu 485738\n",
+ "8 ga 466541\n",
+ "9 am 466334"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "df_bigrams = pd.DataFrame(bigram_counter.most_common(10), columns=[\"bigram\", \"count\"])\n",
+ "display(df_bigrams)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1fb8d1dc-38fb-4269-b22b-05dde9fb8842",
+ "metadata": {},
+ "source": [
+ "### The most commonly used trigrams"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "1a3c8b8c-cb78-47bf-87b3-0d105ed78af4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " trigram | \n",
+ " count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " nga | \n",
+ " 438962 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " mba | \n",
+ " 400099 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " ngo | \n",
+ " 289073 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " amb | \n",
+ " 269415 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " ang | \n",
+ " 266051 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " ong | \n",
+ " 215334 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " nda | \n",
+ " 176952 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " mbo | \n",
+ " 176921 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " ala | \n",
+ " 175773 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " shi | \n",
+ " 161218 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " trigram count\n",
+ "0 nga 438962\n",
+ "1 mba 400099\n",
+ "2 ngo 289073\n",
+ "3 amb 269415\n",
+ "4 ang 266051\n",
+ "5 ong 215334\n",
+ "6 nda 176952\n",
+ "7 mbo 176921\n",
+ "8 ala 175773\n",
+ "9 shi 161218"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "df_trigrams = pd.DataFrame(trigram_counter.most_common(10), columns=[\"trigram\", \"count\"])\n",
+ "display(df_trigrams)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "28e65639-9082-464d-9330-71e2a028c878",
+ "metadata": {},
+ "source": [
+ "## Name generation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "28fe77f9-f9b0-4267-9dbb-3969e04b83fb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['Kananyikyumb',\n",
+ " 'A',\n",
+ " 'Nka',\n",
+ " 'Kayomayi',\n",
+ " 'Ngo',\n",
+ " 'Ka',\n",
+ " 'Bondimema',\n",
+ " 'Nzongonzimba',\n",
+ " 'Ndibon',\n",
+ " 'Muama']"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tokens = [\"^\"] + list(\"abcdefghijklmnopqrstuvwxyz\") + [\"$\"]\n",
+ "index = {t: i for i, t in enumerate(tokens)}\n",
+ "\n",
+ "def generate_name(prob_matrix, index, tokens, max_len=12):\n",
+ " current = '^'\n",
+ " result = []\n",
+ " \n",
+ " for _ in range(max_len):\n",
+ " row = prob_matrix[index[current]]\n",
+ " next_letter = np.random.choice(tokens, p=row)\n",
+ " \n",
+ " if next_letter == '$':\n",
+ " break\n",
+ " \n",
+ " result.append(next_letter)\n",
+ " current = next_letter\n",
+ " \n",
+ " return \"\".join(result).capitalize()\n",
+ "\n",
+ "generated_names = [generate_name(df_probs.values, index, tokens) for _ in range(10)]\n",
+ "generated_names"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "149339e0-e486-40a8-81da-14a92b3d6de9",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}