Come cercare termini o frasi separate da esattamente X parole

Scienziato pazzo
Scrivo questo post estemporaneo per darvi evidenza di una query assurda e inizialmente incomprensibile che ho dovuto tirar fuori per un’esigenza molto stupida: cercare su Google due termini o frasi che siano separati esattamente da X parole, con X da poter scegliere arbitrariamente.

Siccome credo che le persone che avranno mai l’esigenza di usare una simile query si contino sulle dita di una mano di un monco, evito di intrattenervi con interminabili spiegazioni sul ruolo della prossimità dei termini in information retrieval e procedo subito a presentarvi il seguente parto di Frankenstein:

["dog AROUND(6) house" -"dog AROUND(5) house"]

Un’aberrazione, eh? La query citata induce Google a restituire i documenti testuali in cui i termini “dog” e “house” sono separati da esattamente cinque parole, non di meno.

SERP con i risultati della query

La query fa uso di un operatore di ricerca abbastanza sconosciuto e non documentato di Google: AROUND(), che va usato (rigorosamente scritto in maiuscolo) tra due termini o frasi per specificare il numero massimo di parole che le devono separare.

Per esempio [“dog AROUND(4) house”] cerca tutte le corrispondenze di “dog” e “house” separate da una o due o tre parole. Voi direte: “Ma tra le parentesi c’è scritto 4.” ed io rispondo: “Sì, perché il valore da specificare tra le parentesi è la distanza desiderata tra i due termini e Google calcola la distanza facendo una semplice differenza delle posizioni che le due parole occupano nel testo. Quindi due parole contigue hanno distanza 1, una parola di separazione corrisponde a distanza 2, due parole di separazione corrisponde a distanza 3, e così via.”.

Per riuscire a specificare a Google “esattamente X parole” ho usato un orrendo barbatrucco: con la prima parte della query chiedo a Google di restituirmi i documenti nei quali i due termini devono essere separati al massimo da X parole e poi uso l’operatore di negazione per escludere tutti i casi in cui la separazione è inferiore ad X.

Parafrasando, se volessi indicare “esattamente cinque parole di separazione” userei gli operatori AROUND() per specificare: “I termini devono essere separati da zero, una, due, tre, quattro o cinque parole, ma escludi dai risultati i casi in cui vengono separati da zero, una, due, tre o quattro parole.”. La conseguenza è che vengono proposti solo risultati in cui i termini sono separati da cinque parole.

Il che è contorto, folle e cervellotico, però funziona. Purtroppo funziona maluccio, nel senso che non si tratta di risultati esaustivi perché anche i documenti in cui i due termini sono separati da X parole possono non essere restituiti all’utente nel caso in cui i due termini appaiano anche in un secondo punto del testo separati da meno di X parole. Immagino che non si possa avere tutto dalla vita.

Le ultime note sulla query-mostro le aggiungo per dire che essa può essere circoscritta al testo della risorsa, dell’URL, del titolo o delle ancore dei link che essa riceve usando i normali operatori forniti da Google: intext, inurl, intitle ed inanchor da apporre prima delle virgolette (aggiungerei un link alla pagina di Google che elenca questi operatori ma purtroppo essa è stata rimossa).

Finché racchiuderete le due parole tra virgolette, si tratterà inoltre di una ricerca di frasi, quindi potrete sostituire i due singoli termini con frasi di vostra scelta e di arbitraria lunghezza.

E con questo vi ho mostrato come sfruttare operatori non documentati di Google, in combinazione con negazioni e definitori di frasi, per fare un tipo di ricerca di cui probabilmente non avrete mai bisogno. In compenso il metodo funziona pure male.

(aggiunto: ho volutamente sminuito la faccenda per rendere l’articolo più leggero, in realtà la query citata è molto vicina ad un atto di magia nera, perché riesce a fare una cosa che con un motore di ricerca generalista non sarebbe possibile fare)

P.S.
Pensavo che sarebbe interessante parlare di argomenti simili in qualche evento. Giusto per dire.

6 Responses to Come cercare termini o frasi separate da esattamente X parole

  1. Luca scrive il 25 June 2013 at 09:36

    uau!

  2. Fabri scrive il 25 June 2013 at 09:41

    Magari non mi servirà mai, ad ogni modo grazie per il post.

  3. Marco scrive il 25 June 2013 at 12:37

    Sempre molto interessanti i tuoi articoli.
    E’ vero che la “query-mostro” ha un’utilità mooolto ristretta, ma quello che apprezzo nei tuoi articoli è il ragionamento di fondo, cosa che non trovo quasi mai in blog che si limitano a dare news o a snocciolare ipotesi senza averle personalmente testate.

    Riguardo agli operatori per la ricerca avanzata, QUI c’è un buon elenco con relative spiegazioni.

    E visto che oggi (non so perché ☺) ho voglia di scrivere, se permetti, volevo proporre una query meno mostro e probabilmente con un’utilità maggiore (che molti magari già conoscono ed utilizzano):
    “numeri primi” (site:www.marcosroom.it | site:www.math.it | site:www.matematicamente.it)
    E’ un utilizzo “multiplo” dell’operatore site: con la combinazione di altri operatori semplici, a riprova di quello che tu hai scritto, ovvero che combinando per bene gli operatori si possono ottenere query davvero “potenti” (magari non è il caso dell’esempio che ho portato).
    Comunque, l’utilità di questa query credo sia immediatamente percepibile. (posso finalmente finire di scrivere ☺).

    Chiedo scusa per il lungo commento.
    Un saluto
    Marco

  4. Francesco Margherita scrive il 25 June 2013 at 12:39

    Enrico, potresti fare un esempio in cui torna utile l’operatore AROUND()?

    • LowLevel scrive il 26 June 2013 at 08:45

      @Francesco: di fatto, la sofisticatezza di Google rende questo operatore superfluo nella stragrande maggioranza dei casi. Infatti il motore di ricerca decide autonomamente quanto peso dare alla prossimità delle parole della query, cioè quanto devono essere vicine tra loro nei documenti restituiti agli utenti. Tuttavia per le query più rare e specifiche il motore attribuisce meno peso all’elemento della prossimità, quindi AROUND() può essere usato per imporre una distanza massima tra le parole cercate. Di esempi pratici non riesco a farne ma questi operatori di prossimità sono comuni in molti motori di ricerca fulltext e so che vengono utilizzati prevalentemente per ricerche di tipo linguistico (professori di lingua, bibliotecari, linguisti, ecc.). Per approfondire: http://en.wikipedia.org/wiki/Proximity_search_(text)

  5. Luca Bove scrive il 25 June 2013 at 12:40

    Il vero Mago nero sei te :-)

Lascia un commento

More in Just SEO
Un SEO deve soffrire di curiosità patologica

Un SEO deve soffrire di curiosità patologica. Deve essere mosso dall'incessante desiderio di scoprire l'assassino, di smontare il giocattolo per...

Close