Festlig fredag: Her er Version2’s længste ord gennem tiderne

5. april 2019 kl. 13:377
Festlig fredag: Her er Version2’s længste ord gennem tiderne
Illustration: Version2.
Forretningsstandardiseringsprogram, nummerpladegenkendelseskameraer, incidenthåndteringsapplikationer, virtualiseringssoftwareleverandører, fuldtidslægesekretærstillinger. Se de længste ord i Version2's artikler.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Version2 har, som visse læsere nok er bekendt med, udviklet en machine learning-algoritme, der kan gætte emneord til nye artikler. I sidste uge tog vi de indledende skridt til at putte vores program på en server i skyen, og helst uden at det skal koste noget.

Man kan nemlig få sig en gratis server i skyen, hvis man kan klare sig for lidt: én gigabyte hukommelse. Det er ikke meget at rutte med. Og jeg er nærig og vil ikke svinge betalingskortet i Amazons sky-butik.

Det centrale punkt i programmet er tabeller over estimater, som er en slags afledte ordhyppigheder. Der skal være ét kommatal for hvert ord, og dem er der mange af - omkring 150.000 unikke stykker i samtlige artikler i Version2’s levetid.

Der er skal laves to tabeller for hvert emneord. Det hele fylder en del, så det ville være godt at skære lidt ned på størrelsen. I første omgang tænker jeg at skabe et indeks over ord, så tabellerne kun skal indeholde nummeret på ordet i et array.

Artiklen fortsætter efter annoncen

Men det viser sig, at overlappet af ord i de forskellige tabeller er meget mindre, end hvad jeg forestillede mig: Kun omkring 1.000 stykker. Der skal altså andre boller på suppen, hvis luften skal trykkes ud af tabellerne.

Festlig fredag: Masser af hash

Måske kan man bytte hukommelse for cpu-anvendelse? Den nemmeste fremgangsmåde er hashing - altså at erstatte ordet med et slags tilfældigt serienummer, der bare er et almindeligt 32-bit heltal.

Når et ord-estimat skal findes, udregnes tallet ud fra tegnene i ordet, som så benyttes som nøgle i tabellen. Det tager ikke cpu’en lang tid, og der er ikke så mange ord i en artikel, der skal testes, så det går nok an, i forhold til ydelsen.

Men hjælper det på mit problem? Mit program er skrevet til Java 11, og her benyttes én byte pr. tegn, hvis strengen er i Latin-1-tegnsættet, altså Ascii plus det løse, og to bytes, hvis strengen indeholder Unicode-tegn uden for dette område. En 32-bit int fylder altid fire bytes. Vores algoritme har renset artiklerne ved kun at kigge på tegn fra a til å, så det giver altså én byte pr. tegn.

Så hvor lange er vores ord? Hvis der er mange ord på tre tegn eller mindre, giver ideen ikke nødvendigvis bonus. Jeg bliver nødt til at tælle ordlængder, så jeg udregne den præcise besparelse - ellers er det næppe værd at spilde kræfter på.

Men helledusseda, vi kan godt lide lange ord på Version2, skal jeg lige love for:

Jeg opnår en reduktion til 37 procent af udgangspunktet, ved at bruge hashing. Det skulle vel være argument nok for at bruge en times tid eller to på at skrive noget kode, der kan skabe de hashede tabeller.

Der er omkring 60 kollisioner - altså ens hashværdier for to forskellige ord. Det fylder så lidt i forhold til det samlede billede, at jeg snildt kan have dem i en lille tabel ved siden af.

Jeg kunne også gå amok og bruge et 24-bit hash - ved at tage mit 32-bit hash og benytte modulus-operationen

  1. hash32 % 16777213

hvor tallet til højre er det sidste primtal før 2^24, som traditionen foreskriver. Det skulle give en reduktion til 28 procent og kræver lidt bit-fedteri, da Java ikke har nogen 24-bit taltype. Kollisionerne stiger til 250 stykker, men det er stadig kun en dråbe i forhold til besparelsen. Meget godt at have i baghånden, hvis det skulle være.

I skal da også have et histogram, folkens - det kommer her. Alle kan lide histogrammer.

Og endelig, som lovet: Listen over de længste ord, på 30 bogstaver eller mere. Don’t try this at home, som de siger på tv. Og måske kan det bruges som et afskrækkende eksempel for børn og på journalistuddannelserne.

Døm os ikke for hårdt, kære læsere, og god fredag.

Forretningsstandardiseringsprogram, informationssikkerhedsstrategien, billedbehandlingsfunktionalitet, standardiseringsorganisationen, borgerrettighedsorganisationer, borgerrettighedsorganisationen, forretningsservicevirksomheder, kommunikationsrådgivningsfirmaet, patientsikkerhedsmyndighederne, nummerpladegenkenddelseskameraer, softwaredistribueringssystemer, forretningsudviklingskonsulent, sundhedsstandardorganisationen, menneskerettighedskonventionens, informationssikkerhedsstrategi, informationssikerhedsdirektivet, brugertilfredshedsundersøgelse, projektinitieringsdokumentation, sikkerhedsannonceringstjeneste, informationssikkerhedsanalytiker, internetforbindelsesoplysninger, kundetilfredshedsundersøgelser, incidenthåndteringsapplikationer, projektinitieringsdokumentationen, patienttilfredshedsundersøgelser, menneskerettighedsorganisationen, menneskerettighedsorganisationer, systemintegrationsfunktionalitet, menneskerettighedskonventionen, antimisbrugsforskningsafdeling, standardiseringsorganisationerne, ansigtsgenkendelsesteknologien, ansigtsgenkendelsesteknologier, forretningsudviklingsansvarlig, internetrettighedsorganisationen, netværksrådgivningsvirksomheden, informationssikkerhedsniveauet, kommunalbestyrelsesmedlemmerne, menneskerettighedssorganisation, netværksledelsessoftwareprodukter, nummerpladeekspeditionskontorer, verdenssundshedsorganisationen, parrallelprogrammeringsbiblioteker, sikkerhedsinformationsteknologi, informationssikkerhedsreglerne, telekommunikationsprogrammeringsprog, informationssikkerhedsarkitektur, brugertilfredshedsundersøgelser, beslutningsstøttefunktionalitet, datacenteradministrationsapplikationen, virtualiseringssoftwareleverandører, professionsbacheloruddannelser, webstandardiseringsorganisationer, erhvervsidentitetadministration, videostabiliseringsteknologier, applikationsudviklingskonsulenter, transportsikkerhedsadministration, multimediedesigneruddannelserne, teknologiforståelsesfagligheden, databeskyttelsesbekendtgørelse, informationsteknologistuderende, serveradministrationssoftwaren, fuldtidslægesekretærstillinger, personaleadministrationssystemet, organisationsudviklingsprogram, informationssikkerhedsdirektiv, studieadministrationssystemerne, applikationsmonitoreringssoftware, cyberefterefterretningsselskab, virksomhedsressourceplanlægning, strømbesparelsesfunktionalitet, forbrugerinteresseorganisationerne, informationssikkerhedsmedarbejder, menneskerettighedsorganisation, lægesekretærfuldtidsstillinger, gevinstrealiseringsaktiviteter, internetregisterorganisationer, eksamensovervågningsprogrammet, kommunikationsovervågningskommissæren, menneskerettighedserklæringens, systemadministratorrettigheder, indholdsgenkendelsesalgoritmer.

7 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
7
9. april 2019 kl. 09:50

En metode til hurtigt at finde tekster, der ligner hinanden er minhashalgoritmen. Den går groft sagt ud på, at man hasher alle ord i en tekst med f.eks. 20 forskellige hashmetoder (eller bare forskellige parametre til en metode), og for hver metode gemmer man den mindste hashkode i teksten. Når man skal sammenligne forskellige tekster, tæller man hvor mange af de 20 minhashkoder, der er ens. Det giver et overraskende godt mål for lighed mellem tekster.

Er det noget, der kunne bruges til at finde relaterede artikler på V2?

5
8. april 2019 kl. 12:57

..Familieopsporingsalgoritmeforvaltningsmyndigheden

Der vil jeg arbejde! Tænk at få lov til at forvalte en algoritme.

4
7. april 2019 kl. 11:00

Det er sjovt. Må man finde på nogle selv? Helt uden server i skyen?

Jeg har parafraseret lidt over ugen, der gik. Nyheder og hvad vi har talt om og sådan.

Tirsdag 1. behandlede folketinget lovforslaget om bananrepublikutryghedsskaberforsvarsværnet, som CFCS/FE vil til at stå for. Loven pålægger civilsamfundet at tilslutte sig statslige, militære cyberusikkerhedsovervågningsforpligtelser, som ingen bakker op om. CFCS/FE vil ligeledes tilbyde virksomheder og myndigheder frivillig efterretningstjenesteserviceydelsesforebyggelse, vi gør klogt i at afslå, udtaler formand for Cyberetisk Råd.https://www.version2.dk/artikel/ny-cfcs-lov-nu-lagt-frem-virksomheder-kan-blive-underkastet-tvungen-overvaagninghttps://www.version2.dk/artikel/cfcs-svarer-paa-lov-bekymringer-intet-paabud-adgang-stationaere-data-1087797

Vi har talt, og taler, meget om sundhedsdatahttps://www.version2.dk/artikel/forsker-vi-har-meget-liberal-adgang-borgernes-sundhedsdata-1087745
Også om, hvorvidt myndighederne manipulerer eller misinformerer, når det gælder adgangen til vores sundhedsdata. Anvender en stråmandsordvalgsargumentationsstrategi imod hvilken, der anbefales profylaktisk behandling med sundhedsministeriummyteskabervaccinen.https://www.version2.dk/artikel/forskere-sundhedsminister-afsporer-debat-borgerdata-1087772https://sum.dk/Aktuelt/Nyheder/Medicin/2017/December/Myter-og-sandheder-om-NGC.aspx

Familieopsporingsalgoritmeforvaltningsmyndigheden i Gladsaxe er atter aktuelhttps://www.version2.dk/artikel/kommunalpolitikere-efterspoerger-etiske-regler-overvaagning-gladsaxe-1087838

Og mange har i går, lørdag, deltaget i de landsdækkende demonstrationer imod lave normeringer i børnetrivselsuegnethedsunderbemandingstilbuddene i landets daginstitutionerhttps://www.dr.dk/nyheder/indland/demonstrerer-flere-paedagoger-det-giver-mig-ondt-i-mavenhttps://politiken.dk/indland/art7128667/%C2%BBHvis-p%C3%A6dagoger-bare-skal-lave-brandslukning-bliver-institutionerne-en-opmagasinering-af-vores-b%C3%B8rn%C2%AB

En enkelt nyhed fra petitjournalistikken også, da den er IT-relateret, omhandler en af de mest succesfulde e-handels-startups nogensinde og fordi det er en rekordsumsægteskabsbrudsverdenssensationhttps://politiken.dk/kultur/medier/art7127052/Hun-f%C3%A5r-239-milliarder-kroner

Samt et dødsfald: Nodeskriversprintersømandskomponistjazzdirigentvirtuosen blev 84 år.https://www.dr.dk/nyheder/kultur/komponist-og-kapelmester-ib-glindemann-er-doed

Og – til slut – ugens mest omtalte allevegne: De sort-hvide, super nuttede pelsdyr, også kendt som Zoos nye udlejningsbambusgnaskerdiplomatattraktion.https://www.dr.dk/tv/se/pandaerne-5/pandaerne-6/pandaerne-kommer-diplomater-i-pels-1-3https://www.dr.dk/nyheder/tema/pandaer-til-danmark

Det var ugerevyen. Bemærk bogstavrimene :)

3
6. april 2019 kl. 12:15

Dansk er normalt betragtet som et isolerende sprog, ligesom Engelsk og Kinesisk, men det er ikke nær så isolerende som Engelsk, og slet ikke ligeså isolerende som Kinesisk.

Særligt danske navneord kan udvides nærmest uendeligt, og det er sådan set det vi gør, når vi opfinder de her latterligt lange navneord, som artiklen hentyder til.

Og man kan faktisk blive ved: Skrivemaskinefarvebåndsudskiftningsekspertaspirant Programmeringsparadigmeekspertuddannelseslærermesterrekrutteringskonsulent.

Osv.

Mange af dem er naturligvis nonsens, men det er faktisk en integral del af det danske sprog, og det er tilsyneladende ikke noget som version2's programmører har tænkt over, da de designede siden; siden kan faktisk gå helt i stykker hvis du skriver et tilstrækkeligt langt dansk ord i kommentarinputfeltet. :p

2
Journalist -
5. april 2019 kl. 17:50
Journalist

Hej Jørgen,

Ordene for oven er ikke emneord, men artiklernes tekster.

Men i mange NLP-algoritmer laver man grammatisk normalisering af korpus, som du nævner, eller stemming, som det kaldes i jargonen, men i Naive Bayes, som er den vi anvender, benyttes det som regel ikke, og fagkunskaben mener ligefrem, at det kan give ringere resultater end ved stemming. Og så krævede det også noget mere kode i sin tid - jeg sprang over, hvor gærdet var lavest, om man så må sige.

Mvh Tania/V2

1
5. april 2019 kl. 17:39

Yderligere reduktion kunne opnås ved at normalisere bøjninger.

For eksempel dækker ordene menneskerettighedsorganisation, menneskerettighedsorganisationen og menneskerettighedsorganisationer over samme begreb.

De bør alligevel regnes for ét emneord, så man kan med fordel nøjes med at gemme roden af ordet.

En for simpel algoritme vil naturligvis tro, at f.x. mest og mester er samme ord, men det er muligvis acceptabelt i praksis