keskiviikko 29. huhtikuuta 2020

Microsoft Tekstin korjaustoiminnot (Microsoft Editor) huvittaa oikoluvullaan

Jokin aika sitten Microsoft julkaisi oikolukuohjelman, joka toimii Chrome- ja Edge-selainten laajennuksena. Suomeksi nimenä on Microsoftin Tekstin korjaustoiminnot. Viime viikonloppuna ohjelma ylitti ainakin somessa uutiskynnyksen, kun muutama twiittaaja kiinnitti huomiota sen web-sivun tekstisisältöön:
"Kieli opin ja kirjoitus virheet..."
Kuvausteksti on vähintäänkin koominen. Ennen Microsoft oli tunnollinen ja esimerkillinen kääntäessään palveluitaan hyvälaatuiselle suomelle (toisin kuin esimerkiksi Apple, jonka käyttöjärjestelmän kieliasu pistää vieläkin silmään), mutta viime aikoina sen verkkoteksteissä on näkynyt surkeaa konekäännöstä. Tähän kohuun Microsoft ilmeisesti reagoi, sillä nyt linkin takaa aukeava teksti on moitteetonta suomea.

Tekstin korjaustoiminnot on kaiketi tarkoitettu toimimaan Wordin web-version kanssa, mutta se toimii myös tavallisena selainlaajennuksena monien nettipalvelujen kanssa. Ei kuitenkaan kaikissa (esim. Google Docs ei toimi). Chrome-selaimessa on oma oikolukuominaisuus, mutta se ei tue suomea.

Tekstin korjaustoiminnot asentuu helposti Googlen Chrome-kaupan kautta osoitteesta https://chrome.google.com/webstore/detail/microsoft-editor/gpaiobkfhnonedkhhfjpmhdalgeoebfa. Käyttö vaatii ilmaisen Microsoft-tilin, laajempien ominaisuuksien käyttöön tarvitaan maksullinen Microsoft 365 -tilaus.

Asetukset tehdään web-sivulta:
Toiminta-asetukset
Synonyymit ei ole oletuksena päällä, mutta kokeilua varten rastitin ruudun. En myöskään estänyt lähettämästä automaattisesti tietoja, vaikka nykyisellään ohjelma saattaakin lähettää Microsoftille luottamuksellisia tekstipätkiäni.

Ainakin Twitterissä tarkistuksesta on aidosti hyötyä, vaikkei se kovin tarkka olekaan. Yhdyssanavirheet menevät läpi heittämällä, mutta osan väärin kirjoitetuista sanoista tarkastus sentään tunnistaa. "Kirjotuksen" menee läpi, mutta niin se menee Wordissäkin, kantasanana on ilmeisesti "kirjoa".

Selkeät kirjoitusvirheet on helppo tunnistaa.
Pilkkuvirheiden oikaisusta voi olla aidosti hyötyä:

Pilkku ennen että-sanaa.
Samoin tarkistus huomasi tahallisesti blogitekstin otsikkoon kirjoitetut kaksi välilyöntiä:

Kaksi välilyöntiä.
Valitettavasti tekstin tarkistus ei näytä toimivan esimerkiksi tätä blogitekstiä kirjoitettaessa, mistä siitä olisi eniten hyötyä. 

maanantai 27. huhtikuuta 2020

Älyjääkaappi raportoi käytöstään

Ostin vuoden 2018 alussa Boschin älyjääkaapin. Älykkääksi sen tekee mobiilisovellus, jonka kautta voi säätää jääkaapin ja pakastimen lämpötilaa, saada hälytykset liian pitkään auki olevasta ovesta sekä mahdollisuus katsoa kahdella kameralla mitä jääkaapissa on. Viimeksi mainittu on näppärä ominaisuus ruokakaupassa. Usein on vaikea muistaa, montako maitotölkkiä kaapissa olikaan. Toisaalta pelkistä kamerakuvista on vaikea nähdä koko sisältöä eikä se tietenkään kerro, onko maidon viimeinen käyttöpäivä mennyt jo umpeen.

Bosch käyttää HomeConnect-tekniikkaa, joka ei ole erityisen avoin. Siihen kuitenkin löytyy IFTTT-rajapinta, jonka kautta jääkaappi pystyy liittymään muihin sovelluksiin. Kirjoitin aiheesta aiemmin.

Koronaviruksen aiheuttaman eristäytymisen vuoksi tuli mieleen katsoa, millaista dataa jääkaappi on vuosien mittaan tuottanut. Rajapinta on toiminut luotettavasti ja kirjannut Google Docsin laskentamalliin lähes 20 000 riviä. Niiden analysointi ei tosin ollut ihan helppoa. Seuraavassa muutama idea, joita voi soveltaa muissakin tehtävissä.

Ensimmäinen työ on saada data Exceliin, sillä Google Docs ei sovellu isojen datamäärien pyörittelyyn. IFTTT oli tuottanut toistakymmentä HomeConnectFridgeLog(n) tiedostoa, missä n oli järjestysnumero. Tiedostot piti ladata omalle levylle, avata Exceliin ja kopioida manuaalisesti peräkkäin samalle laskentamallin sivulle. Otin mukaan vain datan vuoden 2019 alusta, jolloin analysoitavaksi jäi 13 632 riviä dataa.

Tästä analyysi alkaa.
IFTTT kirjoittaa avaukset omassa muodossaan, mikä ei ole suoraan Google Docsin eikä Excelin käyttämä päiväysformaatti. Se vaati melkoisen määrän manuaalista käsittelyä ja joukon tarkkaan suunniteltuja etsi-korvaa-toimintoja ennen kuin päivämäärä sekä tuntiarvo oli saatu poimittua omiin sarakkeisiinsa.

Jos merkkijonon pituus olisi ollut vakio, olisi voinut helposti poimia päivän numeron ja kellonajan. Vaihteleva pituus pakotti kikkailuihin. Tehtävää helpotti se, että pilkku, at ja kaksoispiste olivat kaikki erilaisia erottimia. Samat erottimet eri paikoissa olisivat mutkistaneet prosessia merkittävästi.

Tein ensin etsi-korvaa kuukausien nimille ja vaihdoin ne numeroiksi (January -> 01). Päivän poimiminen osoittautui vaikeimmaksi, se piti tehdä useassa osassa. Perässä oleva pilkku helpotti korvausta ( 1, -> 01,), mutta tällöin piti huomioida myös numeron edessä oleva välilyönti. Ensimmäisellä yrityksellä 31, vaihtui muotoon 301, mikä ei tietenkään ollut tarkoitus.

Kun päivämäärä oli vakiomuotoinen, vuoden poimiminen omaan sarakkeeseen oli helppoa ja koska siinä oli vain kaksi arvoa, ne olisi voinut täyttää ilman funktioitakin.

Kellonaika oli yllättävän visainen ongelma, sillä AM/PM-muunnos ei ollut ihan mekaaninen. Periaatteessa PM tarkoittaa kellonaika +12 h, mutta ensimmäinen tunti puolenpäivän (klo 12:00) jälkeen ei olekaan 0 PM vaan 12 AM.

Lopulta data oli kuitenkin halutussa järjestyksessä Excelissä.

Sarakkeet oikeilla paikoillaan
kkvv-sarake oli tarpeen x-akselin arvoja varten. Näistä olikin sitten jo helppo laatia Pivot-taulukko ja laskea eri kuukausien avausmäärät yhteen.

Jossain tapauksissa on helpompaa siirtää data csv-muodossa ensin Wordiin ja tehdä perusmuokkaus siellä esimerkiksi erotinmerkkejä muuttamalla. Vasta sen jälkeen data palautetaan Exceliin joko tiedostona tai leikepöydän kautta.

Jääkaapin oven avaukset kuukausittain.
Maaliskuun 2020 aiheuttama piikki näkyy selvästi. Sen kohdalla 1160 avausta ovat 31 prosenttia suuremmat kuin maaliskuun 2019 avaukset (885 kertaa). Todellinen nousu on vielä suurempi, sillä etätyöpakko alkoi vasta kuun puolivälissä.

Kun data oli kerran olemassa, sitä oli helppo pyöritellä. Toinen grafiikka näyttää avaukset kellonajan (tunti) mukaan:

Jääkaapin oven avaukset tunneittain.
Ei ole mitenkään yllättävää, että kuvaajan muoto täsmää esimerkiksi mobiilidatan hitauteen, joskin huippu osuu pari tuntia aikaisemmaksi.

Tämän jälkeen olisi helppo laskea korrelaatio kuukausittain jääkaapin avauksen ja painon (Withings-älyvaaka) tai askelten (Fitbit-askelmittari) kanssa. Korrelaatio olisi epäilemättä vahva. Tulos voisi kuitenkin olla sen verran masentava, että jääköön analyysi tähän.

Jääkaapin dataesimerkki on muistutus siitä, miten dataa syntyy nykyään kaikkialla, ja millaisia yllättäviäkin laskelmia sen perusteella voidaan tehdä.