Auto-tag su string agisce su *string*

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.

4 Mi Piace

Credo che @codinghorror se ne sia accorto anche lui. È nella nostra lista da risolvere.

4 Mi Piace

Ho corretto questo bug e sostituito: i link e i tag delle parole monitorate agiranno su parole intere.

Esiste un’eccezione quando watched_words_regular_expressions è abilitato.

4 Mi Piace

Grazie per la risposta, Bianca.

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.

Ciao Norman,

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.

3 Mi Piace

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.

3 Mi Piace

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!

2 Mi Piace

Possiamo assicurarci che questo venga assegnato a @zogstrip?

4 Mi Piace

Ho aggiunto un avviso quando l’impostazione del sito per le espressioni regolari delle parole monitorate è abilitata in questa PR:

Ecco come appare con le espressioni regolari disabilitate e poi abilitate (notare l’avviso e il diverso segnaposto dell’input):

4 Mi Piace

Ma Bianca, il mio tentativo con ‘\bart\b’ non ha attivato la corrispondenza per ‘art’ (o ‘artificial’, come non dovrebbe).

Questo tentativo era per l’etichettatura automatica.

C’è un motivo per cui non possiamo usare esattamente la funzione Test esistente per analizzare gli argomenti (per fare l’etichettatura automatica)?

Ciao Norman,

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:

L’ho implementato e dovrebbe funzionare sull’ultima versione.

3 Mi Piace

Ciao Bianca,
Grazie mille per aver esaminato la questione.

  1. 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.
  2. Controllerò l’ultima versione per ottenere la tua implementazione della funzione di test. Per me, Test ha sempre funzionato, proprio come per te.

Grazie ancora!

2 Mi Piace