Indexation textuelle pour trouver le bon job dans la meule de foin des annonces merdiques

Aujourd'hui, il est temps de faire son google.

Mon problème:

Après avoir manuellement recherché parmi des centaines d'annonces et essuyé moult déconvenues je me suis aperçu que la méthode manuelle n'étaient pas bonnes:

  1. chaque entrevue me coûte cher;
  2. la plupart des annonces qui sont à chier sont prévisiblement à chier;
  3. il existe des vraies annonces utiles MAIS les critères de recherches (date, pertinence, lieu) ne sont ni pertinents, ni ceux qui me conviennent et je dois prioriser ma recherche;
  4. je veux bien coder, mais ni pour une SSII, ni pour une startup, ni pour une boîte d'IT ni passer par un cabinet de recrutement (95% des annonces);
  5. je veux pouvoir postuler à des jobs de survie sur lesquels ses enfoirés de pôle emploi ne peuvent me bloquer (débutant accepté, pas de spécificité sur les formations...) et sans contact de pole emploi;
  6. J'en ai assez alors que c'est écrit sur mon CV de passer une entrevue et à la fin devoir expliquer à mon futur employeur que NON je ne dépasserais pas les 48heures hebdomadaires de travail sans que ce soit exceptionnel et rémunéré comme il se doit.
Il me faut donc un moteur de recherche qui a les spécificité suivantes :

  • indexation textuelle pour repérer sur un corpus d'apprentissage les catégories;
  • mesures et fitness des résultats comparé aux objectif;
  • parsing et analyse textuelle des annonces;
  • analyse de méta données pour le filtrage.

Cet article est un rapide survol de géométrie euclidienne en base incomplète sur les données textuelles, car il va falloir trier qualitativement ce que je veux ou non.

Stemmisation, tokenisation


Prenons une annonce classique :

Nous recherchons -pour les besoins d'une société en plein essor- un petit jeune passionné, plein d'entrain, pour travailler dans un domaine intellectuellement stimulant.

Nous allons vouloir comparer cette exemple classique de texte qui pue l'exploitation en startup avec les équivalents. Pour cela, il nous faut nettoyer le texte de 2 choses : le bruit, et les variations.

La stemmisation-tokenisation consiste à découper le texte en un tableau de mots sous leur forme invariante. Les spécialistes de l'indexation textuelle rajoutent au passage un filtrage de mots. Internet fourmille de tuto .... pour l'anglais, mais pour le français c'est bonbon, en plus leur jargon est à chier.

Comprenons bien les 2 problèmes spécifique du français :
  • les mots à virer (stopwords) ne sont pas les mêmes qu'en anglais;
  • les formes invariantes ne se créent pas de la même manière qu'en anglais.
Il faut donc sachant que c'est une partie mineure du travail utiliser mes connaissances de mon premier boulot de SSII à l'ECAM (IBM) pour retirer d'internet la substantifique moelle du jargon pour en tirer un exemple utilisable. 

Tokenisation: découper à la scie propre les mots dans une phrase en faisant attention aux apostrophes, virgules
Stemmisation: réduire les ambiguités liés aux variance de graphie (va, allez, aller, allions == aller; évoluant, évolue, évolution == évoluer)
filtrage des Stop words: virer les mots outils qui font du bruit (le, la, les, un)

Tout ce qui fait que les spécialistes sont payés chers et qui fait le jus de leur boulot n'est pas l'appel aux APIs mais la connaissance des 3 étages qui vont bien.

Des tokenisateurs il y en a des centaines, des corpus de mot-outils aussi, ainsi bien évidemment que des stemmers. Leurs beurres qu'ils mettent dans les épinards de leur expertise payées par des fonds publics consiste à vous dire comment faire dans les grandes lignes, partager le code, mais pas les données spécifiques.

Donc, la première tâche consiste avec un moteur de recherche et une bonne patience ainsi qu'une console python à expérimenter sur les différentes recherches sur stopwords, stemmisation, tokenisation à avoir un ensemble de réglages relativement sain sur ses 3 axes. Il se trouve que python a la librairie pour l'indexation textuelle : nltk

Donc pour référence futur voici le résultat:

Comme les universitaires sont jaloux de ne pas tout vous donner il y a de la magie à faire


    import nltk
    nltk.download()




Ensuite un petit tour au fond du code source nous apprend que c'est magiquement utilisé dans notre dos (ah! j'aime la magie) par la bibliothèque:

cf http://www.nltk.org/_modules/nltk/tokenize.html

Oh! Et Wut?  http://www.nltk.org/howto/data.html

On exécute des pickle arbitraires pour avoir accès aux données? Wut, Wut, WTF!

  1. cela veut dire que nltk est certes open source mais que tout le code qui a de la valeur est lui sous une forme binaire ! Donc, a proprement parlé c'est plus du code proprio (mis à disposition par des universités bien souvent publiques, bien souvent payées par les impôts);
  2. que c'est un putain de trou de sécu. 
Bon, je toussote, et continue.

J'avais prévu de donner les liens vers les docs et les mots clés. Mes différents essais m'ont convaincu que les spécialistes de l'indexation textuelle sont au mieux des fraudes publiques, au pire des petits rats universitaires qui restent dans l'ombre de leurs labos et font tout pour ne pas partager leurs données.

Après trop d'heures passer à tenter d'avoir un compteur de mot décent en essai erreur où j'ai pu me rendre compte que finalement je faisais naïvement mieux que des trucs de pros, je me suis dit fuck off : mets juste ton code à dispo et répond aux commentaires si les gens ont des questions.


Prochain épisode, le Xhi², le machine learning me fait chier, et je parie que je peux obtenir 80% du résultat avec .5% de la puissance de calcul utilisé par les grands groupes pour faire de l'apprentissage en utilisant un poil de géométrie.

Darth Vador programming on its way.

Je ne veux plus de CDI je veux des contrats au jour le jour

Donc, encore des entretiens, encore la même question : pourquoi dans votre CV demandez vous à avoir une vie équilibrée?

Et oui, je refait des entretiens en informatique; la saison des déménagements est passée et ne recommencera qu'en juin et les différents dysfonctionnements de la CAF/CPAM/CCAS/préfecture me laissent sans revenus ni endroits où vivre.

Je vis chez mes parents, je fais leur jardin et quand je jardine je boue intérieurement.

Je coupe le laurier sauce et regarde ses feuilles que je suis sensé envoyer à la déchetterie et gâcher. Elle se vendent 2€ les 30g dans le commerce soit ~66€kg. J'en ai 5 kg. J'ai donc 330€ de biens que je n'ai pas le droit de vendre et que je dois détruire. Le laurier sauce dans le Vexin, c'est un peu comme de la mauvaise herbe. C'est certes moins que la weed (6000€/kg) mais des fois, j'aimerais pouvoir m'en sortir en travaillant, même si on me l'interdit. Car oui, mon espèce de laurier n'étant pas traçable j'encours une amende de 450€ si je tente de le vendre. Si je vends tout ce stock, il sera détruit, et j'aurais une amende. Fuck la France et ses règles idiotes. Je participe à détruire de la nourriture TOUS les jours.

L'allière sauvage, tous les jours j'en vois quand je prend mon vélo. Je peux faire de l'huile aromatisée avec un goût d'ail avec. Prix de vente 8€/l. Interdit là encore, nourriture gâchée, et pour avoir la même chose je dois la faire venir de trifouillis les allouettes en 35T. Sérieux? Je suis pas écolo, mais c'est quand même encore du gâchis de ressource.

Rose-marin, estragon, mélisse, menthe, pomme, alliaire, châtaigne je suis entouré par des choses que je ne peux pas vendre et qui représente des 1000€ et je dois quémander les 10€/jr d'aides de l'état pour les expatriés de retour au pays parce que j'ai pas le droit de les vendre. Fuck la France et ses règles idiotes. Laissez moi vendre!

Le prix de vente du pain au levain par les pros est de 5€ min/kg. Ma femme est moi produisons le pain à 1.5€/kg. Mais je n'ai pas le droit de le vendre: nous n'avons pas le diplôme et/ou les capitaux nous permettant de nous mettre en conformité avec l'obtention du code APE nécessaire pour faire une production commerciale. Fuck la France et ses règles idiotes.

Le prix de vente du cidre est de 3€ pour une flotte infâme qui colle mal au crane les lendemains de cuite, le mien (non pasteurisé sans conservateur) est à 1.2 € et titre 2 fois plus en alcool et procure une ivresse douce et des lendemains sans maux de crâne. Encore une fois, j'ai pas le droit de m'en sortir par moi même. Et ça m'énerve. Je sais produire. Mais produire est moins important que le capital et les titres. Savoir faire contre capital. Je me sens marxiste. Je suis dépossédé par mon gouvernement à avoir une vie économique que je choisis.

Et les recruteurs me demandent toujours la même question, pourquoi j'écris que je veux une vie équilibrée. Pourquoi est-ce que j'insiste sur des horaires de travail équilibré?

Première chose, je n'ai jamais eu un emploi où il n'était pas exigé de dépasser les 48h/semaines, 12h/jour max de travail sans compensation. C'est interdit par une convention internationale signée par la France donc ça fait force de loi. Loi que les employeurs n'hésitent pas à utiliser contre les employés. Rappelez vous, 24h d'absence non justifiées et vous êtes virés. What The Fuck! Alors l'état trouve normal que certaines loi soit violées au nom de l'économie pour les gens en position de force, mais punis d'une main de fer les petits en position de faiblesse qui s'essaient à commercer? Et on nous parle de libéralisme? De liberté de négocier? Mais même pas en rêve c'est du libéralisme.

Et surtout, sans fignoler ça réduit mon salaire horaire. Moi, aujourd'hui je veux travailler à salaire fixe. Mais, tous les employeurs tombent des nues quand je demande une pointeuse. Merde, j'ai déjà pas le droit de produire par moi même, pourquoi faudrait-il en plus que je sois sympa avec des gens qui ont comme seul mérite d'avoir hérité de patrimoine? Sérieux? Vous voulez ma force de travail, et bien comme sur un marché on négocie. La liberté ça tombe pas tout cuit dans la gueule, ça se prend.

Deuxième chose: je veux avoir des enfants. Quand je suis volé de mon temps libre je suis volé de ma capacité à m'enrichir affectivement et à faire mes hobbys d'auto-production à voir ma femme. Je gagne de l'argent à faire des produits que je ne trouve pas autrement sur le marché et qui me conviennent. Alcool, pain, légumes, fruits. Ce temps de production est irremplaçable: moins je produis, plus je perd mon expérience. Cette production agit en plus sur mon cerveau positivement, ça me donne confiance, ça me détend, et nettoie mon cerveau. J'ai du contrôle, de la liberté, du choix. Je suis né sans choisir, mais choisir ma vie m'appartient. Et ma vie m'est précieuse. Je veux voir ma femme ! Et c'est ce que je vend à un employeur; ma liberté, je négocie ma vie que j'aime contre du temps contraint où j'accepte de me soumettre volontairement à un ordre que je ne choisis pas. J'accepte de fermer ma gueule, de me lever quand j'en ai pas envie, de me forcer à chier le matin avant de prendre les transports en commun perrave, de renoncer à voir ma femme, bouffer de la merde car je n'ai plus le temps de préparer ma bouffe, me déplacer quand j'en ai pas envie.

La nature du système économique réglementé est abusive et arbitraire elle m'interdit de commercer librement. Elle me contraint à accepter la contrainte d'autres producteurs. Sur quelle base? Grossièrement la naissance et le hasard. Je ne suis pas religieux, je n'accepte pas qu'un mérite pas tellement différent d'un jet de dé règle ma vie.

Je le fais certes... parce que j'ai pas d'autre choix pour sur-vivre, mais de grâce, ne me demandez pas de le faire ni sans me battre pour que cela n'empiète pas sur mon dernier carré de liberté (ma famille), ni d'aimer ça.

C'est pas à moi de vous prouver que j'aime votre compagnie, c'est à vous de me convaincre que vous avez de la valeur. Pour cela, arrêtez vos entretiens qui consiste par tenter de rabaisser vos futurs salariés, et ensuite ne me demandez pas a priori d'être prêt à sacrifier ce qui m'est précieux (mon temps libre) sans contrepartie. Je suis un travailleur, pas un serf, ni une pute, ni un stagiaire.

Vous savez quoi? Proposez moi des contrats de journaliers. Un par jour, tous les jours. Vous pourrez ne pas m'embaucher si vous le souhaitez, et moi je pourrais ne pas venir quand j'en ai pas envie et revenir quand je le souhaite, travailler 3 semaines dans un autre métier, revenir travailler. Vous pourrez adapter votre charge. Moi, je vais pouvoir élargir ma liberté, apprendre de nouveaux métiers et sécuriser mon futur en mettant de nouvelles cordes à mon arc.

Donc arrêtons les faux semblants, déjà vous allez me voler ma Propriété Intellectuelle (concept étrange qui consiste à créer de la propriété sur du vide et que je n'aurais plus le droit d'exploiter une fois que j'aurais publié mon code sous votre nom sans contrepartie), vous allez me voler mon temps.

Ne volez pas en plus ma vie. Négocions mano a mano dans un monde marchand où nous vivons.

Je vous fait une fleur. Vous me payez 22€/hr, vous me signer en temps que journalier sur une base de 37.5hr/semaine. heure supp à 30€/hr travail de nuit à 40€, le week end à 50€/hr. Vous pouvez refuser de m'embaucher tous les matins, et moi en retour, si j'ai autre chose à faire je peux ne pas venir. Libre à vous de me reprendre ou non.

Votre rêve, l'instabilité permanente. Mon rêve, la capacité enfin d'avoir une vie équilibrée.

Alors, vous êtes prêts pour un vrai marché du travail où le travailleur retrouve une vraie liberté de négociation?