Salut,
Merci pour ta réponse.
J’ai pu avancer un peu sur la structuration de mes données. Ça ressemble à ça maintenant.
"CAT_000064_e4": {
"price": 6,
"date": null,
"number_of_pages": 1,
"format": "in-8.",
"term": "L.a.s."
},
"CAT_000064_e5": {
"price": 8,
"date": "1872",
"number_of_pages": 1,
"format": "in-18.",
"term": "L.a.s."
},
J’ai converti tant que faire se pouvait mes chaînes de caractères en entiers ou flottants, suivant les suggestions de Rémy. Si je comprends bien Paul, tu me suggères des algorithmes de comparaison de chaînes de caractères, et de travailler plus précisément sur la distance entre deux chaînes.
Les catalogues sur lesquels nous travaillons sont très standardisés, et les informations qui sont contenues dans les descriptions que je traite sont elles aussi standardisées. Par exemple,
"L. a. s., (1872), 1. p. in-18. Jolie lettre. 8"
"L. a. s., 28 janvier 1857, 1 p. in-8. 4"
On note l’abbréviation ‹ L.a.s. › pour lettre autographe signée (une lettre écrite de la main d’un auteur donné): c’est le type de document. Il n’y a qu’une dizaine de possibilités différentes pour décrire le type de document. Il me semble donc possible d’arriver à la fin à des données purement numériques, si par exemple je convertis les « l.a.s. » en une valeur numérique donnée avec un tableau de correspondance. Pareil pour le format: il n’y a qu’une dizaine de formats possibles différents (in-folio, in-4, in-6, in-8, etc), on peut réussir à attribuer une valeur numérique… In fine on aurait ce type de données:
"CAT_000064_e4": {
"price": 6,
"date": null,
"number_of_pages": 1,
"format": 2,
"term": 1
},
"CAT_000064_e5": {
"price": 8,
"date": "1872",
"number_of_pages": 1,
"format": 5,
"term": 1
},
J’ai l’intuition (corrigez moi si je me trompe) qu’il serait beaucoup plus efficace de comparer des nombres, non ?
A priori, on ne cherche que des correspondances exactes: si on considère qu’il n’y a pas d’erreur dans les données, un même document ne peut logiquement pas changer de format d’une vente à l’autre, ni de date, ni de type; son prix peut éventuellement évoluer, mais dans l’intervalle qui nous intéresse, les prix ont peu varié; à la limite, il pourrait changer de nombre de page, si un document est coupé en deux (mais on considèrera dans un premier temps que ce n’est pas le cas). Il faut que je voie comment gérer les dates, mais a priori c’est moins important car pour le résultat attendu pour la comparaison des dates est une égalité ou une inégalité (si deux entrées ont des dates différentes, ce sont des documents différents), donc une comparaison de chaîne de caractère peut suffire.
Qu’est-ce que vous en pensez ?
Merci beaucoup
Matthias