This commit is contained in:
higepi 2022-09-22 17:41:54 +02:00
parent a207c71687
commit b452b1b253
5 changed files with 61 additions and 9 deletions

47
Exo.py Normal file
View file

@ -0,0 +1,47 @@
import pandas as pd
import matplotlib.pyplot as plt
document_1 = "le chat mange la souris"
document_2 = "le chien regarde le canard"
document_3 = "le canard regarde le chat"
corpus = (document_1, document_2, document_3)
# construction du dictionnaire
vocabulary = []
for d in corpus:
for w in d.split(" "):
if w not in vocabulary:
vocabulary.append(w)
# calcul d'un histogramme simple sur le corpus
# initialisation de l'histogramme
freq = dict()
for v in vocabulary:
freq[v] = 0
# comptage des occurrences
for d in corpus:
for w in d.split(" "):
freq[w] += 1
print(freq)
df = pd.DataFrame({'freq':freq.values()}, index=freq.keys())
ax = df.plot.bar(rot=0)
plt.show()
# calcul d'un histogramme par document
import numpy as np
V = len(vocabulary)
D = len(corpus)
tf_idf = np.zeros([D, V])
for i, d in enumerate(corpus):
for w in d.split(" "):
j = vocabulary.index(w)
tf_idf[i,j] += 1
print(tf_idf)

BIN
Word_embedding.docx Normal file

Binary file not shown.

View file

@ -2,16 +2,16 @@
"cells": [ "cells": [
{ {
"cell_type": "markdown", "cell_type": "markdown",
"id": "0f3d617c", "id": "d8ffd3a0",
"metadata": {}, "metadata": {},
"source": [ "source": [
"# TP Word Embedding\n", "# TP Word Embedding\n",
"\n", "\n",
"## Bag of Words\n", "## Bag of Words\n",
"Un sac de mots (ou *Bag of Words* en anglais, parfois abbrévié *BOW*) est un description d'un ensemble de mot sous forme d'un vecteur où l'ordre des mots ne rentre pas en compte.\n", "Un sac de mots (ou *Bag of Words* en anglais, parfois abbrévié *BOW*) est une description d'un ensemble de mots sous forme d'un vecteur où l'ordre des mots ne rentre pas en compte.\n",
"\n", "\n",
"### Term Frequency\n", "### Term Frequency\n",
"L'idée de Term Frequency est d'effectué un simple compte du nombre d'occurence (ou de la fréquence) du nombre de mots dans le corpus.\n", "L'idée de Term Frequency est d'effectuer un simple compte du nombre d'occurence (ou de la fréquence) de mots dans le corpus.\n",
"\n", "\n",
"Soit un vocabulaire $V$ dans un corps $C$ contenant $D$ documents.\n", "Soit un vocabulaire $V$ dans un corps $C$ contenant $D$ documents.\n",
"Soit $w$ un mot dans un document $d \\in C$.\n", "Soit $w$ un mot dans un document $d \\in C$.\n",
@ -23,7 +23,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": null,
"id": "a1445527", "id": "a1445527",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@ -37,7 +37,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": null,
"id": "6c989264", "id": "6c989264",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -85,7 +85,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": null,
"id": "5fc408eb", "id": "5fc408eb",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@ -125,13 +125,13 @@
"* résoud uniquement le premier problème cité précedement\n", "* résoud uniquement le premier problème cité précedement\n",
"* devrait être une implémentation en matrice creuse (*sparse matrix*) car va en pratique contenir beaucoup de zéros pour un vocabulaire grand\n", "* devrait être une implémentation en matrice creuse (*sparse matrix*) car va en pratique contenir beaucoup de zéros pour un vocabulaire grand\n",
"\n", "\n",
"Heuresement des implémentations existantes comme dans `scikit learn` permettent de résoudre ces problèmes techniques." "Heureusement des implémentations existantes comme dans `scikit learn` permettent de résoudre ces problèmes techniques."
] ]
} }
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3 (ipykernel)", "display_name": "Python 3.9.4 64-bit",
"language": "python", "language": "python",
"name": "python3" "name": "python3"
}, },
@ -145,7 +145,12 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.9.7" "version": "3.9.4"
},
"vscode": {
"interpreter": {
"hash": "2ef431f6525756fa8a44688585fa332ef3b2e5fcfe8fe75df35bbf7028a8b511"
}
} }
}, },
"nbformat": 4, "nbformat": 4,

BIN
freq.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
~$rd_embedding.docx Normal file

Binary file not shown.