master
higepi 2 years ago
parent a207c71687
commit b452b1b253

@ -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)

Binary file not shown.

@ -2,16 +2,16 @@
"cells": [
{
"cell_type": "markdown",
"id": "0f3d617c",
"id": "d8ffd3a0",
"metadata": {},
"source": [
"# TP Word Embedding\n",
"\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",
"### 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",
"Soit un vocabulaire $V$ dans un corps $C$ contenant $D$ documents.\n",
"Soit $w$ un mot dans un document $d \\in C$.\n",
@ -23,7 +23,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": null,
"id": "a1445527",
"metadata": {},
"outputs": [],
@ -37,7 +37,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"id": "6c989264",
"metadata": {},
"outputs": [
@ -85,7 +85,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": null,
"id": "5fc408eb",
"metadata": {},
"outputs": [
@ -125,13 +125,13 @@
"* 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",
"\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": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "Python 3.9.4 64-bit",
"language": "python",
"name": "python3"
},
@ -145,7 +145,12 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
"version": "3.9.4"
},
"vscode": {
"interpreter": {
"hash": "2ef431f6525756fa8a44688585fa332ef3b2e5fcfe8fe75df35bbf7028a8b511"
}
}
},
"nbformat": 4,

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.
Loading…
Cancel
Save