Ti sei perso il VI Convegno gt? Forse puoi rimediare... www.convegnogt.it X Chiudi

Visualizza un messaggio singolo
Vecchio 17-01-07, 12:42   #1 (permalink)
paocavo
Moderatore
 
L'avatar di paocavo
 
Data di registrazione: Mar 2006
Ubicazione: Lecce, Italy
Messaggi: 1,007
SEO Text Mining: The Next Generation!

Alla luce di questa discussione vi propongo questa discussione avvenuta il mese scorso tra il sottoscritto e (il grande) Agoago:
Quote:
Agoago
--------
Cercando informazioni sul trattamento automatico dei contenuti ipertestuali da parte dei motori di ricerca mi sono reso conto di un loro algoritmo a me sconoscito.
Usano alcune "parole", articoli e congiunzioni per verificare, per differenziare il testo artificiale-doorway-spam da quello umano naturale.
Se in un sito la parola "file" e' presente in modo innaturale a loro non interessa, perche' il tuo sito potrebbe essere dedicato unicamente al download dei file. Pertanto....
Tuttavia le congiunzioni, gli articoli, qualsiasi sia la tipologia del tuo sito, devono rispecchiare-avvicinarsi alla presenza media di qualsiasi altro sito presente sul web per una data lingua.
Cosi' per quanto riguarda la lunghezza media delle frasi, della punteggiatura, del grado di lettura del testo.
Oltre ad aspetti "semplici" (grammatica, analisi logica, tematica del sito o delle pagine, distribuzione delle parole in base alla loro presenza media sul web) ma sentivo che mi mancava ancora qualcosa.
-------
Rimane da risolvere una questione che mi fa impazzire, perche' cosa vale per google non vale per msn per non parlare di yahoo.In poche parole si tratta del peso-valore medio di ogni parola che forma un testo.
Nessuno normalmente quando scrive in modo naturale usa nel suo testo parole molto difficili, arcaiche o estremamente specifiche rispetto un dato argomento.
Google tiene conto di questo aspetto mentre msn premia questi testi, yahoo se ne frega.
A tal proposito mi sono imbattuto nei Test di Leggibilità di un Testo:
Parti da questo link, (magari per te e' cosa risaputa, a me ha stravolto il lavoro):
http://en.wikipedia.org/wiki/Flesch-...adability_Test
Guarda anche i "see also" link.
Per esempio:
http://www.online-utility.org/englis...nd_improve.jsp
------
Oltre a questo aspetto mi manca la parte della dimensione del font, quello di cui discutevamo quando hai presentato i risultati del tuo test. Non so se sminuendo una data parte di testo si riesca a valorizzare anche minimamente un altra.
Non penso di aumentare i font delle key da spingere, ma sminuire alcune parole di contorno.
Puo' valerne la pena o no, secondo te?
Indica la tua strada teorica, personalmente sono contrario ad ogni modifica della dimensione del testo, per i motori e' spam se fatto in ogni pagina, e se fatto solo ogni tanto comunque comporta un maggior lavoro per i motori nella compilazione dei sort.
Pensaci bene, grazie, ciao. Ago
Quote:
paocavo
Come ho già detto in questo post e seguenti Google ha penalizzato fortemente la pagina che utilizzava font proporzionali alla rilevanza semantica (rilevata dal mio tool). Adesso ho rimesso la pagina nel formato originale (senza text-cloud) per vedere se riconquista il posizionamento originale.
Comunque dipende dai risultati che vuoi avere: nel breve termine ti dico di NO. Lasciare stare il font-size (forse stiamo anticipando troppo i MDR ). Nel lungo termine chi può dirlo? In ogni caso credo che con l'avvento del web semantico la direzione dovrebbe essere quella...
Quote:
Agoago
Se fosse quella la direzione (e credo anch'io sia cosi') allora dovrei usarlo, ma rimangono i soliti 2 dubbi... penalizare una key serve a valorizzarne un altra, e se la valorizza vale la pena di pagare lo scotto del maggior lavoro del bot?
Per lavoro del bot non intendo il lavoro dello spider, ma del bot appunto che e' cosa ben diversa. Il bot comanda lo spider e piu' lavoro fa il bot per pagina meno pagine indicizza il suo spider.
Quote:
Paocavo
Questo sarebbe da testare! Anche se credo che, a questo punto, la situazione sarebbe la stessa: cambia il fattore di scala ma il risultato sarebbe lo stesso.
Irregolarità nell'enfasi delle parole verrebbe comunque malvista...
Quote:
Agoago
Concordo in pieno, ci sono delle eccezioni, ma vanno prese come tali. Spero di non aver influenzato il tuo parere, viceversa sarebbe inutile chiedertelo.
Quote:
paocavo
Wow !!! non ci crederai ma non sapevo degli Indici di Leggibilità di un testo! Grazie 1000!
Quanto prima li adotterò nei risultati dei miei tool di text-mining pubblicati su www.nelsenso.it (a proposito li hai visti? Che ne pensi?)
A tal proposito mi serviva un algoritmo per la divisione in sillabe di una parola Italiana ma, googlando, scopro che esite l'Indice Gulpease che contempla la lunghezza media di una parola invece che il numero medio di sillabe!
Ti segnalo inoltre: http://www.standards-schmandards.com...xt-readability
Quindi dici che il peso di una parola dipenda anche dalla sua rarità (nel web)?
Nei miei studi il peso di una parola s'intende eslusivamente come la rilevanza semantica (saliency score) della parola nel contesto elaborato. Tale rilevanza è calcolata sulla base dei principio di reciproco rinforzo semantico.
Quote:
Agoago
Ehehe, ed io cosa ho detto? Esattamente quello che dici tu, solo che tu valuti la rilavanza semantica per un solo testo, i motori la valutano in base a tutti i testi presenti nel loro db. Di fatto e' la stessa cosa...
Su un tuo sito la parola casa puo' avere valore 100 ma per un motore potrebbe avere a livello mondiale valore 120.... secondo te prenderanno come riferimento (per il tuo sito) 100 o 120?
Tu varrai per la parola casa 100 rispetto al 120 generale pertanto nel tuo caso la parola casa scende nelle serp. Ma il conto lo fanno in base al db globale.
Tu sai che casa nel tuo sito vale 100... ma e' solo un primo passo, come fai a fare un confronto se non hai il secondo termine di paragone... quello globale?
Per quanto riguarda il il principio di reciproco rinforzo semantico, lo uso anchio, ma non ho capito bene se nel tuo tool tu parta assumendo che inizialmente tutte le frasi abbiano un valore di default uguale e poi procedi.
Personalmente uso una base tipica degli algoritmi dei primi motori di ricerca.
Conto le frasi, conto le parole, conto il numero di parole dentro ogni frase.
Assegno ad ogni frase un valore discendente (la prima vale 100 e l'ultima vale 1 nel caso di 100 frasi).
Lo stesso faccio per tutte la parole di tutto il testo.
Poi calcolo il valore medio delle parole di ogni frase in base al numero delle parole della frase.
Sommo e riassegno il valore delle parole presenti piu' di 1 volta nel testo.
Da li procedo in ciclo variando ogni ciclo valore della frase, delle parole.
In poche parole il primo ciclo assegna ad ogni frase ed ogni parola un valore ben preciso, poi parto con il reciproco rinforzo.
Non si puo' fare altrimenti, per esempio i motori sanno benissimo che su un testo di 100 righe solo una minima percentuale di utenti si leggeranno tutto il testo, da qui quanto sopra.
Tuttavia le congiunzioni, gli articoli, qualsiasi sia la tipologia del tuo sito, devono rispecchiare-avvicinarsi alla presenza media di qualsiasi altro sito presente sul web per una data lingua.
Cosi' per quanto riguarda la lunghezza media delle frasi, della punteggiatura, del grado di lettura del testo.
Se ci pensi e' una cosa logica. Poi trattare qualsiasi argomento ma non puoi scrivere senza congiunzioni o con frasi lunghe 400 parole e via dicendo. Ecco pertanto che le stop key che prima venivano ignorate adesso diventano fondamentali, cosi' per la punteggiatura.
Quote:
Paocavo
Molto interessante..., è in questo senso allora che s'intende la prominenza? Visto che, inizialemte, le frasi hanno peso decrescente nell'ordine di lettura. Per gli obiettivi dei MDR (..."una minima percentuale di utenti si leggeranno tutto il testo"...) è sicuramente sicuramente una miglioria nel calcolo dei pesi iniziali delle frasi. Inoltre la linearità decrescente nell'assegnazione dei pesi iniziali contiene già in se il fatto che frasi rilevanti, in genere, sono "vicine" ad altre frasi/concetti rilevanti (indipendentemente dal numero di parole-rilevanti che esse contengono). Nel mio algoritmo normalizzo (con il logaritmo) anche sul rapporto num-parole-frase/num-parole-frase-più-lunga. La tua soluzione mi sembra migliore anche per i miei obiettivi (determinare la semantica/riassunto di un testo)
Quote:
Agoago
Sai che parlandone mi sono accorto che forse il sistema che uso puo' essere migliorato e non di poco?
Scegliendo la linearità decrescente nell' assegnazione dei pesi iniziali ho semplificato il tutto dicendomi: ci sono le frasi e le parole, e la lunghezza delle frasi.
Pertanto usiamo questi 3 valori, da qui il limite.
Mi spiego.
Ipotizziamo che abbia un testo formato unicamente da 2 frasi. La prima cortissima la secondo normale.
Nessuno si fermerebbe alla lettura della sola prima frase, se fosse formata da 3 parole direbbe poco e nulla, si deve proseguire nella lettura!
Idem per quanto riguarda le parole in una frase.
Immaginati 2 frasi, la prima lunghissima, la seconda normale.
L'utente parte con il leggere la prima, a meta' si stufa e butta un occhio alla seconda frase.
E' pensabile che l'ultima parola della prima frase lunga valga di piu' della prima parola della seconda frase media?
---------
Mi sono letto decine di documenti in merito e la lunghezza media delle frasi in inglese a lettura scorrevole non dovrebbe superare le 15 parole.
Bisogna applicare le formule alla realta' dei fatti, non devrebbe esser usata fine a se stessa.
Il testo al posto di esser diviso per frasi potrebbe esser diviso inizialmente per blocchi di parole.
Se nel primo blocco ci fossero, per ipotesi, 3 frasi allora tutte e 3 pottrebbero assumere grossomodo uno stesso valore iniziale.
-----
Altra questione da me un tempo sottovalutata. Le congiunzioni.
In inglese ci sono un centinaio di congiunzioni, modi di dire che servono a rendere piu' scorrevole il discorso ed ad unire 2 frasi o piu' in un' unica frase.
Questo avviene il piu' delle volte quando le 2 frasi sono mediamente corte.
Ma avviene anche con frasi lunghe.
Mediamente gli inglesi mettono una congiunzione ogni 12 parole.
Molti esperti suggeriscono di considerare come fossero 2 o piu' frasi quelle frasi lunghe contenenti delle congiunzioni. Spaccano la frase lunga in piu' frasi per ogni congiunzione che contiene.
Questo perche' un and, una virgola assume di fatto lo stesso ruolo del punto, anche se in forma minore.
Il punto ci dice, frase finita, passa alla prossima.
Un "in other words" ci dice procedi nella frase, ma cio' che leggerai dopo sara' un concetto legato alla prima parte della frase, ma nel suo insieme distinto.
Un and lega una prima parte alla seguente, da un'aggiunta al testo che la precede, concatena e' vero... ma offre anche un punto di rottura, una pausa.
---
Non solo, ma se vogliamo andare nel pratico, personalmente lavorando in funzione dei motori, non solo tengo conto delle congiunzioni, delle stop keyword, ma anche delle poison words.
Non sono poche decine come molti ritengono ma alcune migliaia. Parole come email, web, internet, free, blog, etc non hanno peso per i motori in quanto forzature, parole che appaiono in % assurda sul web rispetto al loro uso comune nella lingua di tutti i giorni.
Lo stesso vale per le parole che non esistono.
Se scrivo una parola inventata come prima della prima frase per il motore vale comunque 0, come se scrivessi web od email.
Tu invece la consideri nel tool.
------
Tra parole inesistenti e parole over-usate ci stanno in mezzo i numeri.
Come consideri i numeri? Per te 1412413 e' una parola come un altra?
Il numero va trattato a parte, come una stopkey ma con qualcosa in piu'.
Questo per motivi "storici". Poco dopo il 2000 tutti gli spammer iniziarono a fare le pagine infarcite di numeri e di key che volevano spingere. I motori davano pochissimo peso ai numeri e di conseguenza valorizzavano il testo rimanente: le key.
Pagine lunghe e piene di testo ma con dentro solo un centinaio di key sensate, il resto numeri. Il motore non vedeva lo spam ed alla fine tutto il valore andava alle parole alfa.
Poi hanno corretto il tiro, il numero vale solo se associato prima o dopo ad una parola sensata e question finita.
------
Altra questione, lunghezza del testo. Tu dici, dato un dato testo in base al reciproco rinforzo cerchero' di valutare quali parole siano maggiormente significative in quel testo.
Questo vale solo se il testo non e' oltre una certa lughezza.
Ti faccio un esempio. Ipotizziamo un testo di 100.000 parole. Ipotizziamo che le parole cane e gatto siano indubbiamente predominanti. Testiamo il tutto ed ecco che il tool ci da come parole predominanti cane e gatto. La formula funziona.
La formula, il tool ci dice anche che quelle 2 parole hanno tuttavia un valore molto basso in %, del resto il testo contiene moltissime altre parole.
Stara' poi al nostro giudizio fare le valutazioni del caso, tenerne conto o meno.. del resto la loro % e' veramente bassa.
Peccato che i motori non abbiano questa possibilita', devono fare una scelta subito, ne terro' conto o no?
--
No, non ne terranno conto, ma non per questo sprecano la spiderizzazione. Se le parole non raggiungono il mio levello minimo prestabilito considerero' le coppie di parole, e se anche in quel caso non avessi soddisfazione passerei alle triplette e via discorrendo.
---
Detta cosi' sembra cosa semplice e logica, se non fosse che cosa ne consegue ha del geniale.
Non vorrei annoiarti, ma seguimi perche' ne vale la pena.
Per esempio nel tuo sito scrivi:

"Un termine è tanto più rilevante quanto più è elevato
il numero di frasi rilevanti a cui appartiene,
allo stesso tempo, una frase è tanto più rilevante
quanti più termini rilevanti essa contiene."

Ok. Ti sei mai chiesto quante pagine nel web contengano (in base ai valori prestabiliti dai motori) un termine (per loro) rilevante??
Zero.
Qualsiasi termine in qualsiasi pagina non puo' essere rilevante per un motore, ne rispetto il proprio contenuto, ne rispetto i contenuti della concorrenza.
I motori sanno ovviamente che una pagina ha uno o piu' termini rilevanti al suo interno, ma siccome nessun termine raggiungera' mai i valori da loro attesi (perche' non passera' indenne attraverso i loro filtri anti spam) ecco che in pratica, di fatto, non esiste per i motori la rilevanza di un termine.
Pertanto non ha senso pratico parlare di "termine", ma ha senso parlare di "insieme di termini".
Insieme di termini con prossimita' 0 o piu' tra le varie parole che lo formano, ma sempre insieme di termini.
O ragioni a doppiette, triplette e via dicendo di parole o il servizio rimarra' un mero esercizio teorico.
Prima si calcola il peso finale di ogni parola in ogni frase, poi si somma il valore delle parole, 2 a 2, e si procede ricalcolando il tutto.
Se non si ottiene un valore soddisfacente per le coppie allora si passa di 3 in 3, ovviamente abc bcd cde, etc..
Se in nessun modo si ottiene un valore per "insieme di parole-termini" veramente rilevante allora si marca il testo analizzato come ambiguo.
--------
Tu penserai, beh il principio rimane lo stesso, che cerchi-ottenga un rinforzo reciproco in base a termini singoli, o a coppie, o a piu' termini non cambia nulla, e' solo una questione di scelta.
Una scelta che puo' rimanere pura se non tenessi conto dei motori, o che potrebbe adattarvisi se ne volessi tenere conto.
Insomma penserai, non si puo' criticare il rinforzo reciproco solo perche' in prima battuta si basa su termini singoli... la teoria apre la strada, poi ognuno la percorre come meglio crede o come meglio gli convenga!
---
Peccato non sia così semplice... senno' non ti avrei detto prima che: "cosa ne consegue ha del geniale".
Nel momento stesso in cui accetti-capisci-ammetti che il reciproco rinforzo debba essere calcolato non solo in base a parole singole ma anche in base a parole consecutive, anche in base a parole piu' o meno distanti tra di loro, beh ecco che allora capirai che il calcolo attuale e' approssimativo in pieno...
Anche se volessi calcolare solo il valore dei singoli termini.
--------
Nella prima fase calcolerai come meglio credi il valore dei termini singoli.
Nella seconda fase calcolerai le accoppiate di termini. Il valore delle accoppiate sara' poi ridistribuito sulle parole che le compongono.
Ricolcolerai pertanto il valore dei termini singoli (questa volta influenzati dal valore delle loro parole adiacenti), ricalcolerai il valore delle coppie (in quanto si basano sempre sulla somma dei nuovi singoli valori dei termini che le compongono, oltre eventuali loro ripetizioni) e poi solo dopo calcolerai il valore delle triplette.
Cosi' fin tanto che per almeno un gruppo di termini avrai ottenuto un valore soddisfacente.
Quando lo avrai ottenuto verificherai che spesso molte delle parole che compongono quel gruppo di termini non saranno le stesse che singolarmente prevalevano.
Ma allora... dove sta la ragione, sempre che ne esita una valida per tutte le occasioni?
------
Detta cosi' sembra una tecnica lunga e poco pratica, ma lo e' perche' non essendo un matematico non conosco la formula giusta per svelocizzare il tutto.
Mi hanno anche detto che potrei procedere in senso inverso.
Contare in prima battuta se esistano gruppi di parole contigue ripetuti nel testo, se non esistono passare a gruppi piu' brevi. Se non esistono verificare se esistono gruppi di parole distanti tra di loro ripetuti e cosi' via.
Nel caso non ci siano ripetizioni calcolare i singoli termini, ma poi sommare i valori dei singoli termini con i valori degli altri termini che si ripetono entrambi almeno 2 volte, anche se molto distanti tra di loro.
Insomma considerare tutte le coppie di parole anche fossero, le 2 parole, distantissime tra di loro nelle varie frasi del testo. Ovviamente se entrambe le parole appaiono almeno 2 volte..
----
Girala come credi ma non ha nessun senso pratico per un seo la rilevanza di un singolo termine, poco o nulla di una coppia, personalmente lavoro da 4 termini in su e riesco a gabbare solo msn.
-
E poi c'e' ancora chi pensa che i motori siano banali somme di semplici algoritmi.
Se i motori oggi fossero letteratura anche Dante (oggi) avrebbe seri problemi nel prevalere.
Hanno raggiunto livelli di analisi del web incredibili, impensabili per noi che ne siamo esterni... solo con profondi calcoli possiamo competere, malamente, in modo approssimativo, giocando sul fatto che gli altri seo sono disperati come o peggio di noi.
Ma oggi, alle soglie (che banale espressione alle soglie) del 2007 si parli ancora di rinforzo reciproco di termini singoli rispetto alle singole frasi, beh... giudica tu.
Io ero fiero di calcolare il rinforzo reciproco in base a gruppi di termini rispetto alle singole frasi, ma non avevo mai pensato che la lungheza di un testo filtrato potesse influenzare il valore iniziale delle frasi che lo compongono.
Non piu' frasi valutate singolarmente ma gruppi di frasi suddivise in base alla loro lunghezza ed in base alla lunghezza del testo che le contiene.

Ultima modifica di paocavo : 17-01-07 12:59.
paocavo non in linea   Rispondi citando