Closed Guts closed 4 years ago
Il me semble que la correction des codes de département peut être simple (remplacer par Corse du Sud et Nord); en revanche, ce serait vraiment moche d'écrire deux D et trois D ;)
Comment retrouves tu ces codes de département ?
Via une regex mais c'est rendu compliqué par l'inconsistance qu'il y a dans les titres (surtout dans les premières années). Exemple : http://www.elgeopaso.fr/api/offres/80448/
A noter que je tente également de déterminer le lieu même si ce n'est pas un code de département, notamment pour tenir compte des offres sur les TOM (exemple) et pays autres que la France.
Elle ressemble à quoi ta regexp ?
https://github.com/Guts/elpaso/blob/master/jobs/management/commands/analyseur.py#L344 : en fait mode accepte seulement 1 et 2, pas 0 :)
Ta regexp est erronée car elle renvoi effectivement 3D et 2D comme juste, voici une proposition : ((2[A|B])|([0-9]{2})) et test là ici https://regex101.com/
https://github.com/Guts/elpaso/blob/master/jobs/management/commands/analyseur.py#L344 : en fait mode accepte seulement 1 et 2, pas 0 :)
Non, mode prend bien 0 en valeur, d'ailleurs c'est même celle par défaut (cf. L334).
Ta regexp est erronée car elle renvoi effectivement 3D et 2D comme juste, voici une proposition : ((2[A|B])|([0-9]{2})) et test là ici https://regex101.com/
Peux-tu donner des exemples stp ? D'après mon échantillon de test, elle fonctionne :
(virtenv) PS C:\Users\$USER\Documents\GitHub\Perso\elpaso> python .\manage.py rss2db --offer_id 305865
2018-02-21 10:06:49,833 || INFO || 17812 || 10144|| settings || 71 || ============== EL PASO - DEBUG START =======================
2018-02-21 10:06:52,996 || INFO || 17812 || 10144|| analyseur || 112 || Launching analisis on 1 offers.
2018-02-21 10:06:52,999 || INFO || 17812 || 10144|| analyseur || 144 || launch analisis on : 305865
2018-02-21 10:06:53,000 || DEBUG || 17812 || 10144|| analyseur || 245 || Contract extracted from title: CDD
2018-02-21 10:06:53,001 || INFO || 17812 || 10144|| analyseur || 253 || Found contract type: CDD
2018-02-21 10:06:53,001 || DEBUG || 17812 || 10144|| analyseur || 327 || Title without contract: visio ordinateur, photogrammétrie 3D - Saint-Mandé (94)
2018-02-21 10:06:53,001 || DEBUG || 17812 || 10144|| analyseur || 336 || STRICT regex applied: ['94']
2018-02-21 10:06:53,007 || INFO || 17812 || 10144|| analyseur || 351 || Place code MATCHED in title: ['94']
2018-02-21 10:06:53,042 || INFO || 17812 || 10144|| analyseur || 429 || Words parsed: 365
2018-02-21 10:06:53,044 || INFO || 17812 || 10144|| analyseur || 429 || Words parsed: 9
2018-02-21 10:06:53,212 || INFO || 17812 || 10144|| analyseur || 445 || Technologies identified: [<Technology: Linux>]
2018-02-21 10:06:53,217 || INFO || 17812 || 10144|| analyseur || 459 || Jobs positions identified: []
2018-02-21 10:06:53,241 || INFO || 17812 || 10144|| analyseur || 219 || Offer analyzed and inserted jobs.offer: 305865
Par ailleurs ta regex ne tient pas compte des codes des DOM (en 3 chiffres) ni des codes à 1 chiffre.
pour les codes à 3 chiffres tu peux modifier comme suit ((2[A|B])|([0-9]{3})) c'est quoi un code département en 1 chiffre ?
Test avec l'url que je t'ai donnée, ta regexp renvoi true avec 3D car la 2eme partie accepte un code département à un chiffre, ce qui n'existe pas. Si vraiment tu veux accepter un code à un chiffre : ((2[A|B])|([0-9]{1,3})[^D]?)
bon pas tout à fait, je me demande s'il ne faut pas faire deux étapes pour les codes départements puis la corse.
google est ton ami :
/^(([\d]{2} )|(2[abAB] ))*(([\d]{2})|(2[abAB]))$/
Il me semble que la correction des codes de département peut être simple (remplacer par Corse du Sud et Nord)
@biratchet : tu ne crois pas si bien dire puisque voici la première offre entérinant la nouvelle CTC : http://www.elgeopaso.fr/api/offres/95893/ | https://georezo.net/forum/viewtopic.php?id=109765
J'ai MAJ la base des lieux et abonné l'offre à une nouvelle analyse.
pour les codes à 3 chiffres tu peux modifier comme suit ((2[A|B])|([0-9]{3})) c'est quoi un code département en 1 chiffre ?
Formellement, il n'y en a pas mais la saisie des offres n'est pas vraiment un modèle de 'norming', surtout l'historique (j'imagine avant le travail minutieux de Marc). Il y a bien des offres qui ont 1 seul chiffre
Test avec l'url que je t'ai donnée, ta regexp renvoi true avec 3D car la 2eme partie accepte un code département à un chiffre, ce qui n'existe pas. Si vraiment tu veux accepter un code à un chiffre : ((2[A|B])|([0-9]{1,3})[^D]?)
google est ton ami : /^(([\d]{2} )|(2[abAB] ))*(([\d]{2})|(2[abAB]))$/
Voici les 3 regex utilisées, via ton site (merci d'ailleurs, il est mieux que celui que j'utilisais jusqu'à présent :) ):
Sachant que SOFT n'est appliquée que si MEDIUM n'a pas marché, elle-même appliquée si STRICT ne marche pas.
Enfin, celle que tu/Google propose/s : https://regex101.com/r/YGlAni/2. D'ailleurs, tu penses bien que j'ai un peu Googlé avant de me lancer dans une passionnante quête regularexpienne ! A ce rythme, tu vas me devoir une bière pour offense ;) !
La solution poussée cette semaine en DEV puis en PROD semble porter ses fruits (sur 15 570 offres en base à date) :
A noter que :
Je ferme ce ticket jusqu'à ce qu'un autre souci/cas particulier se présente. Merci de l'échange en tout cas, ça aide bcp !
Salut, Je verse à ce sujet l'idée que les bénévoles de l'asso (GeoRezo) peuvent être sollicités pour améliorer la qualité des données issues de la reprise. Bien sûr, le fait de les/nous solliciter ne garantie pas que le travail sera fait, mais nous avons parfois été surpris de l’intérêt porter sur certains sujets. Et cette BDD de [job] est unique! Si l'idée vous parait séduisante, on peut essayer de se motiver avec Marco pour organiser cela au sein de l'asso.
Excellente idée, surtout qu'avec les rapports hebdos, c'est désormais plus simple :
Salut Julien, J'ai partagé l'idée ce soir avec l'équipe du GeoRezo. En fonction des retours, il faudra trouver une solution technique pour nous permettre de faire le ménage dans le stock, et traiter le flux.
Très bien. Je pense que sur ce sujet, on peut mobiliser au-delà de l'équipe GeoRezo. Zoé P. (@zchicago) par exemple était intéressée l'an dernier pour filer un coup de main.
Côté solution technique, les récentes évolutions vont dans ce sens et devrait normalement être suffisantes. Je te propose d'ouvrir un ticket dédié pour éviter d'allonger celui-ci :)
Je te propose d'ouvrir un ticket dédié pour éviter d'allonger celui-ci :)
Du coup toutes les offres évoquant la 2D, la 3D etc. n'identifient pas de lieux... Ce laxisme est en partie lié à la gestion des codes de départements qui contiennent des lettres.
Exemples en production :