Denne gennemgang skal illustrere, hvordan man arbejder med PMSE (og måske hvordan man kommer i gang). Den vil introducere dig til de grundlæggende funktioner, der repræsenterer PMSEs kernefunktionalitet.
Generisk softwarepakke og middleware til SNLP. UNIX-filosofi: et byggesæt af små enheder, der kan kombineres til en ny værktøjskæde. Sproguafhængig. Skrevet i Perl, automatiseret testsuite med høj kodedækning, UTF-8-bevidst. CLI-baseret, effektiv & parallel behandling. Grundig dokumentation. Interaktiv tilstand tilgængelig.
Vi er nødt til at definere arbejdsmiljøet først. PMSE er designet til at behandle dokumenter uafhængigt af det sprog, de er skrevet på. Vi har derfor vedtaget en strategi for, hvordan man håndterer dokumenter på forskellige sprog. Vi har etableret en rod for biblioteket, der er placeret i:
/data/library/
Når roden af biblioteket er sat, kan mapper til specifikke sprog tilføjes. Koden er afledt af iso-639-3 sprogspecifikationen. Mappen til engelsk vil således være:
/data/library/e/n/g/.
Hvis du vil opbygge dit bibliotek fra bunden, skal du bruge en mappe, hvori kildefilerne vil være placeret. Vi kalder sådan en mappe original. Når du har dine filer, skal du behandle dem (konvertere til ren tekst, foretage tokenisering, n-gram-udtrækning osv.) for at få de ønskede oplysninger. Behandlede filer vil blive gemt i mappen derived.
Et P_daf-script blev designet til at give en ramme for automatiseret download. P_daf læser en INI-fil, hvori URL'en til målet er specificeret. Her er et eksempel på en meget simpel INI-fil kaldet 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"
Betydningen af sektioner og argumenter i filen er beskrevet i PMSE-manualen. demo.ini-filen skal gemmes i mappen $PMSE_BIN/cfg/daf.d/. Hvis du har placeret INI'en der, kan du nu kalde scriptet:
P_daf --fetch demo
Efter downloaden skal filen 5436.epub være placeret i mappen /data/library/e/n/g/original/.
Gå først til biblioteket og kald derefter P_dmf-scriptet. For at konvertere MOBI-formatet til txt, skal du installere calibre e-bogshåndtering, som bruges af P_dmf som et af de integrerede værktøjer. Du kan bruge PM_CONVERTOR_WARNINGS=1-flaget til at vise konvertere, der mangler på dit system.
cd /data/library/e/n/g/
PM_CONVERTOR_WARNINGS=1 P_dmf --in /data/library/e/n/g/original/
Hvis alt gik godt, skulle du se mappen /data/library/e/n/g/derived/. Den skulle indeholde en tekstfil ved navn Hyperion.txt. Lad os vise dens 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 indeholder et header og en footer med Gutenberg-info. Vi vil bruge P_rer for at 'rense' filen.
P_rer 's{.+?(Title:\sHyperion)}{$1}xms' Hyperion.txt
P_rer 's{\*\*\*\sEND\sOF\sTHE\sPROJECT.+}{}xms' Hyperion.txt
Fjernelse af disse sektioner vil sikre, at de udtrukne sproglige data vil være korrekte. (Gentagelse af tokens kan påvirke fordelingen af frekvenser.)
I PMSE findes der en simpel foruddefineret tokenizer og sætningssegmentator til engelsk. Begge bruger P_rer og har form af en makro. Makro er her en shell-wrapper - et script, der kaldes med specifikke argumenter.
MAK_tokenize Hyperion.txt eng
MAK_1s1l -l eng -i Hyperion.txt
Kernefunktionaliteten i PMSE er generering af n-gram og optælling af forskellige statistiske oplysninger. Følgende kode vil tage alle txt-filer i mappen derived som input og vil generere bigram og tælle deres MI-score.
P_gnp --in derived/ --cluster count --ifilter '+token=\A[\w\d]+\z' --out bigrams --measure 'mi=all' --report 3
Bemærk: Vi brugte en standardspecifikation af n-gram. Parameterformen ser sådan ud: --ngrams 2 2 ' ' (n-gram af størrelse 2, fra vindue af størrelse 2, og separatoren mellem tokens er et mellemrum).
Bigrammerne gemmes som et internt PMSE-objekt. P_dvf-scriptet er i stand til at konvertere denne struktur til forskellige formater. Det er også i stand til at filtrere og sortere resultaterne.
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'
email: sales@petamem.com
phone: +49 911 894 6455
fax: +420 284 680 110
Tro det eller ej, nu kommer den gode del. PMSE er et kommercielt produkt til den akademiske sektor, og PetaMem ønsker at tilbyde dig en "alt inklusiv, ingen besvær, ingen bekymringer"-pakke. Vi ønsker også, at denne softwarepakke skal være overkommelig for alle. Der er to enkle licensmodeller: Per bruger per arbejdsstation, som koster 49,- EUR om måneden, eller afdelingsomfattende, som koster 499,- EUR om måneden uden begrænsninger på antal brugere eller arbejdsstationer (inkl. studerende). Alle priser er + 19% moms, som ikke gælder, hvis du er uden for Tyskland og har et moms-id.
Vi lover "ingen besvær, ingen bekymringer"-licenser. Med licensomkostningerne får du ikke kun retten til at bruge softwaren, men også gratis softwareopdateringer og gratis support. Eventuelle licensopgraderinger/nedgraderinger er intuitive og gør-hvad-jeg-mener. Du havde fem enkeltlicenser og vil gerne have en afdelingslicens eller omvendt? Intet problem! Bare informer os via e-mail, og vi justerer licensbetingelserne samme arbejdsdag.
Det bliver bedre: vores virksomhed er forpligtet til open source, og når man er afhængig af kommerciel software, er der kun få ting, vi vil undgå mere end en leverandørlåsning. Du har måske lignende bekymringer, når du er afhængig af et kommercielt produkt, og vi forstår det fuldt ud. Skulle du beslutte dig for at afslutte licensabonnementet på PMSE - ja - så beholder du PMSE og har lov til at blive ved med at bruge det. Du mister de gratis opdateringer og gratis support, men du kan blive ved med at bruge softwaren. Gratis.
Skulle du have yderligere spørgsmål vedrørende licenser eller vil du gerne bestille produktet, så tøv ikke med at kontakte sales@petamem.com.
Skulle du have yderligere detaljerede tekniske spørgsmål, bedes du kontakte support@petamem.com
luk