#-- first install the package
!pip install melusine==2.2.6
Collecting melusine==2.2.6
Downloading melusine-2.2.6-py2.py3-none-any.whl (119 kB)
|████████████████████████████████| 119 kB 10.2 MB/s
Requirement already satisfied: scikit-learn>=0.19.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (0.24.1)
Requirement already satisfied: plotly in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (4.14.3)
Requirement already satisfied: tqdm>=4.34 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (4.59.0)
Requirement already satisfied: tensorflow>=2.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (2.4.1)
Collecting transformers==3.4.0
Downloading transformers-3.4.0-py3-none-any.whl (1.3 MB)
|████████████████████████████████| 1.3 MB 26.5 MB/s
Collecting numpy<1.19.0,>=1.16.4
Downloading numpy-1.18.5-cp37-cp37m-manylinux1_x86_64.whl (20.1 MB)
|████████████████████████████████| 20.1 MB 13.6 MB/s
Requirement already satisfied: pandas>=0.25.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (1.2.3)
Collecting streamlit>=0.57.3
Downloading streamlit-0.79.0-py2.py3-none-any.whl (7.0 MB)
|████████████████████████████████| 7.0 MB 47.5 MB/s
Collecting unidecode
Downloading Unidecode-1.2.0-py2.py3-none-any.whl (241 kB)
|████████████████████████████████| 241 kB 74.6 MB/s
Requirement already satisfied: joblib in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (1.0.1)
Collecting flashtext>=2.7
Downloading flashtext-2.7.tar.gz (14 kB)
Requirement already satisfied: h5py==2.10.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from melusine==2.2.6) (2.10.0)
Collecting gensim>=3.3.0
Downloading gensim-3.8.3-cp37-cp37m-manylinux1_x86_64.whl (24.2 MB)
|████████████████████████████████| 24.2 MB 45.7 MB/s
Requirement already satisfied: threadpoolctl>=2.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from scikit-learn>=0.19.0->melusine==2.2.6) (2.1.0)
Requirement already satisfied: scipy>=0.19.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from scikit-learn>=0.19.0->melusine==2.2.6) (1.6.1)
Requirement already satisfied: six in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from plotly->melusine==2.2.6) (1.15.0)
Requirement already satisfied: retrying>=1.3.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from plotly->melusine==2.2.6) (1.3.3)
Requirement already satisfied: astunparse~=1.6.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (1.6.3)
Requirement already satisfied: flatbuffers~=1.12.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (1.12)
Requirement already satisfied: grpcio~=1.32.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (1.32.0)
Requirement already satisfied: termcolor~=1.1.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (1.1.0)
Requirement already satisfied: typing-extensions~=3.7.4 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (3.7.4.3)
Requirement already satisfied: keras-preprocessing~=1.1.2 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (1.1.2)
Requirement already satisfied: tensorboard~=2.4 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (2.4.1)
Requirement already satisfied: protobuf>=3.9.2 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (3.15.6)
Requirement already satisfied: absl-py~=0.10 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (0.12.0)
Requirement already satisfied: google-pasta~=0.2 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (0.2.0)
Requirement already satisfied: wrapt~=1.12.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (1.12.1)
Requirement already satisfied: gast==0.3.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (0.3.3)
Requirement already satisfied: wheel~=0.35 in /usr/local/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (0.36.2)
Requirement already satisfied: tensorflow-estimator<2.5.0,>=2.4.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (2.4.0)
Requirement already satisfied: opt-einsum~=3.3.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorflow>=2.0.0->melusine==2.2.6) (3.3.0)
Collecting sentencepiece!=0.1.92
Downloading sentencepiece-0.1.95-cp37-cp37m-manylinux2014_x86_64.whl (1.2 MB)
|████████████████████████████████| 1.2 MB 44.1 MB/s
Requirement already satisfied: requests in /shared-libs/python3.7/py/lib/python3.7/site-packages (from transformers==3.4.0->melusine==2.2.6) (2.25.1)
Collecting tokenizers==0.9.2
Downloading tokenizers-0.9.2-cp37-cp37m-manylinux1_x86_64.whl (2.9 MB)
|████████████████████████████████| 2.9 MB 26.6 MB/s
Requirement already satisfied: regex!=2019.12.17 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from transformers==3.4.0->melusine==2.2.6) (2020.11.13)
Requirement already satisfied: packaging in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from transformers==3.4.0->melusine==2.2.6) (20.9)
Collecting filelock
Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting sacremoses
Downloading sacremoses-0.0.43.tar.gz (883 kB)
|████████████████████████████████| 883 kB 31.2 MB/s
Requirement already satisfied: pytz>=2017.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from pandas>=0.25.0->melusine==2.2.6) (2021.1)
Requirement already satisfied: python-dateutil>=2.7.3 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from pandas>=0.25.0->melusine==2.2.6) (2.8.1)
Requirement already satisfied: pillow>=6.2.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from streamlit>=0.57.3->melusine==2.2.6) (8.1.2)
Collecting watchdog; platform_system != "Darwin"
Downloading watchdog-2.0.2-py3-none-manylinux2014_x86_64.whl (74 kB)
|████████████████████████████████| 74 kB 1.5 MB/s
Collecting astor
Downloading astor-0.8.1-py2.py3-none-any.whl (27 kB)
Requirement already satisfied: click>=7.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from streamlit>=0.57.3->melusine==2.2.6) (7.1.2)
Collecting tzlocal
Downloading tzlocal-2.1-py2.py3-none-any.whl (16 kB)
Collecting pydeck>=0.1.dev5
Downloading pydeck-0.6.1-py2.py3-none-any.whl (4.6 MB)
|████████████████████████████████| 4.6 MB 42.8 MB/s
Collecting altair>=3.2.0
Downloading altair-4.1.0-py3-none-any.whl (727 kB)
|████████████████████████████████| 727 kB 23.1 MB/s
Requirement already satisfied: tornado>=5.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from streamlit>=0.57.3->melusine==2.2.6) (6.1)
Requirement already satisfied: cachetools>=4.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from streamlit>=0.57.3->melusine==2.2.6) (4.2.1)
Collecting validators
Downloading validators-0.18.2-py3-none-any.whl (19 kB)
Collecting gitpython
Downloading GitPython-3.1.14-py3-none-any.whl (159 kB)
|████████████████████████████████| 159 kB 52.6 MB/s
Collecting blinker
Downloading blinker-1.4.tar.gz (111 kB)
|████████████████████████████████| 111 kB 53.5 MB/s
Requirement already satisfied: pyarrow; python_version < "3.9" in /shared-libs/python3.7/py/lib/python3.7/site-packages (from streamlit>=0.57.3->melusine==2.2.6) (3.0.0)
Requirement already satisfied: toml in /shared-libs/python3.7/py/lib/python3.7/site-packages (from streamlit>=0.57.3->melusine==2.2.6) (0.10.2)
Collecting base58
Downloading base58-2.1.0-py3-none-any.whl (5.6 kB)
Requirement already satisfied: smart-open>=1.8.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from gensim>=3.3.0->melusine==2.2.6) (3.0.0)
Requirement already satisfied: werkzeug>=0.11.15 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (1.0.1)
Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (0.4.3)
Requirement already satisfied: setuptools>=41.0.0 in /root/venv/lib/python3.7/site-packages (from tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (47.1.0)
Requirement already satisfied: markdown>=2.6.8 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (3.3.4)
Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (1.8.0)
Requirement already satisfied: google-auth<2,>=1.6.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (1.27.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests->transformers==3.4.0->melusine==2.2.6) (1.26.4)
Requirement already satisfied: idna<3,>=2.5 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests->transformers==3.4.0->melusine==2.2.6) (2.10)
Requirement already satisfied: certifi>=2017.4.17 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests->transformers==3.4.0->melusine==2.2.6) (2020.12.5)
Requirement already satisfied: chardet<5,>=3.0.2 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests->transformers==3.4.0->melusine==2.2.6) (3.0.4)
Requirement already satisfied: pyparsing>=2.0.2 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from packaging->transformers==3.4.0->melusine==2.2.6) (2.4.7)
Collecting ipywidgets>=7.0.0
Downloading ipywidgets-7.6.3-py2.py3-none-any.whl (121 kB)
|████████████████████████████████| 121 kB 74.3 MB/s
Requirement already satisfied: jinja2>=2.10.1 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (2.11.3)
Requirement already satisfied: traitlets>=4.3.2 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (5.0.5)
Requirement already satisfied: ipykernel>=5.1.2; python_version >= "3.4" in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (5.5.0)
Collecting toolz
Downloading toolz-0.11.1-py3-none-any.whl (55 kB)
|████████████████████████████████| 55 kB 9.1 MB/s
Requirement already satisfied: jsonschema in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from altair>=3.2.0->streamlit>=0.57.3->melusine==2.2.6) (3.2.0)
Requirement already satisfied: entrypoints in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from altair>=3.2.0->streamlit>=0.57.3->melusine==2.2.6) (0.3)
Requirement already satisfied: decorator>=3.4.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from validators->streamlit>=0.57.3->melusine==2.2.6) (4.4.2)
Collecting gitdb<5,>=4.0.1
Downloading gitdb-4.0.5-py3-none-any.whl (63 kB)
|████████████████████████████████| 63 kB 2.0 MB/s
Requirement already satisfied: requests-oauthlib>=0.7.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (1.3.0)
Requirement already satisfied: importlib-metadata; python_version < "3.8" in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from markdown>=2.6.8->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (3.7.3)
Requirement already satisfied: rsa<5,>=3.1.4; python_version >= "3.6" in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (4.7.2)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (0.2.8)
Requirement already satisfied: ipython>=4.0.0; python_version >= "3.3" in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (7.21.0)
Requirement already satisfied: nbformat>=4.2.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (5.1.2)
Collecting widgetsnbextension~=3.5.0
Downloading widgetsnbextension-3.5.1-py2.py3-none-any.whl (2.2 MB)
|████████████████████████████████| 2.2 MB 44.4 MB/s
Collecting jupyterlab-widgets>=1.0.0; python_version >= "3.6"
Downloading jupyterlab_widgets-1.0.0-py3-none-any.whl (243 kB)
|████████████████████████████████| 243 kB 53.2 MB/s
Requirement already satisfied: MarkupSafe>=0.23 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from jinja2>=2.10.1->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (1.1.1)
Requirement already satisfied: ipython-genutils in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from traitlets>=4.3.2->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.2.0)
Requirement already satisfied: jupyter-client in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipykernel>=5.1.2; python_version >= "3.4"->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (6.1.12)
Requirement already satisfied: pyrsistent>=0.14.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from jsonschema->altair>=3.2.0->streamlit>=0.57.3->melusine==2.2.6) (0.17.3)
Requirement already satisfied: attrs>=17.4.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from jsonschema->altair>=3.2.0->streamlit>=0.57.3->melusine==2.2.6) (20.3.0)
Collecting smmap<4,>=3.0.1
Downloading smmap-3.0.5-py2.py3-none-any.whl (25 kB)
Requirement already satisfied: oauthlib>=3.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (3.1.0)
Requirement already satisfied: zipp>=0.5 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from importlib-metadata; python_version < "3.8"->markdown>=2.6.8->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (3.4.1)
Requirement already satisfied: pyasn1>=0.1.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from rsa<5,>=3.1.4; python_version >= "3.6"->google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow>=2.0.0->melusine==2.2.6) (0.4.8)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (3.0.17)
Requirement already satisfied: backcall in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.2.0)
Requirement already satisfied: pexpect>4.3; sys_platform != "win32" in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (4.8.0)
Requirement already satisfied: jedi>=0.16 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.17.2)
Requirement already satisfied: pickleshare in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.7.5)
Requirement already satisfied: pygments in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (2.8.1)
Requirement already satisfied: jupyter-core in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (4.7.1)
Requirement already satisfied: notebook>=4.4.1 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (7.0.0.dev0)
Requirement already satisfied: pyzmq>=13 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from jupyter-client->ipykernel>=5.1.2; python_version >= "3.4"->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (22.0.3)
Requirement already satisfied: wcwidth in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.2.5)
Requirement already satisfied: ptyprocess>=0.5 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from pexpect>4.3; sys_platform != "win32"->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.7.0)
Requirement already satisfied: parso<0.8.0,>=0.7.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from jedi>=0.16->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.7.1)
Requirement already satisfied: argon2-cffi in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (20.1.0)
Requirement already satisfied: Send2Trash>=1.5.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (1.5.0)
Requirement already satisfied: nbconvert in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (6.0.7)
Requirement already satisfied: terminado>=0.8.3 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.9.3)
Requirement already satisfied: prometheus-client in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.9.0)
Requirement already satisfied: cffi>=1.0.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (1.14.5)
Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.5.3)
Requirement already satisfied: defusedxml in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.7.1)
Requirement already satisfied: pandocfilters>=1.4.1 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (1.4.3)
Requirement already satisfied: testpath in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.4.4)
Requirement already satisfied: jupyterlab-pygments in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.1.2)
Requirement already satisfied: bleach in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (3.3.0)
Requirement already satisfied: mistune<2,>=0.8.1 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.8.4)
Requirement already satisfied: pycparser in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from cffi>=1.0.0->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (2.20)
Requirement already satisfied: async-generator in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (1.10)
Requirement already satisfied: nest-asyncio in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (1.5.1)
Requirement already satisfied: webencodings in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.0.0->pydeck>=0.1.dev5->streamlit>=0.57.3->melusine==2.2.6) (0.5.1)
Building wheels for collected packages: flashtext, sacremoses, blinker
Building wheel for flashtext (setup.py) ... done
Created wheel for flashtext: filename=flashtext-2.7-py2.py3-none-any.whl size=9299 sha256=b8d4f18ca6b34fd91e54ac4a2a167cea7bcdd6ecd4d4b708717565e546ac786d
Stored in directory: /root/.cache/pip/wheels/cb/19/58/4e8fdd0009a7f89dbce3c18fff2e0d0fa201d5cdfd16f113b7
Building wheel for sacremoses (setup.py) ... done
Created wheel for sacremoses: filename=sacremoses-0.0.43-py3-none-any.whl size=893258 sha256=133327b73acc524f14d1e5d0ac9f3bf01debc49a8d62dbf0430f3484c3aeffba
Stored in directory: /root/.cache/pip/wheels/69/09/d1/bf058f7d6fa0ecba2ce7c66be3b8d012beb4bf61a6e0c101c0
Building wheel for blinker (setup.py) ... done
Created wheel for blinker: filename=blinker-1.4-py3-none-any.whl size=13451 sha256=785a1a1f6c4c806b19d897a112fd19bc0a305fe7f2e75743f1b19ebd87913445
Stored in directory: /root/.cache/pip/wheels/22/f5/18/df711b66eb25b21325c132757d4314db9ac5e8dabeaf196eab
Successfully built flashtext sacremoses blinker
ERROR: tensorflow 2.4.1 has requirement numpy~=1.19.2, but you'll have numpy 1.18.5 which is incompatible.
Installing collected packages: sentencepiece, numpy, tokenizers, filelock, sacremoses, transformers, watchdog, astor, tzlocal, widgetsnbextension, jupyterlab-widgets, ipywidgets, pydeck, toolz, altair, validators, smmap, gitdb, gitpython, blinker, base58, streamlit, unidecode, flashtext, gensim, melusine
Attempting uninstall: numpy
Found existing installation: numpy 1.19.5
Not uninstalling numpy at /shared-libs/python3.7/py/lib/python3.7/site-packages, outside environment /root/venv
Can't uninstall 'numpy'. No files were found to uninstall.
Successfully installed altair-4.1.0 astor-0.8.1 base58-2.1.0 blinker-1.4 filelock-3.0.12 flashtext-2.7 gensim-3.8.3 gitdb-4.0.5 gitpython-3.1.14 ipywidgets-7.6.3 jupyterlab-widgets-1.0.0 melusine-2.2.6 numpy-1.18.5 pydeck-0.6.1 sacremoses-0.0.43 sentencepiece-0.1.95 smmap-3.0.5 streamlit-0.79.0 tokenizers-0.9.2 toolz-0.11.1 transformers-3.4.0 tzlocal-2.1 unidecode-1.2.0 validators-0.18.2 watchdog-2.0.2 widgetsnbextension-3.5.1
WARNING: You are using pip version 20.1.1; however, version 21.0.1 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
#-- import des packages
import melusine
import pandas as pd
import numpy as np
#-- Lecture des données et affichage des premières lignes
df = pd.DataFrame(pd.read_pickle("tweets.txt"))
df.columns = ["tweets"]
print("Nous avons " +str(df.shape[0])+ " tweets nettoyés!")
Nous avons 1000 tweets nettoyés!
#-- Ajout des colonnes body, header, date et from.
df.rename(columns = {"tweets":"clean_body"}, inplace = True)
list_dates = ["mardi 16 mars 2021 16 h 16 CEST"] * len(df)
df["date"] = list_dates
list_headers = ["Test"] * len(df)
df["header"] = list_headers
list_mails = ["best_interns@glb.fr"]* len(df)
df["from"] = list_mails
#-- Affichage des premières lignes
df.head()
from melusine.nlp_tools.phraser import Phraser
#-- Obtention de la classe Phraser
phraser = Phraser(input_column='clean_body',
threshold=10,
min_count=10)
#-- Entrainement sur nos données (entrainés sur toutes nos données)
phraser.train(df)
from melusine.nlp_tools.phraser import phraser_on_body
row = df.loc[1,:]
phraser_on_body(row, phraser)
from melusine.utils.transformer_scheduler import TransformerScheduler
PhraserTransformer = TransformerScheduler(
functions_scheduler=[
(phraser_on_body, (phraser,), ['clean_body'])
]
)
df_clean = PhraserTransformer.fit_transform(df)
df_clean.head()
from melusine.nlp_tools.tokenizer import Tokenizer
tokenizer = Tokenizer (input_column='clean_body',
stop_removal=True,
n_jobs=20)
#-- applying the tokenizer (this adds a column called tokens)
df_clean = tokenizer.fit_transform(df_clean)
df_clean.head()
#-- Comparaison de notre tokenizer et celui de melusine
comparison_column = np.where(df_clean["clean_body"] == df["clean_body"], True, False)
#-- Index des lignes où ils diffèrent
print(np.where(comparison_column == False))
(array([ 9, 11, 17, 45, 46, 49, 51, 53, 54, 56, 59, 61, 76,
79, 82, 86, 89, 103, 105, 107, 124, 127, 133, 142, 152, 162,
163, 169, 176, 180, 182, 187, 189, 211, 214, 215, 217, 220, 230,
270, 274, 280, 285, 290, 295, 308, 309, 313, 314, 321, 324, 326,
327, 330, 336, 344, 357, 362, 368, 373, 379, 382, 384, 391, 397,
400, 401, 407, 418, 421, 425, 432, 439, 443, 454, 457, 461, 467,
474, 479, 489, 496, 497, 500, 501, 507, 508, 518, 520, 524, 529,
533, 547, 557, 562, 574, 578, 588, 594, 597, 600, 604, 614, 615,
620, 624, 626, 631, 632, 633, 638, 646, 649, 652, 658, 674, 684,
687, 693, 694, 695, 702, 716, 728, 734, 740, 752, 753, 763, 766,
779, 784, 785, 790, 805, 808, 810, 815, 819, 822, 823, 830, 833,
840, 856, 858, 862, 866, 869, 871, 874, 876, 879, 886, 897, 899,
905, 914, 931, 932, 935, 939, 945, 946, 948, 959, 962, 970, 972,
973, 978, 993, 997, 998]),)
#-- display difference
print(df.clean_body[9])
print(df_clean.clean_body[9] +'\n')
#-- display difference
print(df.clean_body[45])
print(df_clean.clean_body[45]+'\n')
#-- display difference
print(df.clean_body[600])
print(df_clean.clean_body[600])
assurance vie savoir covid reseaux chaud
assurance_vie savoir covid reseaux chaud
bonjour depuis numero joindre assurance maladie plus surtaxer payer eventuel cout appel appliquer operateur sans supplement part
bonjour depuis numero joindre assurance_maladie plus surtaxer payer eventuel cout appel appliquer operateur sans supplement part
aucun parent aimer aller maison retraire celui remboursee assurance maladie merder occuper parent comme chien moyen envoyer meilleur bah autant prendre auxiliaire vie
aucun parent aimer aller maison retraire celui remboursee assurance_maladie merder occuper parent comme chien moyen envoyer meilleur bah autant prendre auxiliaire vie
from melusine.nlp_tools.embedding import Embedding
#-- Définition de la classe Embedding
embedding = Embedding(input_column='clean_body',
size=300,
workers=1,
min_count=3)
#-- train embedding
embedding.train(df_clean)
DEBUG:melusine.nlp_tools.embedding:Create an Embedding instance.
19/03 08:52 - melusine.nlp_tools.embedding - INFO - Start training for embedding
INFO:melusine.nlp_tools.embedding:Start training for embedding
19/03 08:52 - melusine.nlp_tools.embedding - INFO - Done.
INFO:melusine.nlp_tools.embedding:Done.
#-- Test du phraser
df_test = pd.DataFrame(["Bonjour, on va peut-être on y arriver... :;*- Et si je mets assurance maladie ? ça cest une phraze mal écrite"])
df_test.columns = ["clean_body"]
row_test = df_test.loc[0,:]
row_test
phraser_on_body(row_test, phraser)
df_test_clean = tokenizer.fit_transform(df_test)
df_test_clean.tokens[0]
from melusine.prepare_email.cleaning import clean_body
df_test.columns = ["last_body", "test"]
row_test = df_test.loc[0,:]
clean_body(row_test)
from melusine.prepare_email.cleaning import clean_text
clean_text("Bonjour, on va peut-être on y arriver... ;*-<< Et si je mets assurance maladie ? ça cest une phraze mal écrite")
import ast
df_preprocessed = df_clean[['tokens']].astype(str)
df_preprocessed['tokens'] = df_preprocessed['tokens'].apply(lambda x: ast.literal_eval(x))
print(df_preprocessed)
tokens
0 [ouai, mettre, conducteur, occasionnel, poter,...
1 [encore, financer, montreal, etait, fiere, par...
2 [prelevement, assurance, auto, vie, pique]
3 [release, standard, assurance, engagement, ass...
4 [semaine, apres, tenir, free, party, lieuron, ...
.. ...
995 [attendre, toujours, reponses, propos, diffama...
996 [souvenir, adolescent, phase, terminal, cancer...
997 [client, connaître, avantage, assurance_maladi...
998 [nouveau, annonce, business, analyst, assuranc...
999 [relancer, reformer, consequences, financieres...
[1000 rows x 1 columns]
df_preprocessed.tokens[0]
#-- Mots clés à chercher en priorité
keywords = ['tarif','sinistre']
#-- stopwords
stopwords = ["au", "aux", "avec", "ce", "ces", "dans", "de", "des", "du",
"elle", "en", "et", "eux", "il", "je", "la", "le", "leur", "lui", "ma",
"mais", "me", "même", "mes", "moi", "mon", "ne", "nos", "notre", "nous",
"on", "ou","par", "pas", "pour", "qu", "que", "qui", "sa", "se", "ses",
"son", "sur","ta", "te", "tes", "toi", "ton", "tu", "un", "une", "vos",
"votre", "vous", "c", "d", "j", "l", "à", "m", "n", "s", "t", "y", "été",
"étée", "étées", "étés", "étant", "étante", "étants", "étantes", "suis",
"es", "est", "sommes", "êtes", "sont", "serai", "seras", "sera", "serons",
"serez", "seront", "serais", "serait", "serions", "seriez", "seraient",
"étais", "était", "étions", "étiez", "étaient", "fus", "fut", "fûmes",
"fûtes", "furent", "sois", "soit", "soyons", "soyez", "soient", "fusse",
"fusses", "fût", "fussions", "fussiez", "fussent", "ayant", "ayante",
"ayantes", "ayants", "eu", "eue", "eues", "eus", "ai", "as", "avons",
"avez", "ont", "aurai", "auras", "aura", "aurons", "aurez", "auront",
"aurais", "aurait", "aurions", "auriez", "auraient", "avais", "avait",
"avions", "aviez", "avaient", "eut", "eûmes", "eûtes", "eurent", "aie",
"aies", "ait", "ayons", "ayez", "aient", "eusse", "eusses", "eût",
"eussions", "eussiez", "eussent", "suivant", "wash", "wesh"]
#-- Définition du générateur de mots clés
from melusine.summarizer.keywords_generator import KeywordsGenerator
keywords_generator = KeywordsGenerator(stopwords = stopwords,
keywords = keywords,
n_max_keywords=1,
n_min_keywords=0,
threshold_keywords=0.1,
keywords_coef=10)
#-- la méthode fit est appliquée sur le génréteur. Pour une raison inconnue cela ne fonctionne pas
#-- c'est important car cela entraine le générateur basé sur le score TFIDF des données
#keywords_generator.fit(df_preprocessed)
df_preprocessed.head()
#-- Application de la méthode transform
df_preprocessed = keywords_generator.transform(df_preprocessed)
AttributeError: 'KeywordsGenerator' object has no attribute 'dict_scores_'
#df_preprocessed.tokens[10]
#-- display some stopwords
df_preprocessed.keywords[100]
df_preprocessed.head()
#-- Construction du dataframe pour le modèle
df_keywords = pd.DataFrame(df_preprocessed["keywords"].apply(lambda x: " ".join(x)))
df_clean_body = df_clean[["clean_body"]]
df_model = df_clean_body.set_index(df_clean_body.index).join(df_keywords.set_index(df_keywords.index))
#-- Combien de labels avons nous ?
print(len(df_model["keywords"].unique()))
print(df_model["keywords"].unique())
#-- Renommage des colonnes
df_model = df_model.rename(columns = {"keywords":"label", "clean_body":"clean_text"})
189
['assurance' 'aucun' 'reformer' 'assurance_vie' 'mal' 'infos' 'tout'
'globeterrestre' 'banquer' 'non' 'article' 'duo' 'bon' '' 'excuse' 'sans'
'suissesse' 'mettre' 'secu' 'celui' 'user' 'famille' 'jour' 'empreindre'
'vie' 'art' 'sante' 'croire' 'savoir' 'bouffer' 'resiliation' 'sinistre'
'good' 'secteur' 'allocation' 'bebe' 'phase' 'journaliste' 'manieres'
'demain' 'rien' 'aller' 'fixe' 'marche' 'assuranceauto' 'candidature'
'sure' 'nomination' 'remboursement' 'crasher' 'cree' 'faire' 'surtout'
'teletravail' 'parents' 'quiz' 'cadre' 'efficace' 'combien' 'courant'
'wing' 'faux' 'souvenir' 'convertible' 'controle' 'prix' 'agent'
'conservateur' 'peinturer' 'transformation' 'tchoutchoubello' 'filmer'
'edito' 'prendre_charge' 'alors' 'quebec' 'rembourser' 'quelque'
'flag_name_' 'suprise' 'place' 'infrarouge' 'record' 'donner' 'ouais'
'societe' 'journal' 'alunissage' 'raciste' 'monde' 'voiture' 'peu'
'recree' 'auto' 'honte' 'tarif' 'femme' 'replique' 'demon' 'sortir'
'contrat' 'trop' 'beaucoup' 'garage' 'reseaux' 'heure' 'souscrire'
'valide' 'dire' 'bouche' 'mauritanie' 'prendre' 'pecher' 'petit' 'temps'
'ministre' 'hotel' 'annoncee' 'semaine' 'joindre' 'toucher' 'quel'
'recues' 'assurancevie' 'tester' 'soin' 'unique' 'ficher' 'omo' 'photo'
'accompagner' 'per' 'risquer' 'vacance' 'plus' 'prevoyance' 'terme'
'hein' 'miner' 'petrolier' 'accessibilite' 'theme' 'cabane' 'placement'
'tailler' 'ficeler' 'what' 'severac' 'deguise' 'finance' 'corps' 'bambou'
'poeme' 'statuer' 'dont' 'virus' 'ici' 'ntout' 'verification' 'quand'
'eau' 'expert' 'lancement' 'feminin' 'extraordinaire' 'reves' 'relancer'
'alire' 'digital' 'citer' 'robe' 'modification' 'fusee' 'dedommagee'
'geante' 'tant' 'blanchisserie' 'visage' 'recois' 'paye' 'uvrer' 'boire'
'aventure' 'repondez' 'bravo' 'actu' 'cellule' 'police' 'financer']
#-- display head
df_model.head()
#-- Definition de X pour le modele. Nous n'avons pas d'entête, il s'agit de la même chose que clean_body
X = df_model
#-- Definition et encodage de y (en tant que label)
from sklearn.preprocessing import LabelEncoder
y = df_model['label']
le = LabelEncoder()
y = le.fit_transform(y)
#-- import modèle et sous-packages
from melusine.models.train import NeuralModel
from melusine.models.neural_architectures import cnn_model, rnn_model, bert_model
pretrained_embedding = embedding
#-- definition de l'architecture du modèle
nn_model = NeuralModel(architecture_function=cnn_model,
pretrained_embedding=pretrained_embedding,
text_input_column="clean_text",
meta_input_list=None,
n_epochs=10)
nn_model.fit(X,y,tensorboard_log_dir="%load_ext tensorboard")
Epoch 1/10
1/1 [==============================] - 5s 5s/step - loss: 5.8304 - accuracy: 0.0010
Epoch 2/10
1/1 [==============================] - 4s 4s/step - loss: 4.4996 - accuracy: 0.1910
Epoch 3/10
1/1 [==============================] - 4s 4s/step - loss: 3.5746 - accuracy: 0.4990
Epoch 4/10
1/1 [==============================] - 4s 4s/step - loss: 3.3966 - accuracy: 0.5530
Epoch 5/10
1/1 [==============================] - 4s 4s/step - loss: 3.4752 - accuracy: 0.5620
Epoch 6/10
1/1 [==============================] - 4s 4s/step - loss: 3.1501 - accuracy: 0.5610
Epoch 7/10
1/1 [==============================] - 4s 4s/step - loss: 2.9227 - accuracy: 0.5620
Epoch 8/10
1/1 [==============================] - 4s 4s/step - loss: 2.9726 - accuracy: 0.5590
Epoch 9/10
1/1 [==============================] - 4s 4s/step - loss: 2.9507 - accuracy: 0.5610
Epoch 10/10
1/1 [==============================] - 4s 4s/step - loss: 2.8700 - accuracy: 0.5620
#-- Prediction
y_res = nn_model.predict(X)
y_res = le.inverse_transform(y_res)
#-- display prediction
print(y_res)
['assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance' 'assurance' 'assurance'
'assurance' 'assurance' 'assurance' 'assurance']