-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notification nouveaux JDD : répare matching avec mots-clefs #4413
Conversation
@@ -257,8 +265,27 @@ defmodule Transport.Jobs.NewDatagouvDatasetsJob do | |||
"velo" | |||
iex> normalize("Châteauroux") | |||
"chateauroux" | |||
iex> normalize("J'adore manger") | |||
"j'adore manger" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Précédemment on avait ça
iex> "J'adore manger" |> String.normalize(:nfd) |> String.replace(~r/[^A-z]/u, "") |> String.downcase()
"jadoremanger"
ce n'était pas attendu, les espaces sont importants à converser pour le matching avec les mots-clefs
{words_with_spaces, words_without_spaces} = Enum.split_with(searches, &String.contains?(&1, " ")) | ||
match_without_spaces = not (str | ||
|> normalize() | ||
|> String.split(~r/\s+/) | ||
|> MapSet.new() | ||
|> MapSet.disjoint?(MapSet.new(words_without_spaces)) | ||
) | ||
match_with_spaces = str |> normalize() |> String.contains?(words_with_spaces) | ||
match_without_spaces || match_with_spaces |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est pas le plus clair, si vous avez une idée de refactor je prends 👌
"libre-service", | ||
"libre service", | ||
"scooter" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Était en double précédemment, j'ai ajouté le pluriel aussi
df66671
to
567edc4
Compare
567edc4
to
c7444ea
Compare
Fixes #4411
Adapte
NewDatagouvDatasetsJob
en charge d'identifier les JDDs pertinents à référencer sur le PAN. Le code précédent était trop laxiste : pour une catégorie "vélos" avec le mot clé "vélo" qui nous intéresse, on aurait dit qu'un JDD avec un tagdeveloppement-durable
était pertinent.J'adapte donc la méthode en charge de supprimer les accents (qui supprimait les espaces avant…) et la méthode de matching en fonction de mots-clefs. Un simple
String.contains?
ne suffit pas.