Robotti aloitti otsikkotehtailun - poliisi vastasi kumiluodeilla

Botsikot on fiktiivisiä uutisotsikoita luova verkkopalvelu. Palvelussa on lista luoduista otsikoista, joista hauskimpia käyttäjät voivat tykätä eli "peukuttaa". Sivustoon liittyy myös olennaisesti Twitter-botti @Botsikot, joka tweettaa automaattisesti eniten peukutetut botsikot. Parhaimmillaan Botsikot ovat hauskoja, ajankohtaisia ja jopa sarkastisia tai kantaaottavia.

Botsikot

Idea Botsikoihin lähti Hacker News-palstalle lähetetystä sivusta joka generoi uusia otsikoita vanhojen Hacker News otsikoiden perusteella. Sivulle on linkitetty myös python-koodi, jolla otsikot on luotu. Otsikot luodaan lähdemateriaalin pohjalta hyödyntäen Markovin ketjuja. Käytännössä koodi laskee lähdemateriaalin perusteella tilastollisesti millä todennäköisyydellä mitkäkin sanat esiintyvät peräkkäin lauseessa. Tämän jälkeen koodi arpoo aiemmin laskettuja todennäköisyyksiä käyttäen uusia lauseita. Lopputuloksena syntyy siis lähdemateriaalissa esiintyneiden lauseiden yhdistelmiä. Markovin ketjut tuottavat useimmiten kieliopillisesti oikeita lauseita myös suomenkielellä, koska ne perustuvat sanojen tilastolliseen esiintymiseen eivätkä kielioppiin. Botsikot luodaan ainakin toistaiseksi myös tällä samalla Python scriptillä.

Koodin lisäksi otsikoiden luontiin tarvitaan myös lähdeaineistoksi kymmeniä tuhansia otsikoita. Mitä enemmän lähdeaineistoa on sitä alkuperäisimmältä luodut otsikot kuulostavat. Ylellä luodaan tuhansia uutisotsikoita joka viikko, mutta pelkästään Ylen otsikoita käytettäessä otsikoita täytyisi valita lähdeaineistoon hyvin pitkältä ajalta, jotta aineistoa saadaan tarpeeksi. Botsikot käyttääkin lähdeaineistona myös muiden suomalaisten verkkojulkaisujen otsikoita, jotka kerätään verkkosivujen RSS-syötteistä.

Botsikot eivät käytä lähdeaineistonaan kaikkia löydettyjä uutisia. Jokaisen löydetyn uutisen sosiaalisen median jakomäärät tarkistetaan tasaisin väliajoin ja lähdeaineistoksi kelpuutetaan vain artikkelit jotka ovat saaneet enemmän kuin yhden jaon Facebookissa, Twitterissä ja LinkedInissä yhteensä. Tällä tavoitellaan sitä että lähdeaineistona käytetään otsikoita joiden aiheistä Botsikoiden lukijat ovat todennäköisesti kuulleet. Lisäksi lähdeaineistona käytetään vain viimeisen kolmenkymmenen päivän aikana luotuja otsikoita botsikoiden aiheiden tuoreuden varmistamiseksi. 

Botsikoiden luontikoodin ja lähdeaineiston ohella palvelun ydin koostuu käyttöliittymästä, jossa botsikoita peukutetaan. Käyttöliittymä koostuu kolmesta osasta, joista yksi keskittyy kaikkien aikojen parhaimpien botsikoiden esittelyyn ja toinen viimeisen 24 tunnin sisällä luotujen botsikoiden esittelyyn. Etusivu listaa kaikki alle viikon vanhat botsikot, joita ei @Botsikot ei ole vielä tweetannut. Etusivu on siis lista botsikoista jotka @Botsikot tweettaa seuraavaksi.

Parhaat Botsikot

Idea Botsikoihin lähti siis muiden kirjoittamasta ja julkisesti jakamasta koodista, joka pystyi sellaisenaan hyödyntämään Ylellä jo olemassaolevaa suomenkielistä lähdeaineistoa. Botsikoiden ensimmäisen version lähdeaineistona toimi tietokannasta poimitun 10 000 sosiaalisessa mediassa jaetuimman uutisotikon lista, jota käyttäen manuaalisesti luotiin sata ensimmäistä botsikkoa. Ideat tweettibotista sekä peukutuskäyttöliittymästä syntyivät naureskellessamme näille ensimmäisille Botsikoille. Nämä ensimmäiset botsikot ovat jopa hauskempia kuin nykyisessä käyttöliittymässä näkyvät, koska lähdeaineisto on kerätty pidemmältä ajanjaksolta ja täten botsikoihin yhdistellyt asiat liittyvät harvemmin toisiinsa. Markovin ketjujen huumoriarvo kiteytyy loistavasti näihin kahteen esimerkkiin: "ISON-komeetta hipoi aurinkoa - vain twerkkaus puuttui" ja "Maa järisi kuusamossa - kyydissä kolme nuorta."

Käyttöliittymä ja Twitter-botti luotiin kolmen päivän aikana muun työn ohessa, jonka jälkeen linkki käyttöliittymään laitettiin jakoon Twitterissä. Botsikoihin tutustui ensimmäisen päivän aikana noin 2500 ihmistä ja botille kertyi reilut sata seuraajaa. Tällä hetkellä suurin osa botin seuraajista on teknologian edelläkävijöitä ja toimittajia, mutta voisikohan Botsikot kiinnostaa myös suurempaa yleisiöä? Ainakin Mikko Hyppönen ja Suomen UNICEF ry ovat kiinnostuneita.

Nyt kun Botsikoiden perustoiminnallisuudet ovat valmiit ja alkuperäinen visio on toteutettu on aikaa miettiä miten Botsikoita voisi kehittää tai hyödyntää johonkin muuhun tarkoitukseen. Botsikoiden seuraava kehityssuunta on vielä avoin, mutta ainakin sessiopohjainen käyttäjätunnistus tullaan vaihtamaan Ylen kaikki palvelut kattavaan käyttäjätunnusjärjestelmään. Myös Botsikon luontiin käytettävää koodia voisi parantaa monin tavoin. Ideointia on myös tehty uutistekstien sekä ingressien koneelliseksi luomiseksi, uutiskuvien automaattiseksi lisäämiseksi Ylen arkistoista tai joukkoistamalla. Onko sinulla ideoita miten Botsikoita voisi kehittää?

Mikäli sinulla on ainutlaatuista tekstiä jonka pohjalta haluat generoida uusia "Botsikoita" on Botsikoiden koodi on vapaasti käytettävissäsi ja saatavilla GitHubissa. Koodi sisältä tweettibotin, peukutuskäyttöliittymän ja laudeiden luontikoodin. Lähdeaineiston keräys ei ole kuulu tähän projektiin, mutta lähdeaineistona pystyy periaatteessa käyttämään mitä tahansa tekstiä raamatusta liikennetiedotteisiin. 

 

3 kommenttia

Ensimmäinen idea: botsikoissa näkyy kahdenlaisia ajatusviivoja, sekä se "oikea" pitkä – että lyhyt miinusmerkki. Nämä (ja mahdolliset mdashitkin) kannattaisi preprosessoida yhtenäisiksi ennen markovin ketjuiksi viemistä, koska ne samaa asiaa tarkoittavat.

Hyödyllistä preprosessointia on myös "vinojen" lainausmerkkien ” muuttaminen suoriksi eli ", tosin botsikoita selatessa näyttäisi siltä, että tämä jo tehdään. Ensimmäisissä sadassa botsikossa oli erilaisia lainausmerkkejä sekaisin.

Toinen idea: nyt botsikoissa näkyy otsikoita, joissa on vain yksi lainausmerkki. Nämä voisi postprosessoida kuntoon seuraavasti:
- mikäli yksittäinen lainausmerkki on viimeisenä merkkinä, poistetaan se
- muutoin lisätään lainausmerkki botsikon viimeiseksi merkiksi

Nämä kaikki voisi tehdä esim titles.py:ssä, tai sitten preprosessointi jollain muulla tavalla lähdeotsikoita kerätessä.

Juissi kirjoitti:

– – Hyödyllistä preprosessointia on myös "vinojen" lainausmerkkien ” muuttaminen suoriksi eli " – –

Suomen kielessä kaarevat lainausmerkit (”) ovat juuri ne, joita pitäisi käyttää. Pitäisi siis tehdä juuri toisinpäin, eli suorat (") lainausmerkit muutettaisiin kaareviksi.

Kiitos kommenteista ja hyvistä parannusideoista.

Lainausmerkkien ja väliviivojen yhdenmukaistaminen olisi helppo tapa parantaa botsikoiden laatua. Myös puuttuvien lainausmerkkien täydentäminen olisi syytä lisätä.

Nämä parannusideat ovat siis ehdottomasti todo-listalla. Nämä tai mitkä tahansa muut parannukset voi myös kuka tahansa tehdä koodiin ja laittaa pull requestin GitHubiin mikäli innostusta löytyy.

Kehitys kehittyy - kokeile ja kommentoi yle.fi:tä

Tässä ryhmäblogissa yle.fi:n tekijät kertovat tulevista verkkopalveluista sekä valottavat ajatuksiaan suunnitelmien takaa.

Blogiarkisto