J'ai une liste de produits, y compris des variables telles que le nom du produit (tel qu'il apparaît sur le reçu) et le commerçant où le produit a été acheté.
J'en ai une bonne partie classée manuellement dans un groupe fixe de catégories (par exemple les boissons alcoolisées, les légumes, la viande, etc.).
Les données sont, comme toujours, bruyantes. Dans ce cas, particulièrement bruyant car il provient de reçus scannés et l'OCR sur des scans pas si bons est généralement très bruyant.
Je veux jouer avec des algorithmes pour classer de nouvelles données, en utilisant les deux variables ci-dessus.
Il existe plusieurs sources principales de variation ici:
- L'OCR, qui signifie qu'un produit (par exemple le poulet) peut être trouvé avec de nombreuses orthographes différentes mais relativement similaires (par exemple le poulet, le poulet, la chicane, ...).
- Le même produit peut avoir des noms différents, selon le commerçant qui a vendu le produit. Dans ce cas, les noms peuvent être similaires ou complètement différents d'un commerçant à l'autre, mais plutôt similaires chez chaque commerçant.
- Un même produit peut avoir des noms très différents chez le même commerçant (par exemple, des produits de marque dont le nom sur le reçu est le nom de la marque, par rapport aux noms génériques; boisson non alcoolisée par rapport au coca cola).
J'ai essayé un classificateur (un peu naïf), en utilisant par exemple la distance entre les cordes (qui aborde principalement la première source principale de variation mentionnée ci-dessus), mais je ne suis pas très satisfait des résultats.
Je voulais donc tendre la main ici pour demander des idées sur la façon de résoudre ce problème. Je suppose que beaucoup de gens ont "résolu" ou au moins travaillé beaucoup plus longtemps dans ce genre de problème que moi (quelques heures), donc j'apprécierais vraiment tout conseil ici.
Soit dit en passant, j'utilise principalement R, donc les solutions basées sur R seraient grandement appréciées.