v1
This commit is contained in:
parent
a207c71687
commit
b452b1b253
5 changed files with 61 additions and 9 deletions
47
Exo.py
Normal file
47
Exo.py
Normal 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
BIN
Word_embedding.docx
Normal file
Binary file not shown.
|
@ -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
BIN
freq.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
~$rd_embedding.docx
Normal file
BIN
~$rd_embedding.docx
Normal file
Binary file not shown.
Loading…
Reference in a new issue