Come creare espressioni regolari (RegEx) con GPT-3 attraverso un Foglio di Google

Le espressioni regolari (RegEx) sono poco intuitive, ma molto potenti per redirection e data analysis. Come possiamo sfruttare GPT-3 e l'intelligenza artificiale per crearle al posto nostro? Vediamo un esperimento e una guida dettagliata.

Come creare espressioni regolari (RegEx) con GPT-3 su Google Sheets
Come creare espressioni regolari (RegEx) con GPT-3 su Google Sheets

Le espressioni regolari (RegEx), è inutile negarlo, sono ostiche per tutti.. anche per i professionisti più esperti.

Grazie all'utilizzo di GPT-3, quindi dell'intelligenza artificiale, è possibile implementare un sistema che può essere d'aiuto, trasformando istruzioni testuali (in linguaggio naturale) in RegEx. Nel video che segue, vediamo in azione un esperimento in un Foglio di Google.

GPT-3: dal linguaggio naturale alla generazione di espressioni regolari (RegEx)

Attraverso il seguente bottone, puoi creare una copia del Foglio di Google usato nel video. Nei paragrafi successivi spiego in dettaglio come utilizzarlo.

NOTA: il foglio è stato aggiornato a novembre 2022 con un prompt completamente rinnovato per migliorare le performance di GPT-3 e con l'update della chiamata remota in modo da utilizzare l'engine "text-davinci-002", ovvero l'ultima versione.


Se hai già confidenza con gli argomenti "RegEx" e "GPT-3", puoi saltare i seguenti paragrafi e andare direttamente alle istruzioni.

Cosa sono le espressioni regolari (RegEx)

Si tratta di sequenze di simboli che identificano delle stringhe di testo. Se, ad esempio dovessi identificare tutti gli URL di un'ampia lista che contengono la stringa "/news/" seguita da un titolo e un codice numerico, una RegEx sarebbe la soluzione perfetta.

Come dicevo nell'introduzione, possono essere poco intuitive da usare, ma la difficoltà è proporzionale alla potenza del mezzo.
Conoscere le RegEx è una competenza trasversale che trova applicazioni praticamente ovunque per chi lavora nel mondo del web (e si estende ben oltre).
Per fare alcuni esempi:

  • nella SEO, in fase di migrazione (es. nel redirect 301), nei tool (es. Screaming Frog) e in azioni di web scraping;
  • nell'analisi dei dati e nella data visualization (es. su Search Console, Google Analytics, Data Studio, R, Clarity, abbinato a BigQuery) per estrazioni evolute e definizione di segmenti avanzati;
  • su Google Ads e in altre piattaforme pubblicitarie per filtri ed automazioni;
  • nello sviluppo per la validazione dei formati e l'elaborazione delle stringhe.

Nel paragrafo "Casi d'uso" racconto due esempi in cui un sistema come questo può dare benefici immediati: un filtro su Search Console e una regola di rewrite per un redirect 301.

Cos'è GPT-3?

GPT-3 è l'acronimo di Generative Pre-trained Transformer di terza generazione: un modello di linguaggio basato su machine learning e reti neurali, addestrato utilizzando dati presenti sul web per generare qualsiasi tipo di contenuto. Sviluppato da OpenAI, richiede una piccola quantità di testo di input (prompt) per produrre grandi volumi di testo rilevante e sofisticato generato dalla macchina.


Da testo a RegEx su un Foglio di Google

Partendo da uno script ideato da Danny Richman, ho creato un Foglio di Google che permette di convertire un testo in cui si descrive cosa dovrebbe filtrare l'espressione regolare in una istruzione RegEx.

Il sistema è sviluppato per avere in input testo in lingua inglese. A mio avviso è preferibile lavorare in questa modalità per usufruire della piena potenza di GPT-3, ma ho aggiunto un traduttore automatico, che consente anche di scrivere in italiano.

Usarlo è semplicissimo: tutto è basato sulla funzione

=GENERAREGEX(XX)

da applicare alla cella in cui si desidera il risultato dell'elaborazione, e dove "XX" rappresenta la cella con il testo in inglese da convertire. La funzione, chiaramente, utilizza le API di GPT-3 con il noto motore "Davinci", che ad oggi è ritenuto il più performante.

Come si usa il convertitore GPT-3 > RegEx?

Lo vediamo attraverso alcuni semplici step.

1 - Le API di GPT-3

Per usufruire del sistema è necessario, prima di tutto, creare un account OpenAI. Una volta completata la registrazione si ha a disposizione un budget per provare il sistema gratuitamente.
All'interno della sezione API Keys, si può trovare la chiave segreta da utilizzare nelle applicazioni esterne. A breve vedremo come usarla.

La sezione API Keys di OpenAI - La freccia indica la chiave necessaria
La sezione API Keys di OpenAI - La freccia indica la chiave necessaria

2 - Il Foglio di Google

Il Foglio di Google, scaricabile attraverso il seguente bottone, è stato creato proprio per permettere anche a chi non ha la possibilità di implementare codice in un ambiente di sviluppo, di usufruire delle API.
Tuttavia, esplorando lo script Apps Script collegato al Foglio (dal menù "Estensioni" > "Apps Script"), è possibile estrapolare la logica in pochi minuti.

3 - L'API Key nel Foglio di Google

La prima azione da eseguire nel foglio è l'inserimento dell'API Key di GPT-3. La chiave va copiata dal pannello di OpenAI (vedi screenshot precedente) ed inserita all'interno della cella "A2". Una volta fatto, la colonna "A" può essere nascosta.

4 - La descrizione del filtro

A questo punto, è possibile iniziare a scrivere delle descrizioni. Un esempio per iniziare può essere "contains the words news or blog". Se, invece, si desidera scriverla in italiano, basterà applicare la funzione

=GOOGLETRANSLATE("it","en",B2)

alla cella "C2" (dove "B2" è la cella contenente il testo in italiano).

Chiaramente, meglio si descrive l'esigenza, e più aumentano le probabilità di ottenere un output di qualità.

5 - La funzione che genera l'output

Una volta indicato l'input, è possibile inserire la funzione

=GENERAREGEX(C2)

alla cella "D2" (quella destinata all'output). In pochi secondi compare l'espressione regolare corrispondente alla descrizione.

6 - L'estensione delle funzioni

Le funzioni di traduzione e di elaborazione con GPT-3 (punti 4 e 5) possono essere copiate ed incollare nelle celle sottostanti per ottenere altre traduzioni e altre generazioni di RegEx. Oppure possono essere estese alle colonne complete.

7 - La funzionalità di eliminazione delle formule

Dopo aver ottenuto tutte le RegEx d'interesse, è possibile usare l'opzione "Elimina Formule" (presente nel menù in alto) che va ad eliminare tutte le formule dal foglio, il quale va a perdere l'interattività delle celle. Questo serve per evitare che ad ogni modifica del foglio avvenga una chiamata API a GPT-3 (per risparmiare budget).

L'opzione "Elimina Formule" presente nel menù del Foglio Google
L'opzione "Elimina Formule" presente nel menù del Foglio Google

Nota: la richiesta di autorizzazione

Quando vengono messi in esecuzione gli script, il Foglio di Google potrebbe chiedere l'autorizzazione. Questo è del tutto normale: basta selezionare l'account Google e procedere. Se si desidera analizzare il codice prima di dare l'autorizzazione, è sufficiente aprire la voce "Estensioni" del menù, e successivamente "Apps Script".

Come visualizzare lo script del foglio: Estensioni > Apps Script
Come visualizzare lo script del foglio: Estensioni > Apps Script

Casi d'uso

Vediamo brevemente due semplici casi d'uso in cui il generatore di espressioni regolari può essere utile.

Filtri su Search Console

Immaginiamo di dover visualizzare su Search Console i dati delle pagine che contengono l'anno nell'URL.
Il seguente video mostra come sia semplice generare l'espressione regolare da usare per il filtro: viene creato chiedendo all'algoritmo "contiene l'anno, composto da 4 cifre".

Generazione di RegEx attraverso GPT-3 ed applicazione ad un filtro su Search Console

Redirect 301 in fase di migrazione

Immaginiamo che un sito web venga rinnovato e ci sia una variazione di CMS e di struttura dei permalink. Dobbiamo, quindi, ad esempio, realizzare un redirect 301 che consente di indirizzare URL in questo formato:

https://sitoweb.it/news/titolo-del-post-234.php

verso URL nel formato seguente:

https://sitoweb.it/234/titolo-del-post/

Passiamo, quindi, all'algoritmo la seguente descrizione:

una stringa che contiene "/news/", poi una stringa qualsiasi, poi un trattino, poi un valore numerico, e finisce con".php".

La RegEx che genera GPT-3 è la seguente:

\/news\/(.*?)-(\d+)\.php$

Facendo un test, l'espressione è valida, riconosce il formato e anche le variabili.

Test dell'espressione regolare per generare il redirect 301
Test dell'espressione regolare per generare il redirect 301

Grazie all'espressione regolare, quindi, generiamo la regola di rewrite:

RedirectMatch 301 \/news\/(.*?)-(\d+)\.php$ https://sitoweb.it/$2/$1/

Quello che si vede nell'immagine che segue è il risultato dell'inserimento della regola di rewrite nel file .htaccess di un sito web ed eseguendo una richiesta del vecchio URL.

Uno screenshot che fotografa il redirect 301
Uno screenshot che fotografa il redirect 301

La regola redirige perfettamente.

Come verificare la sintassi delle RegEx

Nei video e nelle immagini di questo post, compaiono dei software che consentono di verificare la sintassi delle espressioni regolari. Si tratta di tool disponibili gratuitamente online, i quali permettono non solo di fare dei test, ma sono d'aiuto anche per identificare le variabili, per ottenere una spiegazione testuale delle RegEx, e per modificarle.

I seguenti link puntano ai sistemi che ho trovato più interessanti: regular expressions 101 e RegExr.

regex101: build, test, and debug regex
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET.
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

Conclusioni

Il sistema descritto, di certo non è perfetto. Non sempre, infatti le espressioni regolari sono precise e possono introdurre qualche errore di sintassi, ad esempio nei caratteri di escape.

Nonostante questo, però, rappresenta un fantastico punto di partenza nella gestione di elementi complessi come le RegEx, che possono essere affinati nei software di test in maniera semplicissima.


Per approfondire

GPT-3: dialoghi con l’intelligenza artificiale di OpenAI
Cos’è GPT-3 di OpenAI? Si tratta di un’intelligenza artificiale molto evoluta. Dopo un lungo periodo d’attesa sono stato abilitato all’utilizzo del programma beta delle API. Come funziona? Lo vediamo insieme!
OpenAI Codex: dal linguaggio naturale al codice di programmazione
OpenAI lancia Codex in versione beta e ci dimostra come sia possibile creare codice di programmazione (quindi software) spiegando all’AI le operazioni da svolgere. Ed è solo l’inizio!