Av Simon Winter: Inom ramen för projektet Kim Svensson, AI håller jag på att utforska olika tekniska lösningar. Tekniken ska vara sådan att den både bygger på modern AI/machine learning och producerar texter som är relevant för en byråkrat. Ett av de första verktygen jag har testat heter Ketchum och är en rätt liten snurra för att visa ordassociationer från Fasttext-projektet.
Först lite om Fasttext, som är ett projekt från Facebook för textklassificering och vektorrepresentation av texter.
Jag ska skriva ett annat inlägg om vektorrepresentationer. Kortfattat betyder det i det här fallet att man tar varje enskilt ord i den vokabulär som bygger upp texten och ger den en punkt i en flerdimensionell rymd. Genom det sätt man sätter ut punkter kommer ord med liknande betydelse att hamna intill varann. Det här bygger på en hypotes som heter distributional semantics och som går ut på att om man tittar på ords användning så kommer ord med liknande betydelse att användas på liknande sätt. (Det står att Firth stått för att göra hypotesen populär, men den stämmer också bra med det jag förstått av den senare Wittgenstein som säger att ordens användning bestämmer deras betydelse.)
En viktig anmärkning i sammanhanget tycker jag är att det inte finns någon semantisk representation i den här modellen. Det enda som finns är rymden av ord, och var ett ord hamnar bestäms endast av var de andra orden befinner sig.
Nåväl, det som Fasttext-projektet har gjort är bland annat att träna upp ett nätverk på många olika texter. För svenska har man tagit svenska Wikipedia. Att träna ett nätverk betyder i det här fallet att man har bestämt de olika ordens positioner i den multidimensionella rymden. Man har använt sig av en rymd i 300 dimensioner, och den är ju då väldigt svår att visualisera. Om man vill titta på rymden kan man använda tekniker för dimensionsreduktion (som t-SNE) eller så får man utforska rymden på andra sätt.
(tablet) >
Simon Winter
interaktionsdesigner och kognitionsforskare
Inom ramen för projektet Kim Svensson, AI håller jag på att utforska olika tekniska lösningar. Tekniken ska vara sådan att den både bygger på modern AI/machine learning och producerar texter som är relevant för en byråkrat.
Ett av de första verktygen jag har testat heter Ketchum och är en rätt liten snurra för att visa ordassociationer från Fasttext-projektet.
Först lite om Fasttext, som är ett projekt från Facebook för textklassificering och vektorrepresentation av texter.
Jag ska skriva ett annat inlägg om vektorrepresentationer. Kortfattat betyder det i det här fallet att man tar varje enskilt ord i den vokabulär som bygger upp texten och ger den en punkt i en flerdimensionell rymd. Genom det sätt man sätter ut punkter kommer ord med liknande betydelse att hamna intill varann. Det här bygger på en hypotes som heter distributional semantics och som går ut på att om man tittar på ords användning så kommer ord med liknande betydelse att användas på liknande sätt. (Det står att Firth stått för att göra hypotesen populär, men den stämmer också bra med det jag förstått av den senare Wittgenstein som säger att ordens användning bestämmer deras betydelse.)
En viktig anmärkning i sammanhanget tycker jag är att det inte finns någon semantisk representation i den här modellen. Det enda som finns är rymden av ord, och var ett ord hamnar bestäms endast av var de andra orden befinner sig.
Nåväl, det som Fasttext-projektet har gjort är bland annat att träna upp ett nätverk på många olika texter. För svenska har man tagit svenska Wikipedia. Att träna ett nätverk betyder i det här fallet att man har bestämt de olika ordens positioner i den multidimensionella rymden. Man har använt sig av en rymd i 300 dimensioner, och den är ju då väldigt svår att visualisera. Om man vill titta på rymden kan man använda tekniker för dimensionsreduktion (som t-SNE) eller så får man utforska rymden på andra sätt.
Så här kan en liknande rymd se ut i två dimensioner:
Det här är ju bara två dimensioner av 300, så det som ligger nära varann i de här två dimensionerna kan ligga långt ifrån eller närmare i någon annan dimension. Det är väldigt abstrakt med de här dimensionerna, men man får vänja sig vid det. Ju förr man kan se en punkt i många dimensioner framför sig, desto snabbare inser man styrkan (och svagheterna) i modellen.
Det lilla verktyget Ketchum tar de färdigtränade Fasttext-vektorerna och ger ett litet interface där man kan utforska närliggande ord.
Så här kan det se ut:
Det är lätt att verktyget kommer in på något som liknar ordlikhet, snarare än semantiska associationer. Det kan bero på att det först hittar böjningsformer, och att hela historiken spelar roll för hur den fortsätter att leta. Det är spännande att det kan hitta “omutlig” i associationerna till byråkrati.
Med grönsaker känns det som att fungerar ganska bra, liksom billackering:
Det är relativt lätt att sätta upp Ketchum.
Lite teknik: jag installerade beroendena, var tvungen att använda sudo. Jag kör Python 3 så då blir installationen med pip3. Det var något med print(f) som inte fungerade, och jag orkade inte ta reda på vad som var fel, så jag tog helt enkelt bort f-et, så gick det bra. Filen jag laddade ner från Fasttext var inte zippad, men Ketchum förutsatte det… Det slutade med att jag zippade den så att programmet fick tugga sig igenom på rätt sätt. När jag körde igång tog det flera timmar, men sen satte den upp en lokal server. När jag startade systemet andra gången gick det igång genast. Klicka inte på länken till vektorerna, den är en väldigt stor fil…
– – – –
Artikeln är tidigare publicerad som en bloggpost på tankesmedjan Infontology där Simon Winter är verksam som analytiker.
❯ Till bloggposten