Kan computere lære at forstå menneskesprog?
På trods af store fremskridt inden for machine learning, er det stadig en stor udfordring at få computere til at forstå sprog. Daniel Varab og hans to specialemakkere på Softwareudvikling lærte et computerprogram at finde modsigelser i tekster – en teknologi, som måske på sigt kan hjælpe os med at holde styr på politikernes udtalelser og selvmodsigelser i loven.
Institut for DatalogiUddannelsealgoritmerkunstig intelligensITU speciale
Skrevet 13. december 2017 08:21 af Vibeke Arildsen
Hvad handlede jeres speciale om?
Inspireret af præsidentvalget i USA tænkte vi, at kunne være sjovt, hvis et computerprogram automatisk kunne finde selvmodsigelser i de ting, politikerne siger i valgkampen. Fx udtalte Donald Trump i 1999:
“Look, I’m very pro-choice. I hate the concept of abortion. I hate it. I hate everything it stands for. I cringe when I listen to people debating the subject, but you still—I just believe in choice.”
I august 2015 sagde han derimod: “I am very, very proud to say that I’m pro-life.”
Sådan nogle eksempler kunne det være fedt at få computeren til at hjælpe med at finde.
Derfor kastede vi os over Natural Language Processing (sprogteknologi på dansk), et felt, der hedder som handler om at få computere til at forstå det menneskelige sprog. Sprogteknologi kender vi for eksempel fra Siri på iPhonen, Google Translate og stavekontrollen i Word. Det bliver også brugt til at analysere, om tekster er positivt eller negativt ladede.
Mere præcist arbejdede vi med contradiction detection, det vil sige en metode til at få computere til at vurdere, om to sætninger modsiger hinanden.
Hvordan lærer man en computer finde modsigelser?
Det gør man ved at fodre den med en hel masse eksempler på sætningspar, der modsiger hinanden, og sætningspar, der ikke gør. Vi trænede en machine learning-algoritme med et datasæt fra Stanford University med 500.000 sætningspar og testede den derefter på sætninger, den aldrig havde set før.
Vi fandt ud af, at modellen klarede sig bedst, når vi gav den information om, hvordan lingvister definerer en modsigelse. Fx at to sætninger sandsynligvis modsiger hinanden, hvis de indeholder antonymer. Der er stor hype om, at machine learning-algoritmer selv bare finder mønstre i information, men i praksis kommer man meget længere, hvis man hjælper dem på vej.
I sidste ende kunne vores model med 86 procents nøjagtighed vurdere, om to sætninger modsagde hinanden. Sjovt nok kunne kun 87 procent af en kontrolgruppe af mennesker blive enige om de samme sætninger.
Sprog handler i høj grad om fortolkning, og det er en af årsagerne til, at det er så svært at lære computere at forstå det.
Daniel Varab, cand. IT. i Softwareudvikling
Sprog handler i høj grad om fortolkning, og det er en af årsagerne til, at det er så svært at lære computere at forstå det.
Hvad kan vi bruge det til?
Der er en enorm mængde information derude, og det er umuligt for mennesker at have et overblik over alt, hvad der bliver sagt og skrevet af fx medier og politikere.
Det ville være nyttigt at have et redskab, som automatisk kunne finde modsigelser fx mellem hvad en politiker sagde for to måneder siden, og hvad han siger i dag. Et sådant værktøj kunne måske også bruges til at opdage selvmodsigelser i lovtekster eller spotte fake news.
Der er mange spændende perspektiver, men der er stadig et stykke vej igen, før computernes sprogforståelse er veludviklet nok.
Vibeke Arildsen, presserådgiver, telefon 2555 0447, email viar@itu.dk