title:      Les 100 premiers mots-clés recherchés par les utilisateurs d&#39;AOL
slug:       les-100-premiers-mots-cles-recherches-par-les-utilisateurs-d-aol
date:       2006-08-09 08:49:35
type:       post
vignette:   images/logos/aol_data.png
contextual_title1:  Réflexions sur les conférences de geeks
contextual_url1:    20090327-reflexions-sur-les-conferences-de-geeks
contextual_title2:  Son propre TinyURL en Python et HTML5 avec webpy
contextual_url2:    20090221-son-propre-tinyurl-en-python-et-html5-avec-webpy
contextual_title3:  Analyse des données utilisateur d&#39;AOL : suite et fin
contextual_url3:    20060814-analyse-des-donnees-utilisateur-d-aol-suite-et-fin

<p>Vous n'êtes pas sans savoir que des <a href="http://fr.techcrunch.com/2006/08/07/aol-vient-de-mettre-en-ligne-des-donnees-privees-en-quantite/">données reatives aux utilisateurs d'AOL ont été mises en ligne dernièrement</a> (<a href="http://www.techcrunch.com/2006/08/06/aol-proudly-releases-massive-amounts-of-user-search-data/">version anglaise</a>, je pense que les serveurs sont plus régulièrement mis à jour si vous voulez récupérer les données). Voici le script et les 100 premiers mots-clés de recherche réalisées par ces utilisateurs. <strong>Attention les données n'ont pas été filtrées donc ce post peut contenir des mots heurtant la sensibilité des plus jeunes lecteurs.</strong></p>

<h2>Les 100 premiers mots-clés</h2>


<p><a href="http://www.aolsearchdatabase.com/">Un site est déjà en ligne pour fouiller dans toutes ces données</a> mais je voulais connaître les meilleurs mots-clés.</p>


<h3>Script Python</h3>


<pre>freq = {}
for i in range(1, 11):
    if i in range(1, 10): i = '0'+str(i)
    for line in open('user-ct-test-collection-'+str(i)+'.txt'):
        for word in line.split('\t')[1].split():
            if len(word) &gt;= 3:
                try:
                    freq[word] += 1
                except KeyError:
                    freq[word] = 1

total = float(sum(freq.values()))
items = freq.items()
items.sort(lambda a, b: -cmp(a[1], b[1]))
for word, count in items[:100]:
    print count, word, round(count/total*100., 2)</pre>


<h3>Résultats</h3>


<p>Les résultats sont dans l'ordre décroissant, chaque ligne correspond à <strong>position. occurences, mot-clé, taux d'apparition</strong></p>

<ol>
<li>837298 the 1.03</li>
<li>698426 for 0.86</li>
<li>692358 and 0.85</li>
<li>449102 free 0.55</li>
<li>363020 google 0.45</li>
<li>270158 new 0.33</li>
<li>251125 http 0.31</li>
<li>236473 pictures 0.29</li>
<li>231574 county 0.28</li>
<li>217750 yahoo 0.27</li>
<li>208600 how 0.26</li>
<li>188800 lyrics 0.23</li>
<li>182564 school 0.22</li>
<li>176714 myspace 0.22</li>
<li>166225 sex 0.2</li>
<li>160174 ebay 0.2</li>
<li>159871 florida 0.2</li>
<li>155790 com 0.19</li>
<li>145346 sale 0.18</li>
<li>144472 with 0.18</li>
<li>144242 city 0.18</li>
<li>140896 home 0.17</li>
<li>138907 american 0.17</li>
<li>136993 state 0.17</li>
<li>127214 www 0.16</li>
<li>121237 .com 0.15</li>
<li>120478 what 0.15</li>
<li>119897 games 0.15</li>
<li>118366 texas 0.15</li>
<li>117860 music 0.14</li>
<li>115674 york 0.14</li>
<li>110711 yahoo.com 0.14</li>
<li>109857 bank 0.13</li>
<li>108839 black 0.13</li>
<li>108607 beach 0.13</li>
<li>108228 nude 0.13</li>
<li>104911 high 0.13</li>
<li>102669 online 0.13</li>
<li>102016 aol 0.13</li>
<li>101424 news 0.12</li>
<li>101226 map 0.12</li>
<li>101138 pics 0.12</li>
<li>98942 girls 0.12</li>
<li>96254 college 0.12</li>
<li>96063 you 0.12</li>
<li>92866 2006 0.11</li>
<li>92701 car 0.11</li>
<li>91862 real 0.11</li>
<li>89954 mapquest 0.11</li>
<li>89768 from 0.11</li>
<li>88975 university 0.11</li>
<li>87936 jobs 0.11</li>
<li>87283 center 0.11</li>
<li>86572 google.com 0.11</li>
<li>86083 myspace.com 0.11</li>
<li>85265 homes 0.1</li>
<li>85156 porn 0.1</li>
<li>84175 ohio 0.1</li>
<li>82530 california 0.1</li>
<li>80015 women 0.1</li>
<li>79429 white 0.1</li>
<li>78212 photos 0.1</li>
<li>77077 san 0.09</li>
<li>74934 estate 0.09</li>
<li>74360 club 0.09</li>
<li>74161 day 0.09</li>
<li>73791 art 0.09</li>
<li>72760 park 0.09</li>
<li>72728 house 0.09</li>
<li>72437 world 0.09</li>
<li>71346 baby 0.09</li>
<li>70068 big 0.09</li>
<li>69716 parts 0.09</li>
<li>69413 hotel 0.09</li>
<li>68313 weather 0.08</li>
<li>67802 furniture 0.08</li>
<li>67756 airlines 0.08</li>
<li>65458 blue 0.08</li>
<li>65332 credit 0.08</li>
<li>64648 movie 0.08</li>
<li>64619 south 0.08</li>
<li>64333 lottery 0.08</li>
<li>64138 internet 0.08</li>
<li>64137 island 0.08</li>
<li>64003 john 0.08</li>
<li>63017 your 0.08</li>
<li>62882 video 0.08</li>
<li>62866 north 0.08</li>
<li>62574 hot 0.08</li>
<li>62137 air 0.08</li>
<li>62059 wedding 0.08</li>
<li>61841 lake 0.08</li>
<li>61674 best 0.08</li>
<li>61363 used 0.08</li>
<li>61103 dog 0.08</li>
<li>60942 hotels 0.07</li>
<li>60749 america 0.07</li>
<li>60702 love 0.07</li>
<li>59443 department 0.07</li>
<li>59153 pages 0.07</li>
</ol>

<h3>Interprétation</h3>


<p><del>Des commentaires sur ces résultats ce soir, faut que j'aille bosser là ;-).</del> La pause déjeuner devrait suffire.</p>


<p>On remarque déjà que les 3 premiers (<strong>the</strong>, <strong>for</strong> et <strong>and</strong>) sont à exclure... ou pas. Le <strong>and</strong> est probablement utilisé en tant qu'opérateur logique mais le <strong>the</strong> par exemple est un bon indicateur de l'utilisation des articles dans les moteurs de recherche. Il faut donc peut-être se tourner vers une référencement avec article et non plus par suite de mots-clés (d'où la pertinence d'avoir un contexte).</p>


<p>Ensuite le champ lexical de la pornographie est très présent mais beaucoup moins que ce que je pensais. Hônnetement, je m'attendais à <strong>sex</strong> dans le top 5. C'est presque rassurant (bon je me suis pas risqué à faire le total pour rester optimiste).</p>


<p>Ce qui est étonnant aussi c'est l'absence du mot <strong>mp3</strong> des recherches. Je ne sais pas si c'est par peur de la <abbr title="Recording Industry Association of America">RIAA</abbr>, qui sait&nbsp;? Les personnes utilisant le moteur de recherche d'AOL sont sûrement très respectueuses des lois (ou alors ont compris qu'il existait d'autres outils pour ça).</p>


<p>Les recherches sont un bon indicateur des tendances avec <strong>myspace</strong> qui a le vent en poupe, par contre il n'y a aucune star qui arrive à entrer dans le top 100 (bon à part John...). On remarque aussi qu'il y a beaucoup de recherches effectuées en utilisant en mot-clé le nom d'un autre moteur de recherche (j'avoue ne pas trop comprendre). De même, les mots-clés <strong>http</strong>, <strong>www</strong> ou <strong>com</strong> montrent l'ignorance de leur signification par les chercheurs.</p>


<p>Je trouve que l'on retrouve aussi beaucoup de localités présentes dans ces recherches, il faudrait pouvoir comparer à des données datant de quelques années mais c'est peut-être un nouvel aspect du web (ce qui m'étonne à moitié sinon personne n'aurait lancé la cartographie en ligne).</p>


<h2>Quels liens sont suivis&nbsp;?</h2>


<p>On dit souvent que les 3 premiers liens d'un moteur de recherche sont les seuls suivis. Je voulais vérifier si cela était vrai pour ces données, c'est pas tous les jours qu'on a cette d'aubaine&nbsp;!</p>


<h3>Script python&nbsp;:</h3>


<pre>nofollowed, followed, first_rank, second_rank, third_rank = 0, 0, 0, 0, 0
for i in range(1, 11):
    if i in range(1, 10): i = '0'+str(i)
    for line in open('user-ct-test-collection-'+str(i)+'.txt'):
        #for line in open('user-ct-test-collection-01.txt'):
        rank = line.split('\t')[3]
        if rank:
            followed += 1
            if rank == '1':
                first_rank += 1
            elif rank == '2':
                second_rank += 1
            elif rank == '3':
                third_rank += 1
        else:
            nofollowed += 1
total = float(nofollowed + followed)
print 'Total', total, round(total/total*100., 2), '%'
print 'Non suivi', nofollowed, round(nofollowed/total*100., 2), '%'
print 'Suivi', followed, round(followed/total*100., 2), '%'
print 'Premier suivi', first_rank, round(first_rank/total*100., 2), '% soit', round(first_rank/float(followed)*100., 2), '% des liens suivis'
print 'Deuxieme suivi', second_rank, round(second_rank/total*100., 2), '% soit', round(second_rank/float(followed)*100., 2), '% des liens suivis'
print 'Troisieme suivi', third_rank, round(third_rank/total*100., 2), '% soit', round(third_rank/float(followed)*100., 2), '% des liens suivis'</pre>


<h3>Résultats</h3>


<p>Chaque ligne correspond à&nbsp;: <strong>Type, nombre, taux par rapport au total</strong></p>

<ul>
<li>Total 36389577.0 100.0 %</li>
<li>Non suivi 16946938 46.57 %</li>
<li>Suivi 19442639 53.43 %</li>
<li>Premier suivi 8220278 22.59 % soit 42.28 % des liens suivis</li>
<li>Deuxieme suivi 2316738 6.37 % soit 11.92 % des liens suivis</li>
<li>Troisieme suivi 1640751 4.51 % soit 8.44 % des liens suivis</li>
</ul>

<h3>Interprétation</h3>


<p>Sur 36 millions de recherches, seules 54% sont considérées comme étant pertinentes par l'utilisateur. C'est énormément peu (<del>il serait très intéressant d'avoir les données de Google pour comparer</del> la recherche est faite par Google, encore plus étonnant !). Et ensuite sur ces 54%, il vaut en effet mieux être placé en tête de peloton mais moins que ce que je pensais, il reste tout de même 40% des liens suivis qui le sont par les résultats inférieurs. Quoiqu'il en soit, la lutte pour la première place est justifiée&nbsp;!</p>


<h2>Conclusion générale</h2>


<p>Les données sont celles des utilisateurs du moteur de recherche d'AOL et je ne pense pas que les recherches effectuées sur Google par exemple soient de même nature, <del>surtout en ce qui concerne les recherches fructueuses</del>. Ces résultats sont bruts et il serait très intéressant de les affiner davantage en fonction d'un secteur d'activité donné. Est-ce que tel type d'utilisateur utilise plusieurs mots-clés&nbsp;? Et suit-il le premier lien&nbsp;? etc.</p>


<p>Si vous ne donnez pas dans le p0rn, il peut-être intéressant de référencer un site de «&nbsp;new lyrics for free ». On comprend aussi pourquoi un moteur de recherche a toujours l'avantage sur ses concurrents en analysant ses recherches. Par exemple au sujet du nombre important de localités recherchées, il est évident que Google a fait une étude poussée là-dessus avant de s'investir dans GoogleMap et devant le nombre de recherches ils étaient certains de la future popularité de leur service.</p>


<p>Pour véritablement arriver à des conclusions solides, il faudrait les données de plusieurs moteurs de recherche réparties sur plusieurs dates. C'est impossible à avoir, il n'y a donc actuellement que les moteurs de recherche qui peuvent se précipiter sur ces données pour identifier les différents profils d'utilisateurs ;-).</p>


<p>Conclusion personnelle&nbsp;: je crois que l'aspect scientifique me manque un peu en ce moment... (sans compter le python).</p>


<p><strong>[edit du 15/08]</strong>&nbsp;: <a href="https://larlet.fr/david/biologeek/archives/20060814-analyse-des-donnees-utilisateur-d-aol-suite-et-fin/">Suite de l'analyse des données sur ce site</a>.</p>
