Ce bogue a été découvert lorsque j’avais une spécification de balisage automatique sur une courte chaîne, par exemple « art ». Le résultat a balisé automatiquement des sujets avec « artificiel », etc.
Pour information : la fonctionnalité « test » sur la page de spécification de balisage automatique fonctionne correctement (pour le balisage automatique sur « art », « artificiel » ne génère pas de balise lors du test).
Le bogue n’a probablement pas été remarqué car il est peut-être rare de baliser automatiquement sur un mot surveillé court.
Je suppose que l’option watched_word_regular_expression était activée par défaut, sans que je réalise que cela rompt la fonctionnalité « agir sur des mots entiers ». Est-il nécessaire que l’action sur des mots entiers soit incompatible avec les expressions régulières ?
Autrement dit, dois-je toujours considérer cela comme un bug, ou comme une contrainte nécessaire imposée par une autre fonctionnalité ?
Pour l’instant, je continue de le considérer comme un bug. Je ne vois aucune raison pour laquelle l’analyse de mots entiers sans expressions régulières serait incompatible avec l’analyse par expressions régulières lorsqu’une expression régulière est spécifiée.
Si tu utilises des expressions régulières pour certains de tes mots surveillés, cela s’applique à tous. Ainsi, si les expressions régulières sont activées et que tu as configuré un étiquetage automatique pour art, le mot artificial devrait être étiqueté. Pour rechercher uniquement le mot art, utilise le métacaractère de limite de mot \\b. Dans le cas de art, cela donnerait \\bart\\b.
Nous devons nous assurer que l’interface utilisateur nous informe lorsque cette option est activée, car la signification du champ change considérablement dans ce cas.
Un peu comme l’indicateur « MAJUSCULES ACTIVÉES » lors de la saisie d’un mot de passe, etc.
Un grand merci à tous. Je dois m’excuser si ma compréhension plutôt banale des expressions régulières a été insuffisante et a conduit à une mauvaise interprétation de leur fonctionnement pour les mots surveillés. Mais… quelques points :
Je pensais que le contexte de l’expression régulière était considéré comme quelque chose comme une « chaîne à l’intérieur des limites de mot ». Quoi d’autre aurait du sens ? Certainement pas l’intégralité du document du sujet ! Dans ce cas, pour que « artificial » soit marqué, je devrais spécifier art* (ou art.* ou quelque chose de similaire, comme mentionné dans le titre de ce sujet).
Joshua : merci pour ta suggestion concernant le métacaractère de limite de mot. Je l’ai essayé et cela n’a pas fonctionné. Ni dans la fonction Test, ni en pratique. Donc… il semble actuellement qu’il n’y ait aucun contournement (ou « bonne méthode ») pour obtenir le comportement souhaité.
La fonction Test est très agréable. Elle semble se comporter exactement comme je le pensais intuitivement. art ne se déclenche que lorsque le mot « art » apparaît (et ne se déclenche pas sur « artificial »), tandis que art* se déclenche sur « artificial », comme attendu. De plus, art* life se déclenche à la fois sur « art life » et « artificial life ». Je pensais aussi que la fonction Test pourrait ne pas utiliser l’analyse des expressions régulières si je ne saisis qu’un seul mot, mais non… foo* art se déclenche sur « foobar art » et ne se déclenche pas sur « foobar artificial ». Donc… celui ou celle qui a écrit la fonction Test pensait comme moi (je pense).
En résumé :
La suggestion de Jeff d’ajouter un rappel indiquant que watched_words_regular_expressions est activé est bonne.
Le comportement de la fonction Test doit correspondre au comportement réel.
Et pour information, ma préférence est que le comportement réel corresponde au comportement actuel de la fonction Test.
Si l’on a besoin de plus de connaissances en expressions régulières que ce que suggère la fonction Test actuelle, il serait bon d’avoir des exemples quelque part.
S’il existe un contournement ou une « bonne méthode » (comme « utilisez \\bart\\b pour obtenir le comportement souhaité »), je suis ravi de l’utiliser.
Encore une fois, merci à tous pour votre attention portée à ce problème plutôt mineur sur une excellente plateforme !
J’ai ajouté une notification lorsque l’option de site « expressions régulières pour les mots surveillés » est activée dans cette PR :
Voici à quoi cela ressemble lorsque les expressions régulières sont désactivées, puis activées (remarquez la notification et l’invite de saisie différente) :
Mais Bianca,
Ma tentative avec « \bart\b » n’a pas déclenché sur « art » (ni sur « artificial », comme il ne le devrait pas).
Cette tentative visait l’étiquetage automatique.
Y a-t-il une raison pour laquelle nous ne pourrions pas utiliser exactement la fonction Test existante pour analyser les sujets (afin de réaliser l’étiquetage automatique) ?
Si l’option de configuration du site watched words regular expressions est activée, vous devez utiliser \bart\b, où \b représente la limite de mot. Si cette option est désactivée, vous n’avez pas besoin de l’utiliser, car les limites de mot sont automatiquement incluses.
Je viens de tester cela et cela fonctionne parfaitement pour moi, y compris la fenêtre de test modale :
J’étais confus quant à l’activation des « expressions régulières pour les mots surveillés ». Je pensais qu’elle se réglait automatiquement si j’utilisais un caractère générique * dans ma spécification de déclenchement automatique. Je vois que ce n’est pas le cas, donc il n’est pas surprenant que ma tentative avec \\bart\\b ait échoué.
Je vais consulter la « dernière version » pour récupérer votre implémentation de la fonction de test. Pour ma part, « Test » a toujours fonctionné, tout comme pour vous.