Questo bug è stato scoperto quando avevo una specifica di auto-tag su una stringa breve, ad esempio “art”. Il risultato ha auto-taggato gli argomenti con “artificiale”, ecc.
FWIW: la funzione “test” nella pagina della specifica di auto-tag funziona correttamente (per l’auto-tag su “art”, “artificiale” non genera un tag nel test).
Il bug probabilmente non è stato notato perché forse è poco comune eseguire l’auto-tag su una parola monitorata breve.
Immagino di avere watched_word_regular_expression abilitato per impostazione predefinita e non mi sono reso conto che questo compromette la funzionalità di “azione su parole intere”. È necessario che l’azione su parole intere sia incompatibile con le espressioni regolari??
Cioè, dovrei ancora considerarlo un bug o un vincolo necessario causato da un’altra funzionalità?
Finora, continuo a considerarlo un bug. Non vedo alcun motivo per cui l’analisi delle parole intere senza espressioni regolari debba essere incompatibile con l’analisi tramite espressioni regolari quando viene specificata un’espressione regolare.
Se stai usando le espressioni regolari per alcune delle tue parole monitorate, questa regola si applica a tutte. Di conseguenza, se le espressioni regolari sono attive e hai configurato il tagging automatico per art, ci si aspetta che anche artificial venga contrassegnato. Per cercare solo la parola art, usa il metacarattere di confine di parola \b. Nel caso di art, ciò significherebbe \bart\b.
Dovremmo assicurarci che l’interfaccia ci avvisi quando questa opzione è attiva, dato che il significato del campo cambia notevolmente quando è abilitato.
Un po’ come il messaggio “CAPS LOCK ATTIVO” quando si inserisce la password, ecc.
Grazie mille a tutti. Devo scusarmi se la mia comprensione piuttosto elementare delle espressioni regolari è stata carente e ha portato a un fraintendimento sul loro funzionamento per le parole monitorate. Ma… un paio di punti:
Immaginavo che il contesto delle espressioni regolari fosse qualcosa come “stringa all’interno dei confini di parola”. Cosa altro avrebbe senso? Sicuramente non l’intero documento dell’argomento! In questo caso, per far sì che “artificial” venga contrassegnato, dovrei specificare art* (o art.* o qualcosa di simile, come menzionato nel titolo di questo argomento).
Joshua: grazie per il suggerimento sul metacarattere dei confini di parola. L’ho appena provato e non ha funzionato. Né nella funzione di test né nella realtà. Quindi… al momento sembra non esserci alcuna soluzione alternativa (o un modo “corretto” per ottenere il comportamento desiderato).
La funzione di test è molto utile. Sembra comportarsi esattamente come intuitivamente pensavo dovesse fare. art viene attivato solo quando appare la parola “art” (e non su “artificial”), mentre art* viene attivato su “artificial”, come previsto. Inoltre, art* life viene attivato sia su “art life” che su “artificial life”. Pensavo anche che la funzione di test potrebbe non utilizzare l’analisi delle espressioni regolari se inserisco una sola parola, ma no… foo* art viene attivato su “foobar art”, ma non su “foobar artificial”. Quindi… chi ha scritto la funzione di test stava pensando come me (credo).
In sintesi,
Il suggerimento di Jeff di ricordare che watched_words_regular_expressions è abilitato è buono.
Il comportamento della funzione di test dovrebbe corrispondere a quello effettivo.
E, per la cronaca, preferirei che il comportamento effettivo corrispondesse a quello attuale della funzione di test.
Se è necessaria una conoscenza delle espressioni regolari più approfondita di quanto suggerito dalla funzione di test attuale, sarebbe utile avere degli esempi da qualche parte.
Se esiste una soluzione alternativa o un modo “corretto” (come “usa \bart\b per ottenere il comportamento desiderato”), sono felice di utilizzarlo.
Ancora una volta, grazie a tutti per l’attenzione dedicata a questo problema piuttosto minore per una grande piattaforma!
Se hai attivato l’impostazione del sito watched words regular expressions, devi usare \bart\b, dove \b rappresenta il confine di parola. Se l’impostazione del sito è disattivata, non è necessario usarlo poiché i confini di parola sono inclusi automaticamente.
L’ho appena testato e funziona correttamente per me, incluso il modulo di prova:
Ciao Bianca,
Grazie mille per aver esaminato la questione.
Ero confuso riguardo all’attivazione delle espressioni regolari per le parole monitorate. Pensavo che venissero impostate automaticamente se utilizzavo un * jolly nella mia specifica di attivazione automatica. Ho capito che non è così, quindi non mi sorprende che il mio tentativo con \bart\b non abbia funzionato.
Controllerò l’ultima versione per ottenere la tua implementazione della funzione di test. Per me, Test ha sempre funzionato, proprio come per te.