Nedan har vi ett säkert inte dåligt exempel på hur ganska enkla "features" som utan större ansträngning går att ta ut ur parser-träden klarar av en del (åtminstone när tillämpning inte är just väldigt hög tillförlitlighet på en mening eller en nyhet):
Dessutom är det ett riktigt bra exempel på hur hela den lingvistiska världen i flera subkulturer fortfarande lider svårt av dessa parser-träd.
En enorm komplexitet och arbete från att träna modellerna för att generera dem till att göra dem för parsning på nyheterna föreligger. Och ett alldeles utmärkt pris att betala om man också drar nytta av all fet information samlad. Nedan har vi ett träd använt som exempel i artikeln (med i skärmdumpen delar av texten "citerad" med trädet):
Och ett "problem" man tycker sig behöva lösa trots att det är vad givet trädet är vad vi har redan mer information om än en binär faktor för om adjektiv-frasen finns:
ADJP: This is a binary feature indicating whether or not the constituent contains a complex adjective phrase as a child. Explorations of the training data suggested that adjective phrases with
forms like “interested in the idea” seemed to correlate highly with opinions. Simple adjectives, on
the other hand, would provide many false positives (e.g., “large” is not likely to be an indicator of opinions). Compare
(14)The accusations were flat and uniform although what is truly remarkable is that the youth
of the nation were believed [OPINION-PROPOSITION not only to be free of all discipline but
also excessively affluent].
and
(15)He felt that shareholder pressure would ensure compliance with the Code but added
[PROPOSITION that if self-regulation does not work a more bureaucratic legislative
solution would be inevitable].
which include the underlined complex adjective phrases, with the non-opinion
(16)He added [PROPOSITION that there might be a sufficient pool of volunteers to act as a new
breed of civil justices].
Falskt positivt om inte precis som vi själva bara tittar efter i vad trädet och meningen säger vilket redan är färdigt analyserad information till representationen trädet ger.
Att bygga dom här träden och sedan förutom bara en aning av information kasta bort det mesta är helt normalt. Väldigt vanligt. Orsaken tror jag att träden direkt ut är tämligen "intetetsägande" i mening av att det krävs en till parser för att tolka det vidare till mening och förståelse. Och då kan det kännas billigare att göra lösningar som ovan trots att man då egentligen lika gärna hade kunnat låtit bli att parsa lika dyrt och istället välja enklare lösningar (som chunkers inte mer än utnyttjande enkla linjära samband mellan orden och deras troligaste pos-taggar vidare till en grov NP-fras, VP-fras, ev. adjektiv-fras o.s.v.).
Den första parsern av träd jag gjorde var en chunker som tog mänskligt annoterade treebanks (eller parser-genererade) och genererade en ganska enkel dependency parser från relationerna mellan chunkerna. Den sög verkligen att göra. Att parsa dom här träden är verkligen ordentligt otrevligare programmering än en enkel linjär-chunkern av meningarna direkt. Idag kör varierade språk-parsers under en mer fullständig dependency parser uttryckande beroendena mellan fraserna vilken emellertid om än mer tidsödande ej var riktigt jämförbart otrevlig att programmera. Har man gjort rekursionen för dom en gång så går det enklare därefter: Framför allt vet man vilka relationer mellan olika verb-fraser som är de mest intressanta (jfr Bill could [Or as also judged from the phone tap data by President Obama visiting NSA to listen in on some enemy to the free world: would] decide to predict that a new political solution will be needed där de kritiska relationerna är mellan bedömningen vad vi tänkbart kommer göra till vad vi ska göra - predict - vidare från det samlat till vad resultatet av det blir d.v.s. det vi predikterar efter that: Ett 30-tal liknande relationer tar det normalt mest talande för mening medan övrigt inte otroligt ramlar ut mer eller mindre korrekt och annars vanligen ger underligheter med möjlighet att kasta datat och resultatet - Och would varianten tog jag med för att påminna om hur förvånande vanligt det är att man antingen skriver a och b eller a / b kring såväl adjektiv som noun och verb - beroende på vem som skrivit texten kan det mycket väl vara bra data). Men också vid behov - närmast i användning ej avsett för att nödvändigtvis ta den mest kostsamma vägen genereras träd underliggande parallellt för parsning.
Hela komplexiteten att ta träden och få ut semantiska slutsatser, från det mening mer övergripande lokalt, och vidare över flera meningar - kanske vid behov kombinerande med common sense som ev. slutsats om att en person som säger att en viss politiskt lösning måste till givet att förändring ej uppstår egentligen tror och kanske rent av inte ens påverkar beslutet - ger den här företeelsen där om jag förstår artikeln rätt:
- Man först genererar parsnings-träden den för kulturen vanligare mer kostsamma vägen (istället för en snabbare chunker vilket här gör det samma) för att generera träningsdatat.
- Träningsdatat för att tillämpa tycks dock fodra en jämförbar (kanske rent av lika komplext kostsam parsning) parsnign för att få ut features så att modellen man tränat går att tillämpa.
Samtidigt som man faktiskt har parsnings-trädet med alla relationer såväl som dom konkreta orden. Någon anledning att sitta och hantera verb-fraser som en binär-feature eller mena att man skulle feltolka diverse annan användning därför att man ej utnyttjar parsnings-trädet finns ju egentligen inte. Det finns redan mycket mer information i trädet som normalt bygger på gigantiskt mer träningsdata än någon riktad lösning kan.
Och ordentligt större tillförlitlighet från att parsa ut mening från trädet resp. orden - inga exempel vi har i artikeln är vad man ska komma fel för alls i komplexitet och konstruktion jämförbart normalt någonsin i bedömning.
Sedan är helt visst hela företeelsen att man regelmässigt hamnar i det här mellansteget i princip oanvändbart för intressantare analys (och för universitetets världen representerade problemområden som ej likt vanlig parsning är lösta problem idag sedan många år där knappast något nytt forskningsresultat alls adderande något som helst värde i effektivitet med mätbar effekt i en praktiskt tillämpning av vilken som helst annan entitet utnyttjande lösningar praktiskt kommit: Tvärtom är det normalt förväntat att kombinerande regellösningar välkända sedan evigheter med statistiska parsers hamnar man bättre än något publicerat för resp.). Att direkt ta ut representationer mer funktionella för att förstå meningen utanför grammatiken kan tyckas vettigare men etablerad kultur har sin effekt: Meningar hand-parsars av korrekt troende personer och med mindre att man mer än att sitta och kategorisera några tusen adjektiv av och till behöva ge sig på att hand-parsa meningar i större antal än ett hundra tal över några år är värt mycket tror jag för vem som helst att slippa.
En variant av att parsa mening från trädet såg jag i följande artikel att först göra en dependency-representation av den parsning redan gjord:
Och ev. är detta en teknik också använd i Stanfords parser. Tänkbart är det snabbare när man redan har en parser som gör det första arbetet (vilket jag tror att det normalt ska vara byggande på all vetskap redan upparbetad såväl som hela vanan i hur man tänker kring sådant här såväl som har kanske redan egen kod att börja arbeta från). Och ev. är det ingen egentlig kostnad heller (jag kan inte bedöma det)
Stanfords-parser-lösning fodrar nu 64-bitars Linux medan jag har 32-bitars så jag har egentligen aldrig prövat deras större ramverk för analys (men väl någon mindre variant eller kanske sido-projekt de har) och även om jag inte på rakt arm minns hur mycket storlek på hårddisk deras modell tar komprimerad (de är default-mässigt komprimerade och dekomprimeras när de laddas alt. i chunk beroende på del av modell man behöver ta ut lite beroende på prioritet, hårdvara och om det är ett väldigt komplext språk som ett ex. jag tror mig minnas var något relaterat kemiska processer för aminosyror i något biologiskt modellsystem av människa eller något enklare).
Jag tycker mig ha för mig att Berkeley låg på cirka 30 - 50 MB komprimerat vilket jag tror är ovanligt lågt (även om den i allt jag prövade presterade excellent och var föredömligt snabb: Det kan vara ett alldeles utmärkt alternativ om licens passar och ev. om så för mig runt licensen kanske jag prövar att ta in den som default även om den fodrar en del omkodning varande lätt åldrad och mycket som färdig klar för kommando-prompt vilket inte passar under något annat - enkel kod trots att jag inte programmerat Java kommersiellt eller alls egentligen sedan 1999 på Ericsson). Vi får tror jag titta på World Wide Web hur stor Stanfords default-modell är så jag inte sitter och ljuger om jag spekulerar att den är riktigt fet kanske passerande ett par hundra MB.
Och utmärkt kontroll då modellen var mindre än jag trodde:
Där om jag begrepp Can you explain the different parsers? How can the PCFG parser produce typed dependency parses? Why if I use the getBestDependencyParse() method do I get null or an untyped dependency parse? (i FAQ för parsern hos nlp.stanford.edu) rätt behöver den resp. englishPCFG.ser.gz och englishFactored.ser.gz (medan den antar jag ev. ej laddar RNN parserns modell om den inte ska användas) även när endast den mindre och säkert snabbare PCFG används (knappast någon kostnad i minne att tala om att ladda båda) används i antar jag mer av logiken (om jag hade inte som ambition att bli kunnig på termonologin och begreppen kring ramverket så jag kan ha tolkat det fel).
Hur snabbt modellen växer när träningsdata för språk från andra exempelvis ämnesområden i publicerad forskning (eller kanske rent av svårare mer subkulturellt person till person språk skrivet) vet jag inte men det behöver inte vara särskilt mycket alls beroende på hur modellen representeras. Träningsdata i någon mellan-representation fanns också inkluderad såg jag i jar-filen när jag extraherade den och sägs nu vara:
"english{Factored|PCFG} is currently trained on:
WSJ sections 1-21
Genia (biomedical English). Originally we used the treebank beta version reformatted by Andrew Clegg, his training split, but more recently (1.6.5+?) we've used the official Treebank, and David McClosky's splits
2 English Chinese Translation Treebank and 3 English Arabic Translation Treebank files backported to the original treebank annotation standards (by us)
209 sentences parsed by us (mainly questions and imperatives; a few from recent newswire)
100 imperative sentences parsed by us
3924 questions from QuestionBank, with some hand-correction done at Stanford.
50 Tagged but not parsed sentences with tech vocabulary not seen in the WSJ"
Genia minns jag som gaska stor och är i övrigt en väldigt kvalitativ data-delning med en hel del annat vid sidan om annoterade meningar egentligen kanske (som jag haft användning i alla fall) intressantare. Minns jag inte fel finns förövrigt en färdig liten grammatik skapad från själva datat jag antar är samma som Stanford använt uttryckt i någon av filerna som kommer med vid sidan om närmare ontologiska relationer mellan koncept o.s.v. Dock kanske inte det mest användbara för de flesta användningsområden gissar jag: Just inriktad medicin och kroppens biologi. Tycks som jag tipsade om den tidigare i:
Poängen med GENIA förutom parser-träning är att samma data ger koncepten för områden tillsammans med åtminstone de relationer mellan dem som har att göra med händelser (kroppsligt biologiska händelser rörande saker mindre än vi ser):
"EVENT: EVENT is the term(s) that mean(s) biological status changing. EVENT is described by TYPE, THEME, CAUSE and CLUE.
TYPE: TYPEs of the event are the categories of the EVENT, chosen from the predefined set of event classes, the "EVENT ontology".
THEME: THEMEs are the targets of the EVENT, designated by an “ID”, term, event or sentence, etc.
CAUSE: CAUSEs are the causes of the EVENT, designated by an “ID”, term, event or sentence, etc.
CLUE: CLUE elements are the places where location information can be recorded. The information is classified and the tagged in the sentence. Tags show the object, cause etc. of the EVENT in the sentence. The rules for tagging are described in Section 3.5.
COMMENT: COMMENT is a free description for the EVENT."
D.v.s. för just dess aktuella område en excellent fördjupning i det större ämnet medicin för användning till sådant diskuterat i tillsammans med som en första utgångspunkt The Specialist (National Institute of Health).
"Vi kan se det som att stora projekt när de levererar tenderar att ge oss vad som har förutsättning om kompetent genomfört att fungera under många år med uppdateringar och förändring. Standarder, noggrann dokumentation m.m. ger förutsättning till det. PubMed är exempel på det:
PubMed
Gigantiskt i data liksom IT-plattform och applikationer. Ett exempel på vad som krävs i det förutom faktiskt IT har vi med The Specialist Lexicon:
SPECIALIST NLP Tools
D.v.s. när betydelsen av något är hög måste du ha några redundanta projekt som tar en annan utgångspunkt. Ett annat teknik- eller modell-perspektiv som visar sig kritiskt kan agera backup, och över den längre tid inkluderas in i det större projektets förutsättningar till långsiktigt underhåll."
Från: Facebook kraftfullare och förföriskt enkelt (2012-02-25)
(Och idag tillfredsställande "hämtat" i tillräckligt mängd för att ge sitt bidrag till den statistiska representationen av koncept och deras relationer vilket när funktionellt brukar komma mer korrelerat här med någon esoteriskt diskussion kring API eller gränssnitt och ev. något allmänt positivt eller negativt relaterat något helt annat åtminstone tills jag samplat ut eller slut det eller vad man kallar det. Vilket vi har ett färskare exempel på här Ny sökmotor i Mellanöstern:
2015-03-11 oavsett vad jag i övrigt kan ha sagt om ej samplande geo-området vilket för att märka ord jag ej själv förutom väldigt lite data gjorde: Sverige är nu fullt av exil-iranier med datorer precis som alla andra).
Berkeley vs Stanford
En egenhet jag såg av och till med Stanfords "lilla" parser (osäker vad den kör för modell som standard) jag försökte få Berkeley att komma fel i också är att den av och till hittar på parsning när relationer och påverkan sträcker sig över två eller tre ord i samma fras. Om det är vanligare än fallen där jag fick fram det beror det helt säkert på vilken modell man kör med. Jag kan tänka mig att sådana problem kan komma från en mindre mycket snabbare modell som kanske rent av i allmänhet är mer effektiv för vad man vanligen prioriterar. Samtidigt är ju just sådana problem - åtminstone för NP vad man enkelt kan göra med långa beroenden med en ganska enkel chunker d.v.s. det är just inte sådant man egentligen behöver parserns enorma inlärning för så lite flexibel icke-specialiserade algoritm-koncept kombinerande mer regelbaserade lösningar vid sidan om det statistiska skulle nog lösa det ganska bra.
En säkert seriösare jämförelse har Stanford själva gjort:
Ett som man allmänt borde bedöma saker är Stanfords parser antagligen ett säkrare och bättre val för de flesta att bygga vidare på (om licens-regler så tillåter vilket var mitt intryck utan att läsa igenom det alls egentligen). Inte minst därför att Berkeley parsern mer eller mindre saknar allt med ens ytlig likhet med "normalt förväntad" nivå rörande dokumentation. I princip har du koden och säg en A4 mer eller mindre för de flesta säkert en försvinnande del av allt man kan önska läsa väljande en parser som man inte önskar att lära sig en massa om för att grovt göra en bedömning av.
Men jag fick en bra känsla av den. Krävs mycket mer för att (i den mån licens-regler tillåter det) ev. ersättande annan lösning idag. Tillståndsmaskinen jag exporterade ut kändes också "tilltalande" (rörande diskussionen i övrigt i inlägget har jag för ena sidan av algoritmen - POS-sannolikheterna också gjort en till anpassning där resp. sannolikhet även normaliseras med ordets längd fångande något av en till sida av informationen men fortfarande tillåtande snabb hantering ej krävande att alla databaser är uppmonterade: Jämför med Word lengths are optimized for efficient communication (PNAS) även om jag just nu i alla fall utnyttjar ord-längden i antal bokstäver resp. antal - hanterande korta ord 3 eller färre särskilt - och positionering av vokaler inkl. påräkning med 1 för ord med färre än två vokaler som ej slutar på vokal då formen av konsonanter och vokaler är jämförbart relaterat med informationen påverkar kodning i mänsklig kognition vilket jag tyckte gav viss "elegans" att ta med även om det egentligen inte ger en egentlig skillnad jämfört att direkt skatta ordlängd men ej heller en beräkningskostnad - En enkel effekt att se är att korta determiners likt the ger mindre skattning komplexitet jämfört med de längre mer ovanliga samt konkret för mig viktigare att när delar av NP som exempelvis orden Winston + Churchill med taggar NN + NN förvandlas till Winston Churchill och NN skalas det om enkelt och för denna användning tillräckligt väl i vad som kommer ut) i någon ännu ej noggrant kontrollerad spontant känsla.
Det förvånar mig egentligen att inte ett större intresse rent allmänt märks runt parsern. Man hade kunnat tänka sig att åtminstone mindre i head-count konsult-aktörer skulle skapa upp en del kompletterande material men kanske finns något licens-problem någonstans kring lösningen.
För den som jag stört sig några för många gånger på lingvistikernas problem-träd och allt merarbete de skapar för hederligt folk när något praktiskt ska göras av deras upparbetade vetskap avslutar jag med hat-propaganda försökande uttrycka lingvistikerna som en form av kulturell-parasit. Det är nu vad man egentligen bör undvika att i allmänt experimentera med språkligt då det är mytbildning när etablerat har skapat enorma problem av och till i historien (exempelvis de crime against humanity Nazityskland gjorde sig skyldig till). Men jag känner stor trygghet i att hela det här inlägget ligger gediget i ett även exkluderande effekt av svenskans mini-storlek väldigt tråkigt och begränsat område som få lär läsa (och de som läser det kan tänkbart tror jag se annat intresse av det mer direkt intressant: Och om inte utnyttjande tråkigt data omoraliskt får jag väl i värsta fall ge mig på att försöka balansera effekten av det: Korrigerande till vänster tänkbar otydlighet två här i inlägget efterföljande att jag faktiskt samlat Iran upparbetad medan jag kanske givit intryck att så ej var fallet).
När Lingvistikern kommer försvinner Godtrogna datavetarna
Lingvistiken har överlevt tusentals år. Det är en kultur som överlevt "inspiration" från nya områden med knappast annat än sällan ens kännbar effekt. Unga kulturer som sociolingvistiken kan ivrigt sitta och diskutera och förstå världen från Labov's nyskapande arbeten under 1960-talet (nästan 2000 träffar på Google Scholar sedan 2014 för Labov AND sociolingvistic: Inklusive hela referensböcker som inte stort gör annat än referenade honom fram och tillbaka likt denna jag köpte som julklapp till mig själv). Men ej så den riktiga korrekt troende Lingvistikern.
Lingvistikern när han kommer med trädet är lite som den grekiska ekonomen som kommer och vill låna pengar därför att han efter många år av akut brist på pengar planerar framöver att börja beskatta utländska företag som erbjuder hasardspel (och menar att man kommer kunna följa upp hur mycket pengar det ger därför att man ska börja räkna efter framöver). Men läckta grekiska föeslag till EU belysande problemet i ett område de flesta av oss har någon erfarenhet av finns ej här. Lingvistikern kan engelskan för bra och vi vanliga hederliga datarbetare som jag och folket som gjorde den här Stanford parsern för han enkelt bakom ljuset.
Andra kulturer och ämnen inom vetenskap är vad som kom och gick från Lingvistikern. Det är dock bara när vi med vår trevligare datakultur låter oss luras som Lingvistikerna kan klara att förgifta oss med sina träd och sitt påhittade ovanpå engelskan språk: Lingvistikern talar snabbt...
Lingvistikerna äter godtrogna datavetare som ej ser upp. Det dröjer ej länge efter de börjat rita träden tills de skriver en lång artikel om verbet like. Motiverande någon esoterisk tanke med idéer om ett språk känt sedan 30 år var en missuppfattning (att det var ett språk utan verb exempelvis).
Verkligen tråkigt att man igen ska behöva se hederliga dataarbetare vid ett till universitet som dragits in i det hela och ritar parsningsträd medan Lingvistikern skrattar.