[Sebastian Thrun] Miten hakukone pitäisi sinun mielestäsi tehdä, olet tehnyt sellaisen aiemmin, eikö totta? [Sergey Brin - yksi Googlen perustajista] Kyllä. Minusta tärkein asia hakukonetta rakentaessa on aloittaa todella hyvän kieliaineiston kanssa. Me käytimme WWW:tä, joka siihen aikaan todella oli pienempi, mitä nykyään. Mutta se oli myös hyvin uusi ja jännittävä. Siellä oli kaikenlaisia yllättäviä asioita. [David Evans] Joten ensimmäisen kolmen oppitunnin aiheena on rakentaa tämä kieliaineisto. Haluamme rakentaa tämän aineiston hakukonettamme varten käymällä verkkoa läpi, mikä on hakurobotin tehtävä. Hakurobotti on ohjelma, joka kerää verkkosivuilta sisältöä. Ajattele webbisivua selaimessasi, se näyttää tältä. Käytämme udacityn sivustoa esimerkkinä webbisivusta. Siellä on paljon sisältöä, muutamia kuvia ja jonkin verran tekstiä. Kaikki tämä tulee selaimeesi, kun pyydät sivua. Tärkeä asia on, että sivulla on linkkejä. Linkki view toiselle sivulle. Joten meillä on linkki usein kysyttyihin kysymyksiin, ja linkki CS 101 sivulle. Ja myös joitain muita linkkejä. Linkki voi näkyä selaimessasi alleviivattuna, tai ei, riippuen selaimesi asetuksista. Mutta tärkeintä on, että se ohjaa jollekin toiselle sivulle. Ja noilla muilla sivuilla voi myös olla linkkejä, joten meillä on uusi linkki. Se on ehkä nimeni, jota voit seurata kotisivulleni. Ja kaikki sivut mitä löydämme hakurobotillamme löytyvät linkkejä seuraamalla. Ei ole tarpeen löytää jokaista sivua webistä. Jos aloitamme hyvällä siemensivulla, löydämme kuitenkin paljon sivuja. Ja robotti aloittaa yhdeltä sivulta, etsii kaikki linkit sillä sivulla, seuraa niitä muille sivuille ja etsii niillä olevat linkit löytääkseen taas uusia sivuja, joilla on paljon lisää linkkejä. Ja lopulta meillä on suuri kokoelma sivuja webissä. Tämän me haluamme tehdä rakentamalla hakurobotin. Haluamme keksiä jonkin tavan aloittaa siemensivulta, erottaa sivun linkit, seurata noita linkkejä muille sivuille, sitten kerätä linkit näiltä sivuilta, seurata niitä, kerätä tämä kaikki. Tämä kuulostaa isolta tehtävältä. Emme käy kaikkea läpi tällä ensimmäisellä oppitunnilla. Tällä kertaa vain erottelemme yhden linkin. Joten aloitetaan tekstinpätkällä. Siinä on linkki URL:n kera. Haluamme löytää tämän URL:n, jotta voimme pyytää seuraavaa sivua. Toisen oppitunnin tavoite on pystyä jatkamaan tästä. Jos yhdellä sivulla on monta linkkiä, haluat pystyä löytämään ne kaikki. Joten sen teemme toisella oppitunnilla. Keksimme miten voimme jatkaa kaikkien keräämiseksi. Kolmannella tunnilla jatkamme yhdestä sivusta eteenpäin. Toisen oppitunnin jälkeen voimme tulostaa kaikki linkit yhdellä sivulla. Kolmannella keräämme kaikki nämä linkit jatkaaksemme, ja päädymme keräämään, monia, monia sivuja. Joten kolmannen oppitunnin jälkeen olemme rakentaneet hakurobotin. Meillä on keino kieliaineiston rakentamiseksi. Loppujen kolmen oppitunnin aikana tutkimme miten vastata kyselyihin. Joten neljännen tunnin jälkeen mietimme miten antaa hyvä vastaus. Joten jos etsit hakusanalla, haluat vastauksen joka on lista sivuja, joilla tämä hakusana esiintyy. Viidennellä oppitunnilla mietimme miten voimme tehdä tämän laajemmin, jos meillä on iso aineisto. Ja kuudennella tunnilla haluamme, no, emme halua vain listan, vaan haluamme parhaan vastauksen. Joten meidän pitää miettiä miten voimme järjestää kaikki sivut, joilla hakusana esiintyy. Edistämme nyt vähän tässä, koska kaikki mitä teemme tällä tunnilla, on miettiä miten saamme erotettua yhden linkin sivulta. Kaiken lopuksi rakentamamme hakukone tulee olemaan toimiva. Siinä on kaikki samat osat mitä Googlen kaltaisessa hakukoneessa on. Se ei tule kylläkään olemaan yhtä tehokas kuin Google, koska haluamme pitää asiat yksinkertaisina. Haluamme kirjoittaa vain pienen määrän koodia. Ja meidän pitää muistaa, että päämäärämme ei ole hakukoneen rakentaminen, vaan tietojenkäsittelyn oppiminen rakentamisen ohessa. Ja ohjelmoinnin opettelu, jotta tekemällä oppimamme asiat antavat meille kyvyn ratkaista monia, monia muita ongelmia.