Jag har tidigare skrivit om det spännande projektet med att skapa en byråkrat som ska vara en AI.
Den tekniska utvecklingen har centrerats runt NLP (natural language processing, *inte* neuro-linguistic programming...) och öppna data.
Svenskan är ett ganska missgynnat språk när det gäller deep learning-teknik, men har en ganska lång tradition av datalingvistik. En del deep learning-program är språkoberoende och går att köra på svenska utan problem. Det första jag körde var detta och det var spännande att få ut texter som var som en narrspegel av de SOU-texter som jag matade in. Efter den inledande entusiasmen visade det sig vara svårt att komma vidare. SOUerna hade en massa problem med konstiga tecken och sidmarkeringar etc som man skulle behövt ta bort. Det bestående intrycket blev några fraser och ord, som "Havs- och verkligverket", en ny imaginär myndighet, samt "krediträttspsyko" som är ett ord som man aldrig skulle hitta i en utredning, men som var som sprunget ur stämningen i de byråkratiska texterna.
Jag gjorde en del försök att tvätta texterna och få bort något som deep learning-motorn kunde arbeta bättre med, som detta men det var svårt att komma vidare. Det var svårt att skriva reguljära uttryck (regex), alltså avancerade sökmönster, som behövs för att rensa texten, för den sortens texter. Vad som fanns i SOU-filerna varierade också väldigt mycket mellan årtiondena, och i de tidiga texterna var det väldigt mycket felaktiga ord från textigenkänningen (OCR).
En sak som jag velat jobba med var hur olika de genererade texterna skulle ha blivit om man baserade dem på ett äldre material, säg 1930-tal, eller ett av de senare decennierna. SOU är ett fascinerande textmaterial.
I arbetet med SOU-texterna byggde jag vidare på det som gjorts av bland andra Christopher Kullenberg och Peter Krantz, bland annat inom ramen för SOUhack på Kungliga biblioteket 2015.
Christopher Kullenberg har skrivit lite mer om sitt arbete med SOU-texterna.
Den här grenen av projektet avslutades med att jag satte upp en tjänst byggd med Python Flask och Cloud foundry på IBMs Bluemix-plattform.
Så här kan det se ut. Jag har inte gjort någon layout på sidan, utan bara skapat en lättanvänd funktionalitet. När man börjar kan man välja textmängd, och jag har tränat en modell på SOU-text, en på KG Hammars text om Dag Hammarskjöld, och en på båda texterna. När man väl har tränat modellen (vilket tar lång tid) tar det bara några sekunder att köra modellen och få fram genererade texter. I det här fallet körs modellen på IBMs servrar, men man skulle utan större problem kunna ladda ner hela modellen till en telefon och köra genereringen där.
Utanför det aktuella projektet har jag arbetat med AI och machine learning på olika plan. Jag har bland annat gjort reklamfilm för Huaweis första AI-telefon, och varit bedömare för Vinnovas utlysning om AI och öppna data-labb. Ett annat spår har varit att förklara den nya AI-tekniken från grunden, och där har jag bland annat gjort den här genomgången.
Där går jag igenom de allra mest basala sakerna man gör med text i deep learning. De flesta arbetar sen inte med den enkla nivån, men för att förstå hur man går över från ord till något som deep learning-systemet kan hantera så är detta grundläggande.
När jag tyckte att jag inte kom vidare med de första NLP-verktygen försökte jag andra språkrelaterade bibliotek för att se om de hade bättre stöd för svenska. Spa.cy var ett av dem, och det testade jag här.
Det var dock väldigt svårt att komma vidare, för det fanns ingen modell för svenska som man kunde använda. Då köpte jag en modell här.
Tyvärr var den väldigt ofullständig, och när jag väl hade fått den fullständiga modellen visade det sig att den inte fungerade korrekt. Eftersom de här modellerna är omöjliga att granska blir det också svårt att ifrågasätta dem, eller hävda att de är felaktiga. Det finns ännu ingen uppsättning tester som man skulle kunna köra automatiserat och standardiserat, utan man behöver skriva sina egna tester. Det beror förstås på att den här tekniken ännu är så omogen.
Förutom SOU-data har jag gjort några försök med data från Arbetsförmedlingen. Ett intressant spår, men som inte ännu kommit längre än till att sätta upp kod för att kunna hämta yrken och platsannonser.
Yrken och yrkesbeskrivningar finns här, och platsannonser hämtar man här, per län.
Parallellt med att söka efter olika textmassor som kunde vara relevanta för olika delar av Kims personlighet har jag också letat efter olika tekniska ramverk där Kim skulle kunna materialiseras. Det mest lovande var en Twitter-bott, och det fanns en i IBMs Bluemix-miljö, som verkade lätt att integrera med IBMs övriga tjänster, exempelvis Watson-plattformen. IBM har lovat stöd för svenska, men det har skjutits upp hela tiden. Dessutom visade det sig finnas en allvarlig bugg i Node Red, det verktyg där man skapar Twitter-bottarna till följd av att de inte hade uppdaterat ramverket efter att Twitter dubblade maxlängden för tweets, för ett par år sedan. Ramverket gick i princip att köra, men så fort det kom en tweet som överskred den gamla maxlängden så kapades texten. Jag anmälde buggen, men inget hände.
/Simon
Recent Comments