maanantai 14. marraskuuta 2016

Learn yourself a new language like a computational linguist

Introduction: Deutschland, 10 months in

When you move into a country that doesn't speak your language natively in every day kind of manner, the most important thing is to learn it. Take it from academic whose most friends are constantly moving, because that's how you post-doc, no matter how fluent the locals might be in English in general, it makes a huge difference to your long-term life quality to be fluent enough, to understand what others are speaking and what signs and texts are saying. Of course, if you, like most of us, are only allowed to stay in one country few years at a time ("researcher mobility"), it may not be worth the effort, but on the other hand, learning new stuff is fun and keeps your mind working. Even though Indo-European languages are not very high in my academic interest, learning German is fun and enlightening at times.



So, I’ve been here in Hamburg for nearly a year now, my language skills are still quite basic, but I did manage to buy a bed from a retail worker refusing to speak English last weekend, so I am getting somewhere. I haven’t done any language classes, when you are a linguist by education, they can often be a bit slow and as you all know, school grammars are even wrong at times. Instead I have a daily routine, just to ensure minimal exposure to the language. It's very simple and useful, so I'll give it a a step-by-step-list:


  1. Duolingo: get 50 points, every day, no shortcuts, cheats or exceptions. 
  2. Radio news, specifically langsam gesprochene Nachrichten from Deutsche Welle's Deutsch lernen website
  3. Rule-based machine translation: formalise all words and grammars you learnt today
That is all.


Duolingo

It may be silly at times, but it's possibly somewhat programmed to give you new words and new grammar concept at regular intervals. Only few criticisms I have for it: of course being non-free non-open source is an issue for me. I wish to make something similar myself in the ”when I have time” time.

News

This is nothing special. Click play, and follow the text while listening, try to understand as well, it shouldn't be too hard if you already read the daily news in English or Finnish, e.g., on Facey book.

RBMT

This is probably the only computational linguist stuff in this blog posting. The super-efficient way to know if what you learnt is true, is to teach computer the same! This is way cool for all sorts of reasons, but let's start from the beginning. So we have a news text from a web site like this:

14.11.2016 – Langsam gesprochene Nachrichten
Trainiere dein Hörverstehen mit den Nachrichten der Deutschen Welle von Montag – als Text und als verständlich gesprochene Audio-Datei.

   00:10
 07:29

Nachrichten von Montag, 14. November 2016 – langsam gesprochen als MP3

Trump macht Parteichef Priebus zu seinem Stabschef:
Der designierte US-Präsident Donald Trump hat den Chef der Republikanischen Partei, Reince Priebus, zum Stabschef im Weißen Haus ernannt.
Der Stabschef ist der zweitwichtigste Mann im Weißen Haus.
Er leitet den Mitarbeiterstab und entscheidet, wer Zugang zum Präsidenten bekommt.
Sein Wahlkampfmanager Steve Bannon werde sein Chefstratege und Berater, teilte Trump weiter mit.
Bannon, konservativer Provokateur und ehemaliger Chef der radikalkonservativen Webseite Breitbart News, hetzt seit Jahren gegen das Establishment der Republikaner.
Priebus kennt den Politikbetrieb in Washington aus dem Effeff.
Er war einer der ersten führenden Republikaner, die ihren Frieden mit dem in der Partei umstrittenen Präsidentschaftskandidaten Trump schlossen.
...

That was turned from web page into sentences by highly sophisticated copy-paste :%s/\. /.^M/g operation. And then you just run it through the great apertium machine translation system, which will promptly tell you: these words are not in your vocabulary yet, these words are not in German dictionary and these little words are not working because of grammar problems. Super. Just look at this debuugging output from apertium:


#Trump<np><sg><nom> tekee puolue-päällikkö/puoluepäällikkö *Priebus luokse  *Stabschef:
 suunniteltu #jenkkipresidentti<n><sg><nom> #Donald<np><ant><m><sg><nom> #Trump<np><sg><ade> on johtajan  Republikaaniset puolueen, *Reince *Priebus, luokse  *Stabschef valkeassa talon nimitetty.
Se *Stabschef on se *zweitwichtigste mies valkeassa talon.
Hän johtaa @Mitarbeiterstab<n><sg><gen> ja päättää, kuka pääsy presidentti saa.
Olla *Wahlkampfmanager #Steve<np><ant><m><sg><nom> *Bannon aikoo olla *Chefstratege ja avustaja, jakaa #Trump<np><sg><nom> enemmän kanssa.
*Bannon, konservatiiviset @Provokateur<n><sg><nom> ja #aiempi<adj><pos><sg><nom> johtaja se *radikalkonservativen verkko-sivu/verkkosivu *Breitbart *News, @hetzen<vblex><actv><pri><p3><sg> kun vuosien/vuotten @Establishment<n><sg><nom> republikaani.
*Priebus tuntee sen *Politikbetrieb Washingtonissa #se<sg><nom> *Effeff.
Hän oli  se ensimmäiset #johtaa<vblex><actv><pri> republikaani, se rauhojen #se<sg><nom> puolueessa #kiistelty<adj><pos><sg><nom> presidentti-ehdokkaan/presidenttiehdokkaan #Trump<np><sg><nom> sulkivat.
This is the status after around half a year development, pretty many things working already. The first thing we want to do is, of course, build our vocabulary. This is easy, apertium is kind of telling us what we know, in this case, the debug character @ will tell us how our vocabulary is lacking!

Hän johtaa @Mitarbeiterstab<n><sg><gen> ja päättää, kuka pääsy presidentti saa.
*Bannon, konservatiiviset @Provokateur<n><sg><nom> ja #aiempi<adj><pos><sg><nom> johtaja se *radikalkonservativen verkko-sivu/verkkosivu *Breitbart *News, @hetzen<vblex><actv><pri><p3><sg> kun vuosien/vuotten @Establishment<n><sg><nom> republikaani.
puhelu poliitikot sanoo *Xi @laut<pr>  valtiolliset TV:n/tv:n-lähettäjä *CCTV, se USA ja #Kiina<np><top><sg><nom> täytyvät @wirtschaftlich<adv> ja myös   alueiden/alueitten edelleen kapea @zusammenarbeiten<vblex><actv><pri>.
#Trump<np><sg><nom> selitetty, hän on #valmiiksi<adv>, yhteis-työ/yhteistyö Washington ja @Peking<np><top><sg><nom>  vahvistaa.
vaali-kampanja/vaalikampanja oli #Trump<np><sg><nom> #Kiina<np><top><sg><nom> kovasti kritisoitu ja määritelty, että @Peking<np><top><sg><nom> valuutat @manipulieren<vblex><actv><pri><p3><sg> ja työn #se<sg><ine> USA varastaa.
Jälkeen  ensimmäiset šokin haluaa Eurooppa #ei<vblex><neg> #Donald<np><ant><m><sg><nom> #Trump<np><sg><nom> odottaa: Se *EU-ulko-ministeri/ulkoministeri painotettu tarkoitukset, @selbstbewusst<adj><pos><sg><nom>   uudet #jenkkipresidentti<n><sg><gen> @zugehen<vblex><actv><pri>.
Silti @mangeln<vblex><actv><pri><p3><sg> se #eurooppalainen<n><pl><gen> @Geschlossenheit<n><sg><nom>: Se *Chefdiplomaten Iso-Britannian, Unkarin ja #Ranska<np><top><sg><gen> puuttuvat iskulla.
vaali-kampanja/vaalikampanja oli hän @wiederholen<vblex><actv><pri><p3><sg> se *Führungsstärke #Venäjä<np><top><sg><ela> presidentti #Vladimir<np><ant><m><sg><nom> #Putin<np><sg><nom> kehuttu, @Rückzug<n><sg><gen> #se<sg><nom> *Atomabkommen #se<sg><nom> Iran julistettu ja se *Beistandsgarantie se NATO jäsenet kysymyksessä asetettu, se #ei<vblex><neg> riittävästi puolustuksessa investoida.
#Kuinka<adv><itg> #se<sg><nom> "*Social *Justice @Index<n><sg><nom> 2016" *hervorgeht, nousi sen osuus   kuluttu vuoden #7,8<num><card><sg><nom> prosentti; 2013 valehteli hän yhä #7,2<num><card><sg><ade> prosentti.
Myös kun se *EU-osavaltiot itse hitaasti jaksoista talouksien ja finanssi-kriisi/finanssikriisi rentouduttu, tulee @Aufschwung<n><sg><nom> #työmarkkina<n><sg><nom> #ei<vblex><neg> ihmisillä päälle, jakaa se *Bertelsmann-yhdistys  *Gütersloh kanssa.
syyt nähdä tekijät opinnon   #kasvaa<vblex><actv><pri> *Niedriglohnsektor ja @Spaltung<n><sg><gen> #työmarkkina<n><pl><gen>  tavallinen ja *atypische muodot @Beschäftigung<n><sg><ela>.
Bulgarian #hallitusjohtaja<n><sg><nom> *Borissow käy asti tappion @Kandidatin<n><pl><gen> takaisin:
Hän aikoo päälle  ensimmäiset @Werktag<n><sg><gen> parlamentin #potkut<n><sg><gen> @einreichen<vblex><actv><pri>, sanoo *Borissow @Sofia<np><top><sg><ine>.
tulokset se *Präsidentenwahl aikoo selvä, että @Regierungskoalition<n><sg><nom> enemmistö enemmän on, perustettu *Borissow päätökset.

A simple grep, and we have a highlighted list of dictionary words in context ready to add to our dictionary! There's not so many, this is after some 6 months of doing the same thing every day, first months you will have to painstakingly add dozens and dozens of words each time, usually relying to dictionary for help, but not today. So let us get to work then!  My setup for dictionary expansion is: gvim on monitor 1, wiktionary (plus duden etc.) on monitor 2. And after some 15 minutes we reach to conclusion (a redacted diff of dix file):

+    <e><p><l>hallituskoalitio<s n="n"/></l><r>Regierungskoalition<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>henkilöstö<s n="n"/></l><r>Mitarbeiterstab<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>jakautuminen<s n="n"/></l><r>Spaltung<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>kandidaatitar<s n="n"/></l><r>Kandidatin<s n="n"/></r>
</p><par n="anyg"/></e>
+    <e><p><l>kasvukausi<s n="n"/></l><r>Aufschwung<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>perustaminen<s n="n"/></l><r>Establishment<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>peräytyminen<s n="n"/></l><r>Rückzug<s n="n"/></r></p>
</r></p><par n="anyg"/></e>
+    <e><p><l>provokaattori<s n="n"/></l><r>Provokateur<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>toimi<s n="n"/></l><r>Beschäftigung<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>työpäivä<s n="n"/></l><r>Werktag<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>virka<s n="n"/></l><r>Beschäftigung<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>yhteisöllisyys<s n="n"/></l><r>Geschlossenheit<s n="n"/></r></p><par n="anyg"/></e>
+    <e><p><l>taloudellisesti<s n="adv"/></l><r>wirtschaftlich<s n="adv"/></r></p></e>
+    <e><p><l>agitoida<s n="vblex"/></l><r>hetzen<s n="vblex"/></r></p></e>
+    <e><p><l>lähestyä<s n="vblex"/></l><r>zugehen<s n="vblex"/></r></p></e>
+    <e><p><l>lähettää<s n="vblex"/></l><r>einreichen<s n="vblex"/></r></p></e>
+    <e><p><l>manipuloida<s n="vblex"/></l><r>manipulieren<s n="vblex"/></r></p></e>
+    <e><p><l>puuttua<s n="vblex"/></l><r>mangeln<s n="vblex"/></r></p></e>
+    <e><p><l>toistaa<s n="vblex"/></l><r>wiederholen<s n="vblex"/></r></p></e>
+    <e><p><l>yhteistyöskennellä<s n="vblex"/></l><r>zusammenarbeiten<s n="vblex"/></r></p></e>
+    <e><p><l>itsevarma<s n="adj"/></l><r>selbstbewusst<s n="adj"/></r></p></e>
+    <e><p><l>mukaan<s n="post"/></l><r>laut<s n="pr"/></r></p></e>

+    <e><i>Peking<s n="np"/></i></e>
+    <e><i>Sofia<s n="np"/></i></e>

In this case we only needed to add 27 words, mostly rare ones as well. Do not get alarmed by some creative translations like kandidaatitar "candidateress" or yhteistyöskennellä "together-work", these will be amended later but these are good fallback placeholders.

Now, this is often as far as my daily routine goes, however, I may write a followup for those odd cases where I learn grammar, as that is also even more interesting. For now, let's just enjoy the results of the world's best state-of-the-art rule-based machine translation from German to Finnish:

#14.11.2016 – Hitaasti puhuttu uutiset
Treenaa *dein *Hörverstehen uutiset saksalaisien aalto maanantaista – tekstinä ja kun ymmärrettävä puhuttu audio-tiedosto.

   #00:10 07:29.

uutiset maanantaista, #14. marras-kuu 2016 – hitaasti puhuttu kun *MP#3

#Trump tekee puolue-päällikkö *Priebus luokse  *Stabschef:
 suunniteltu #jenkkipresidentti #Donald #Trump on johtajan  Republikaaniset puolueen, *Reince *Priebus, luokse  *Stabschef valkeassa talon nimitetty.
Se *Stabschef on se *zweitwichtigste mies valkeassa talon.
Hän johtaa henkilöstön ja päättää, kuka pääsy presidentti saa.
Olla *Wahlkampfmanager #Steve *Bannon aikoo olla *Chefstratege ja avustaja, jakaa #Trump enemmän kanssa.
*Bannon, konservatiiviset provokaattori ja #aiempi johtaja se *radikalkonservativen verkko-sivu *Breitbart *News, agitoi kun vuosien perustaminen republikaani.
*Priebus tuntee sen *Politikbetrieb Washingtonissa #se *Effeff.
Hän oli  se ensimmäiset #johtaa republikaani, se rauhojen #se puolueessa #kiistelty presidentti-ehdokkaan #Trump sulkivat.

*Xi soitettu #Trump:
#Kiina presidentti *Xi *Jinping asettaa myös #se *Wahlerfolg #Donald #Trump  hyvät suhteet #se USA.
puhelu poliitikot sanoo *Xi mukaan  valtiolliset TV:n-lähettäjä *CCTV, se USA ja #Kiina täytyvät taloudellisesti ja myös #toinen alueiden edelleen kapea #yhteistyöskennellä.
#Trump selitetty, hän on #valmiiksi, yhteis-työ Washington ja Peking  vahvistaa.
 sovittu siksi, kapea kontaktissa  jatkaa ja itse pian  iskeä.
vaali-kampanja oli #Trump #Kiina kovasti kritisoitu ja määritelty, että Peking valuutat manipuloi ja työn #se USA varastaa.

Eurooppa etsii linjat luokse  tulevat presidentin #Trump:
Jälkeen  ensimmäiset šokin haluaa Eurooppa #ei #Donald #Trump odottaa: Se *EU-ulko-ministeri painotettu tarkoitukset, itsevarma   uudet #jenkkipresidentti #lähestyä.
Eurooppa osaa itse " *abwartende asenne" suorittaa, sanoo se *EU-*Außenbeauftragte *Federica *Mogherini #Brysseli.
Silti puuttuu se #eurooppalainen yhteisöllisyys: Se *Chefdiplomaten Iso-Britannian, Unkarin ja #Ranska puuttuvat iskulla.
*Mogherini oli ulko-ministerit asti #Trump vaali-voitto luokse  *Sondertreffen  sen tulevat suhteiden #se USA kutsuttu, sitten #Trump tuleva *außenpolitischer kurssi pätee kun epä-varmasti.
vaali-kampanja oli hän toistaa se *Führungsstärke #Venäjä presidentti #Vladimir #Putin kehuttu, #peräytyminen #se *Atomabkommen #se Iran julistettu ja se *Beistandsgarantie se NATO jäsenet kysymyksessä asetettu, se #ei riittävästi puolustuksessa investoida.

opinto: työ köyhyydestä uhkailtu:
osuus ihmisien, se #huolimatta  *Vollzeitjobs köyhyydestä uhkailtu ovat, on Euroopassa opinto se *Bertelsmann-yhdistys kasvettu.
#Kuinka #se "*Social *Justice indeksi 2016" *hervorgeht, nousi sen osuus   kuluttu vuoden #7,8 prosentti; 2013 valehteli hän yhä #7,2 prosentti.
Myös kun se *EU-osavaltiot itse hitaasti jaksoista talouksien ja finanssi-kriisi rentouduttu, tulee kasvu-kausi #työmarkkina #ei ihmisillä päälle, jakaa se *Bertelsmann-yhdistys  *Gütersloh kanssa.
Yhä aina on 118 miljoonat ihmisen  #neljäs *EU-kaupunkilainen köyhyydestä #tai sosiaalinen *Ausgrenzung uhkailtu.
syyt nähdä tekijät opinnon   #kasvaa *Niedriglohnsektor ja jakautumisen #työmarkkina  tavallinen ja *atypische muodot toimesta.
#Saksa valehtelee #se *Rangliste paikka seitsemän   *EU-vertailu.

Bulgarian #hallitusjohtaja *Borissow käy asti tappion #kandidaatitar takaisin:
Bulgarian #ministeripresidentti *Boiko *Borissow on tappio se *Regierungskandidatin *Zezka *Zatschewa #se *Präsidentenwahl kuinka odotettu #potkut  kansalliset #keski-Oikealla-kabinetin julistettu.
Hän aikoo päälle  ensimmäiset työ-päivän parlamentin #potkut #lähettää, sanoo *Borissow Sofiassa.
tulokset se *Präsidentenwahl aikoo selvä, että #hallituskoalitio enemmistö enemmän on, perustettu *Borissow päätökset.
Asti määrittelyiden se *Wahlkommission pätevät enemmän kun 59 prosenttia valitsija #se *russlandfreundlichen *Oppositionskandidaten *Rumen *Radew.
*Zatschewa tuli siksi vapaasti  hyvin 36 prosenttia.

All this is around 15 minutes a day, so, instead of facebooking on your work time you can learn a language and write an electronical dictionary for future generations!

Ei kommentteja:

Lähetä kommentti