Denna genomgång ska illustrera hur man arbetar med PMSE (och kanske hur man kommer igång). Den kommer att introducera dig till grundläggande funktioner som representerar kärnfunktionaliteten i PMSE.
Generisk mjukvarusvit och mellanprogramvara för SNLP. UNIX-filosofi: ett byggkit av små enheter som kan kombineras till en ny verktygskedja. Språkoberoende. Skriven i Perl, automatiserad testsvit med hög kodtäckning, UTF-8-medveten. CLI-baserad, effektiv & parallell bearbetning. Grundlig dokumentation. Interaktivt läge tillgängligt.
Vi måste först definiera arbetsmiljön. PMSE är utformad för att bearbeta dokument oberoende av vilket språk de är skrivna på. Vi har därför antagit en strategi för hur man hanterar dokument på olika språk. Vi har etablerat en rot för biblioteket som är placerat i:
/data/library/
När bibliotekets rot är inställd kan kataloger för specifika språk läggas till. Koden härleds från språkspecifikationen iso-639-3. Katalogen för engelska blir således:
/data/library/e/n/g/.
Om du vill bygga ditt bibliotek från grunden behöver du en katalog där källfilerna ska placeras. Vi kallar denna katalog original, när du väl har dina filer måste du bearbeta dem (konvertera till ren text, göra tokeniseringen, n-gramsextrahering och så vidare) för att få önskad information. Bearbetade filer kommer att lagras i katalogen derived.
Ett P_daf-skript utformades för att tillhandahålla ett ramverk för automatiserad nedladdning. P_daf läser en INI-fil där URL:en för målet specificeras. Här är ett exempel på en mycket enkel INI-fil som heter demo.ini:
[global]
lastfetch = 2013-01-30 00:00:00
interval = 6 months
name = demo
[Hyperion]
threads = 1;
BASE = http://www.gutenberg.org
url = %BASE%/ebooks/5436
match = a\shref="(?http://www.gutenberg.org/ebooks/(?\d+).(?kindle).noimages)"\stype
get = $file store = "$ENV{PMCORP_ROOT}/e/n/g/original/Hyperion.mobi"
Betydelsen av sektioner och argument i filen beskrivs i PMSE-manualen. Filen demo.ini måste lagras i katalogen $PMSE_BIN/cfg/daf.d/. Om du har placerat INI:n där kan du nu anropa skriptet:
P_daf --fetch demo
Efter nedladdningen ska filen 5436.epub placeras i katalogen /data/library/e/n/g/original/.
Gå först till biblioteket och anropa sedan skriptet P_dmf. För att konvertera MOBI-formatet till txt bör du installera e-bokshanteraren calibre, som används av P_dmf som ett av de integrerade verktygen. Du kan använda flaggan PM_CONVERTOR_WARNINGS=1 för att visa konverterare som saknas på ditt system.
cd /data/library/e/n/g/
PM_CONVERTOR_WARNINGS=1 P_dmf --in /data/library/e/n/g/original/
Om allt gick bra bör du se katalogen /data/library/e/n/g/derived/. Den ska innehålla en textfil med namnet Hyperion.txt. Låt oss visa dess struktur:
tree derived/
derived/
├── Hyperion.mobi
│ ├── lvl.last
│ └── Hyperion.mobi
│ │ └── Hyperion.txt -> /data/library/e/n/g/derived/Hyperion.mobi/./lvl.1/Hyperion.mobi/Hyperion.txt
│ └── lvl.1
│ └── Hyperion.mobi
│ └── Hyperion.txt
Txt-filen innehåller en sidhuvud och sidfot med Gutenberg-information. Vi kommer att använda P_rer för att 'rensa' filen.
P_rer 's{.+?(Title:\sHyperion)}{$1}xms' Hyperion.txt
P_rer 's{\*\*\*\sEND\sOF\sTHE\sPROJECT.+}{}xms' Hyperion.txt
Borttagning av dessa sektioner säkerställer att den extraherade språkliga datan blir korrekt. (Upprepning av tokens kan påverka distributionen av frekvenser.)
I PMSE finns en enkel fördefinierad tokeniserare och meningssegmenterare för engelska. Båda använder P_rer och har formen av ett makro. Makro är här en skalomslag - ett skript som anropas med specifika argument.
MAK_tokenize Hyperion.txt eng
MAK_1s1l -l eng -i Hyperion.txt
Kärnfunktionaliteten i PMSE är generering av n-gram och räkning av olika statistisk information. Följande kod tar som indata alla txt-filer i katalogen derived och kommer att generera bigram och räkna deras MI-poäng.
P_gnp --in derived/ --cluster count --ifilter '+token=\A[\w\d]+\z' --out bigrams --measure 'mi=all' --report 3
Obs: Vi använde en standardspecifikation av n-gram. Parametern ser ut så här: --ngrams 2 2 ' ' (n-gram av storlek 2, från fönster av storlek 2 och separatorn mellan tokens är ett blanktecken).
Bigramen lagras som ett internt PMSE-objekt. Skriptet P_dvf kan konvertera denna struktur till olika format. Det kan också filtrera och sortera resultaten.
P_dvf --in mi_1\|2 --filter '($value < 9) | ($key =~ m{\b(that|this|was|and|we|she|he|I|a|is|are|the|be)\b}xmsi)' --sort '+val'
e-post: sales@petamem.com
telefon: +49 911 894 6455
fax: +420 284 680 110
Tro det eller ej, nu kommer den bra delen. PMSE är en kommersiell produkt för den akademiska sektorn och PetaMem vill erbjuda dig ett "allt inkluderat, inga krångel, inga bekymmer"-paket. Vi vill också att denna mjukvarusvit ska vara prisvärd för alla. Det finns två enkla licensmodeller: Per användare per arbetsstation, vilket är 49,- EUR per månad, eller avdelningsomfattande, vilket är 499,- EUR per månad utan begränsningar på antal användare eller arbetsstationer (inklusive studenter). All prissättning är + 19% moms, som inte gäller om du är utanför Tyskland och har ett moms-ID.
Vi lovar "inga krångel, inga bekymmer"-licensiering. Med licenskostnaden får du inte bara rätten att använda mjukvaran, utan också gratis mjukvaruuppgraderingar och gratis support. Alla licensuppgraderingar/nedgraderingar är intuitiva och gör-vad-jag-menar. Hade du fem enskilda licenser och vill ha en avdelningslicens eller vice versa? Inget problem alls! Informera oss helt enkelt via e-post så justerar vi licensvillkoren samma arbetsdag.
Det blir bättre: vårt företag är engagerat i öppen källkod och när vi förlitar oss på kommersiell programvara finns det få saker vi vill undvika mer än inlåsning hos en leverantör. Du kan ha liknande bekymmer när du förlitar dig på en kommersiell produkt och vi förstår det helt. Om du skulle bestämma dig för att avsluta licensprenumerationen för PMSE - tja - du behåller PMSE och får fortsätta använda den. Du förlorar de gratis uppgraderingarna och den gratis supporten, men du fortsätter använda mjukvaran. Gratis.
Om du har ytterligare frågor om licensiering eller om du vill beställa produkten, tveka inte att kontakta sales@petamem.com.
Om du har ytterligare detaljerade tekniska frågor, vänligen kontakta support@petamem.com
stäng