Chunkie: Enkel och ganska snabb chunk parser

2013-02-19

Jag upplever det baffling att inte en mängd natural language parsers i Perl finns. Under de parser-funktioner jag sätter för att ta ut vissa former av relationer har jag en utmärkt fungerande POS (se LPost: Perl version of Brill's Part-of-Speech Tagger av Jimmy Lin, University of Maryland), och hade önskat parallellt den eg. vilket parser-koncept av de mer välkända (men med prioritet på prestanda). I brist på det har jag i princip kodat en liten chunk-parser men vill just mycket hellre oavsett om den får ligga kvar som mellan-steg (ex. hantera integration Verbnet, Framenet, common sense m.m. i ett litet eget-lager) ha något riktat under vars underhåll och utveckling inte är ett problem man själv äger eller kodar fast i sig.


Denna chunk-parser - ej skriven i Perl - tycks vara en kandidat åtminstone i prestandan och åtminstone tillräckligt funktionell när man intelligens ovanför (räcker mycket möjligt längre än så beroende på arbete man lägger på dess data-filer: men de inkluderade för engelskan räcker utmärkt för min användning här och antagligen det mesta):


  • Chunkie | heartofgold.dfki.de
  • (Osäker på vad heartofgold.dfki.de är men har åtminstone ytlig likhet med ganska många andra projekt olika organisationer i Tyskland är involverade i relaterat ontologier, språk, text mining, business intelligence, AI och besläktat ofta finansierat ganska hårt av EU förutom tyska "fonder".)

Fint chunk-platt som "vi" i det mesta praktiska hellre vill ha det i textanalysen:


Klicka för bilden förstorad.

En implementation av en Collin parser ("mer än" chunk parser dock) jag prövade för någon vecka sedan var löjligt långsam om man som här ska ha det till analysera mycket data kontinuerligt och endast som en liten del med mycket annat. Att som Chunkie vara ganska snabb betyder mycket.


Ett avslutande mini-skämt

När det gäller parser i natural language tenderar jag dessutom att lita på (positiva eller hur man vill se det) stereotyper. Låter namnet på författaren kinesiskt känns det bra för dom arbetar 10 - 14 h per dag och det är vad sådant här kräver. Är det tyskt (här tysk-domän) känns det också avslappnat trevligt: tyskar är ju noggranna och det är solid value i sådant här.


Ett par inlägg från längre tillbaka om stereotyper:



Vilket ligger närmare en grupp av dimensioner och relationer mer hemmahörande i sådana parsnings-frågor jag egentligen uteslutande skulle önska att koden behövde hantera. Men det är sällan det blir riktigt så och viss parsning i natural language blev nu fallet trots att jag hela vägen lovade mig själv att det inte skulle behövas (implementation längre tillbaka bl.a. av kommunikationskontroll har lämnat mig utan illusioner om den utmanande glädje sådan kodning sällan innebär annat som skryt referenser för att understryka en historik i mer manlig hard-core programming i C).