Visar inlägg med etikett Martha Palmer. Visa alla inlägg
Visar inlägg med etikett Martha Palmer. Visa alla inlägg

"Conceptual blending" mer praktiskt men lite smalare

2013-05-08

Kompletterande Enklare än conceptual blending.


En excellent exempel mening hittade jag i en Martha Palmers artiklar publicerad i samband med ett av NIST årliga årslånga lingvistiska-satsningar (trec.nist.gov). Den har också förutom en gerund indikerande hur något görs vi en by operator som ligger i högre parse-rräds-komplexitet och avslutar med en tal-event där komplexitet är lägst. Artikeln om jag minns rätt diskuterar en del runt det om än litet fokus just meningstolkningen TO VP -> TO VP (diskuterar mer runt teknik-koncept ganska långt ner).


Artikel finns länkad i Chunk parser: Fras-relationer för grammatisk- och semantisk information där också själva fras-grammatiken med dess relationer underliggande den mer utmanande meningen och tolkningen diskuteras rörande chunking (liksom Martha i hennes artikel). En förändring jag senare gjort är att lägga en "mellan-chunker" (d.v.s. egentligen tre lager här) i arkitekturen för att göra den mest grundläggande råarbetade nivån utbytbart och därigenom göra det möjligt att öka prestanda väljande ex. ett parser komplext mycket regelstyrt eller ännu snabbare "få-regel-rå-chunker" eller ett i prestanda dyrare parser koncept med både statistiskt inlärning förutom givna regelsystem.


Vidare i det semantiska lagret där allt tidigare diskuterat och en del efterföljande fick bli prototyp är införande av ett fåtal men mycket tydligare parse frame för varje VP till VP relation där vi när vi gör parsning från vänster till höger reducerar komplexiteten (antar vi att ett parse-träd existerar när dess djup minskar) relativt det första verb:et indikerande parse-frame. Ex. wish i:


    The Hound wish to server the prince by swording people, the author put up for the reader to judge in his fictional world of power-immoral.

Emedan vi kraftigt särskiljer när vi mer än att uttrycka vårt interna upplevda tillstånd - ev. som tolkat eller paketerat som rationellt för eget eller andras upplevda värde - tittar på uttryck för information som motiverar eller kräver andra att agera, resp. när vi själva i vår approximation av världen agerar (i ett rum kanske att vi lyfter på en bok, eller i världspolitik att man bojkottar, förhandlar eller fördömer eller krigar även om kanske inte alltid ha direkt att göra med ett fysiskt föremål


Meningen behöver ju heller inte som man oftare vill se det vara vad vi ens kan tolka betydelsen av i verklig mening. Det kan ju - och gör det normalt för alla analys-intressanta nyheter - kräva att vi redan står på ett tillstånd av kunskap, politiska attityder m.m. Mer naturligt känns för mig (det ändå koncept jag såg för att lösa det) att låta världens aktörer berätta sina ord och text och i det skapa liksom för oss själva vad vi är och reagera från det givet vår motivation och mening.


Att nu Israel flyttat luftförsvar är vad vi riktigt kan tolka strategiskt på "normal-ej-militär-taktik-expert" helst säkert att förstå från grammatiska system med vanliga idéer oc förekomster. Vi kan emellertid också tolka och förstå det från vår upparbetade världsbild utan särskild optimering runt sådana operationer, och söla själva riktningen på denna förflyttning i kontrast mot deras också nyligen gjorda bombningar om sådant tenderar att troligare vara reaktivt redan förstådd aggression tillsammans med associerad attityd till händelsen (bombningar kommer i kontext just närmare upp i konflikt-intensitet medan defensiva åtgärder ligger annorlunda i dess emotionella association med nyheterna det förekommer i sett över hela populationen nyheter).

Chunk parser: Fras-relationer för grammatisk- och semantisk information

2013-03-11

Speech and Language Processing är en excellent referens till mer än relaterat tolka tal, och har praktiskt i området statistical language processing oftare varit till nytta än Foundations of Statistical Natural Language Processing (ändå vad jag använder oftare än mycket annat och ett komplement kring en del) skriven av Dan Jurafsky's kollega Mannings. Den första ger en seriös och användbar introduktion till chunking medan det kanske är lite förvånande att den senare föga berör det och kanske lite negativt givet dess större användningsområden kring mycket relaterat praktisk problemlösning kring så mycket (regelbundet återkommande område man kanske glömmer är portning av data eller gamla register där meta-information saknas men också data mining.


Eftersom jag är svensk född i kyla och överlevande snö är balans viktigt. Berömmer man en entitet för mycket kan de bli upphetsade och springa i dörrar och släppa ut värmen eller överäta av förråden. Jag införde därför lite "träd-rekursion" i min semantiska chunk-parser där ju:


"The primary limitation placed on these chunk rules [Egentligen refererar han till en särskild sorts chunkers men det struntar vi i.] is that they cannot contain any recursion; the right-hand side of the rule cannot reference directly or indirectly the category that the rule is designed to capture."

Vi fortsätter nu Chunk parsers presterar på nivå med människa för meningar utvalda för att vara väldigt svåra för dem och tittar hur vi tar ut argument 1 till resp. verb i exempel meningen från hennes artikel som analyserade chunkers.


För ett parse-träd när vi ska tolka det för att ta ut en given sorts information existerar en korrekt väg givet trädet och givet när så är viktigt ev. statistiskt-modell för att välja nära flera val finns. Givet det går det naturligtvis utmärkt att representera platt tillsammans med programmatiskt logik. Jämfört med min representation av människans kunskaps-koncept (Blue light) al'a som mest slösaktigt uppställd 1 000 000 koncept och tiotals miljoner numera relationer är det i mycket mindre utsträckning möjligt. Man vinner på att extrahera och representera information på sådant sätt att vetskap bevaras i strukturen på ett sätt lättare att nå. När vi hanterar enskilda meningar, stycken o.s.v. skadar inte lite logik i programmen särskilt som de tenderar att bli snabbare av mindre rekursion, tillståndstabeller m.m.


För situationen att ett verb på en mer undanskuffad plats i vårt "parse-träd" inte har direkt möjligt att begripa vilket dess subjekt är behöver det ju hämta fram den verb-fras (resp. en del annat möjligt) som uttrycker dess relation till det. Det var vad Martha såg som det viktigaste värdet med vanliga parsers (vilket givetvis stämmer för flexibilitet om och när man kan eller vill betala med prestandan relativt mängden kod). Just för att lösa problematiken i ex. meningen är det dock egentligen inte särskilt mycket givet att man kan relatera chunks (och som här eg. inte explicit som named relations vilket ju heller inte är default för Blue light heller). Nedan är hela koden för det undantaget en rad med "return -1":


Klicka på bilderna för att se bättre

Hittas "ovanför" i kodlogiken inte ett subjekt som stämmer med S-id-numret anropas denna och om något kommer tillbaka större än -1 undersöks det. Och något kommer ut. Nedan första argumenten till verben i tidigare refererad ex. mening ("Big investment banks refused to step up to the plate to support the beleaguered floor traders by buying big blocks of stock, traders say."):



Övriga argument (och argument i ungefär samma mening som i Marthas excellenta SemLink vars nytta blev enkelt verklig mer än Verbnet när jag upptäckte att Verbnet som sparar ned tid att få samman dem finns.) är avstängda eftersom jag testade den nya och mycket snabbare kod-versionen för att hämta just verb-relationer till verb på subjekt.


Utan denna eller en liknande kontroll (den jag använde innan långsammare med också funktionell utan "1-dimensionella parsnings-träd" kanske vi ex. får problem med the plate. Är det ev. subjekt till VB direkt efter (nummer 6 i bilderna):



Ett alternativt sätt men med fler loopar och kontroller - och långsammare - är att promenera bakåt från verbet och titta vad som relaterar till det innan, och skapa en kedja tills vi når vad vi är säker på är översta verbfrasen. Inte mer komplicerad logik än chunkers, och kanske rent av enklare eftersom det bara är fraser. Vanligen är det tror jag ofta precis som i ex. meningen diverse PP-operatorer efter varandra och före och efter aktuellt verb som ställer till det men dom är ju bland det enklare att vandra över utan särskilt mycket logik och där mer logik krävs kan ju den mer ambitiösa använda logik representerad i kunskap i form av datastrukturer människan självorganiserat åt oss att skörda (ex. Verbnet m.m.) eller tror jag oftare för just sådant här egentligen mindre omtalade men nog så stora The Specialist Lexicon (U.S. National Library of Medicine, National Institutes of Health) där vi hittar en hel del "avslutande" om verb (och verb:et innan avslutar ju med vad vi har mellan det och verb:et efter.


Nedan ex. på verb complement från The Specialist. Till höger syns en bit av katalogen där det datat är strukturerat jag lät vara kvar med diverse andra verb-datakällor markerade med pilar (och kataloger med data möjligen - högst osäkert eg. - nedsparat samtidigt med en liten bugg i min spindels tolkning av webbplats-direktiv kring sådant om nu det alls var något aktuellt den tiden i ett av fallen och där ett större "bibliotek" / "institution" från europeiska kontinenten resp. ett antal parsers och liknande jag testade men inte tycker är något att rekommendera vara slöare ungefär mycket annat som ger mer information eller hade andra problem).


Skapad med Gimp och Google Docs i konstnärlig händelse och skapelse för att mer än illustrera verb dokumentera åren bakåt och säkert fortsatt länge där diverse arbetsmoment sker med applikationer på webben enklare på vissa sätt och med vanliga applikationer därför att vissa moment tycks de första aldrig få till ex. relevant här skärmdump som auto-sparas i min hemkatalog med min Linux-fix för funktionen.

Slutligen var det rekursionen - och för korrekthet rekursion i skriven pre-kompilator-mening mer än abstrakt koncept - har vi det nedan (första halvan av koden hade vi egentligen kunnat skriva på tre rader men den ska tas över mer eller mindre exakt till annat och har värde så här ett tag för att se om den har sönder saker märkbart istället för att kanske missas onödigt länge med underliga problem svårare att hitta ovanför). Rekursionen är att vi anropar samma funktion med det nya verbet vi fick från koden i en av de första bilderna.



Det tycks mycket troligt att jag plockar bort rekursionen. Jag är en starkt troende på att rekursion, grafer (snarare än ex. de säkrare hashtabellerna) särskilt skapat flexibelt med pekare (instabilt och farligt) eller ännu värre enkelt (blir stort och slött utan att det märks) är som koncept på universiteten (jag var som ung och mindre skadad av verkligheten involverad i labbarna runt Algoritmer och Datastrukturer, Uppsala Universitet kanske 1998 tror jag medan jag var student på Teknisk fysik för att vara studenterna på kursen behjälplig m.m. och rätta dem senare men visste inte bättre) ett exempel på dispergens mellan de datormiljöer, utmaningar och intellektuella resurser typiska för arbetslivet. Elegansen är ju ett värde i sig som bedöms gällan algoritmer medan stabiliteten i den faktiska implementationen några mätningar görs från betyder föga. Hade prioritet istället lagts på stabilitet och kvalitet tycks inte otroligt att både en försvarlig-andel av säkerhetsproblemen liksom de ofattbart dåligt optimerade program som år efter år suger upp all extra prestanda man får med ny dator (ex. Windows XP jag nyligen kom på att sortera en tabell så att det gjords faktiskt visuellt: nästan så snabbt att man inte märkte det ens under last men likväl systematiskt vad som kostar och för åtta år sedan hade datorn jag hade för nöjes-surfande inte orkat det utan att det direkt stört: helt otroligt. Inte självklart att problemet just har med XP att göra. Det mesta man installerat och avinstallerat tycks ju ha dll eller vad det numera kallas kvar registrerade såväl som oregistrerade).

Chunk parsers presterar på nivå med människa för meningar utvalda för att vara väldigt svåra för dem

Martha Palmer Verbnet och Probank hör till de mest användbara datastrukturerna för semantisk-tolkning av text närmare mer praktiska tillämpningar där prestanda är vad som ger möjlighet att göra fler och djupare kontroller på mer data genom att spara tid på mindre mer kompakta statistiska-motorer och ännu den tid man ev. annars själv hade lagt på det. Artiklar publicerade länkade från Martha Palmer (uppdaterad fram till 2011) tenderar också oftare än kanske vanligare ligga närmare praktiska tillämpningar (kanske något finansierat samarbete som inspirerat) och därför värt att titta till ibland.


Chunk parsers är praktiska verktyg och det var därför med visst glatt intresse jag prövade meningen hon gav som exempel i en sammantaget ganska negativ tolkning av chunk parsers:


"[...] it would be difficult to imagine identifying it without building a complete syntactic parse of the sentence. [...]
The prepositional phrase expressing the Manner relation, however, is not identified by the chunk-based system. The tree-based system's path features for this constituent is VB ARROW_UP VP ARROW_DOWN PP, which identifies the prepositional phrase as attaching to the verb, and increases its probability of being assigned an argument label."

Från: The Necessity of Parsing for Predicate Argument Recognition,
Daniel Gildea och Martha Palmer,
University of Pennsylvania,
Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL), Philadelphia, July 2002, pp. 239-246.

Och allmänt har visst Martha Palmer rätt även om nu informationsextraktion och annan praktisk användning ofta ger andra konkreta värden. Snabba och ofta tillräckligt stabila allmänt, och viktigare för riktad informationsextraktion presterar de bättre än generaliserad parser utan annan anpassning. Men man ska inte underskatta deras värde annars eller. Betänker vi ex. ett träd är det en komplexitet vi t.ex. också kan uttrycka med den typ av implicita flödesrelationer i grafer jag tog som exempel i Semantiska parsern nästan version 1.0.


"Konkret värde jag såg redan igår är att skillnad mellan när titel, abstrakt och varje stycke för sig körs in i Drifting thoughts på den snabbare utvecklingsdatorn jämfört med när titel och abstrakt körs in och därefter endast en approximation av vilken NP som är i fokus för allt vad jag vet kan vara oändlig. Bryt det längsta försöket att ta ut en referens representation av hjärnan maximalt nitiskt associerade och tolkande efter cirka 30 minuter. För nöje kan man ju ha en närmare mänsklig intelligens som ger lite idéer men för allt praktiskt behöver man man sin egen intelligens optimera prestanda-kostnaden sådant kommer med och att approximera löpande inspiration över artikel-body till fokus-objektet gör enorm skillnad genom att antalet nya udda koncept som behöver representeras upp med sina från 50 upp till ca tio tusentals relationer (och i Drifting thougts är det inte linjära samband utan rekursivt genom att aktivitet om än indirekt när de möts kan resultera i den nodens relationer realiseras upp med aktivitet o.s.v.) reduceras enormt. Jag såg inget uppenbart som missades genom det med mycket om infektioner, virus, cellbiologi, epidemier m.m topp fem hundra på aktiverade delar av hjärnan från en artikel från tror jag ploscompbiol.org eller ev. plosone.org."

Jag såg i exemplet nedan för den semantiska parser som utvecklas för att filtrera artiklar, nyheter m.m. Drifting thoughts inte något av de problem Martha upplevde med sin chunk-parser.


Notera först den första siffran till vänster vilket approximerar motsvarande upp och ned - vad jag gjorde för att approximera kognitiv-komplexitet (som diskuterat i Neurolinguistics bl.a. kring Gibbs-parser) samtidigt som jag försökte göra just upp-och-ner i en annan funktion som aldrig bra bra. Det gäller för S-fraserna. Denna uttrycker det dock så perfekt man kan komma med utan problem en die för icke noll per mening.


För by (vad jag kallar en PP-transformator) att verben vi binder till ganska typiskt upplever jag för den typen av verb-argument ger oss en bra indikationen om den generaliserade förenklade meningen möjlig att fånga i de kanske teoretiskt mindre uppmärksammade men praktiskt bland de viktigaste arbetena inom praktisk lingvistik Verbnet, Framenet, Propbank m.fl. liknande lösningar representerar. Verb-relationerna till by: 6 VP to support VP/S och 9 VP buying VP/S (siffran till vänster där är frasens id-nummer och den som står direkt till höger om "upp-ner-räknaren").


"Manner-argumentet" man ser det i artikeln är "by buying big blocks of stock" där vi ju lokalt i den har en PP. I citatet från min semantiska parser ovanpå chunking agerar by m.m. som operatorer och den uttrycker relationer direkt enligt tidigare där ju redan där ges i alla fall en antydan om "manner": köpa aktier för att stödja något (stödköpa kanske?). Relationerna till buying (egentligen inte argument utan relationer som ej går till vad vi kan tolka som VP/S, SBAR o.s.v.)


.............................................................
S VP/S 4 9 VP buying 

STRUCTURE RELATIONS

ARUGMENTS
 10 NP big blocks NP
 8 PP by PP
.............................................................


Det samma för big blocks där vi också märker av debug-testningen av PP-completement avsedd för situationer där vi har längre kedjor som gemensamt konvergerar till mening och tolkning ex. att ett argument begränsar dimensionsrymden det andra uttrycker. Ex. in the middle of the forest (inte bara obestämt eller hela skogen utan i mitten av skogen: praktiskt för de flesta av oss ännu mer unknown). Siffran är frasens interna id-nummber NP anger bara fras-typen och ex. big blocks är chunk-frasen.


NP 0 4 10 NP big blocks


STRUCTURE RELATIONS
 9 VP buying VP/S

ARUGMENTS
 11 PP of PP
PP-COMPLETEMENT ( 10 NP big blocks ) ( 11 PP of ) ( 12 NP stock )


Och hela utskriften av körningen av exemplet från Marthas artikel. Den är som sådan anpassad för vad jag utvecklar i den (strukturerar och sorterar diverse kod medan jag sätter högnivå-primitiver men just för att illustrera detta passar den perfekt).


Notera när vi tittar före och efter by för den lilla upp-ner-räknaren. Den ligger balanserat på fyra genom hela det "human annotations" beskrivit som Manner i Marthas exempel mening jag fick för mig att jag skulle provköra innan jag tänkte försöka somna. En avvikelse från perfekt manner är för traders say vilket med upp-och-ner räknaren ligger på samma då jag just nu har comma m.m. som inte hanteras i trädet borttaget men följer man relationerna får man rätt fras manner ändå. Say är ju en gammal vän här.


Det egentligen mer intressanta för mig runt motsvarande manner är mindre dom markeringarna oavsett hur användbara de är i kontext av entiteter och vad dom gör utan mer av vad som uttrycks avseende aktuella dimensioner och hur dom begränsas via constraints - kanske vad vi kan kalla proto-whole och proto-part p.s.s. sätt som proto-agent och proto-patient. Var vi är på kartan och vad för sorts karta är det? Är kartan ett antal verktyg (t.ex. gas chromatography, t-test, litterature search m.m.) aktualiserade i texten som förklarar hur vi kan avgränsa vad vi kan förstå om vad entiteterna gjort var någonstans och med vilken säkerhet?


.............................................................

##################################################################
PHRASE STRUCTURE MAP:body_last 0
 NP 0 0 0 NP Big investment banks


STRUCTURE RELATIONS
 1 VP refused VP/S

ARUGMENTS
.............................................................
S VP/S 1 1 VP refused BOSS 

STRUCTURE RELATIONS
 2 VP to step VP/S

ARUGMENTS
 0 NP Big investment banks NP
 13 O COMMA NOFUNC
 14 NP traders NP
 15 VP say VP
 16 O . NOFUNC
.............................................................
S VP/S 2 2 VP to step 

STRUCTURE RELATIONS
 1 VP refused VP/S

ARUGMENTS
 3 PRT up PRT
 4 PP to PP
.............................................................
 PRT 0 2 3 PRT up


STRUCTURE RELATIONS
 2 VP to step VP/S

ARUGMENTS
.............................................................
 PP 0 2 4 PP to


STRUCTURE RELATIONS
 2 VP to step VP/S

ARUGMENTS
 5 NP the plate NP
.............................................................
 NP 0 2 5 NP the plate


STRUCTURE RELATIONS
 6 VP to support VP/S

ARUGMENTS
 4 PP to PP
.............................................................
S VP/S 3 6 VP to support 

STRUCTURE RELATIONS

ARUGMENTS
 5 NP the plate NP
 7 NP the beleaguered floor traders NP
 8 PP by PP
.............................................................
 NP 0 3 7 NP the beleaguered floor traders


STRUCTURE RELATIONS
 6 VP to support VP/S

ARUGMENTS
.............................................................
 PP 0 3 8 PP by


STRUCTURE RELATIONS
 6 VP to support VP/S
 9 VP buying VP/S

ARUGMENTS
.............................................................
S VP/S 4 9 VP buying 

STRUCTURE RELATIONS

ARUGMENTS
 10 NP big blocks NP
 8 PP by PP
.............................................................
 NP 0 4 10 NP big blocks


STRUCTURE RELATIONS
 9 VP buying VP/S

ARUGMENTS
 11 PP of PP
PP-COMPLETEMENT ( 10 NP big blocks ) ( 11 PP of ) ( 12 NP stock )

.............................................................
 PP 0 4 11 PP of


STRUCTURE RELATIONS

ARUGMENTS
 10 NP big blocks NP
 12 NP stock NP
.............................................................
 NP 0 4 12 NP stock


STRUCTURE RELATIONS

ARUGMENTS
 11 PP of PP
.............................................................
 NOFUNC 0 4 13 O COMMA


STRUCTURE RELATIONS
 1 VP refused VP/S

ARUGMENTS
.............................................................
 NP 0 4 14 NP traders


STRUCTURE RELATIONS
 1 VP refused VP/S

ARUGMENTS
.............................................................
 VP 0 4 15 VP say


STRUCTURE RELATIONS
 1 VP refused VP/S

ARUGMENTS
.............................................................
 NOFUNC 0 4 16 O .


STRUCTURE RELATIONS
 1 VP refused VP/S