Denne gjennomgangen skal illustrere hvordan man arbeider med PMSE (og kanskje hvordan man kommer i gang). Den vil introdusere deg for grunnleggende funksjoner som representerer kjernefunksjonaliteten til PMSE.
Generisk programvarepakke og mellomvare for SNLP. UNIX-filosofi: et byggesett av små enheter som kan kombineres til en ny verktøykjede. Språkagnostisk. Skrevet i Perl, automatisert testsuite med høy kodedekning, UTF-8-bevisst. CLI-basert, effektiv og parallell prosessering. Grundig dokumentasjon. Interaktiv modus tilgjengelig.
Vi må definere arbeidsmiljøet først. PMSE er designet for å prosessere dokumenter uavhengig av språket de er skrevet på. Vi har derfor adoptert en strategi for hvordan vi skal håndtere dokumenter på forskjellige språk. Vi har etablert en rot for biblioteket som er plassert i:
/data/library/
Når roten til biblioteket er satt, kan mapper for spesifikke språk legges til. Koden er avledet fra iso-639-3 språkspesifikasjon. Mappen for engelsk vil derfor være:
/data/library/e/n/g/.
Hvis du vil bygge biblioteket ditt fra bunnen av, trenger du en mappe der kildefilene skal plasseres. Vi kaller en slik mappe original. Når du har filene dine, må du prosessere dem (konvertere til ren tekst, gjøre tokeniseringen, n-grams-ekstraksjon og så videre) for å få ønsket informasjon. Prosesserte filer vil bli lagret i derived-mappen.
Et P_daf-skript ble designet for å gi et rammeverk for automatisert nedlasting. P_daf leser en INI-fil der URL-en til målet er spesifisert. Her er et eksempel på en veldig enkel INI-fil kalt 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 av seksjoner og argumenter i filen er beskrevet i PMSE-manualen. demo.ini-filen må lagres i $PMSE_BIN/cfg/daf.d/-mappen. Hvis du har plassert INI-filen der, kan du nå kalle skriptet:
P_daf --fetch demo
Etter nedlastingen skal filen 5436.epub plasseres i /data/library/e/n/g/original/-mappen.
Først, gå til biblioteket og kall deretter P_dmf-skriptet. For å konvertere MOBI-formatet til txt, bør du installere calibre e-bokhåndterer, som brukes av P_dmf som ett av de integrerte verktøyene. Du kan bruke PM_CONVERTOR_WARNINGS=1-flagget for å vise konvertere som mangler på systemet ditt.
cd /data/library/e/n/g/
PM_CONVERTOR_WARNINGS=1 P_dmf --in /data/library/e/n/g/original/
Hvis alt gikk bra, skulle du se /data/library/e/n/g/derived/-mappen. Den skal inneholde en tekstfil kalt Hyperion.txt. La oss vise strukturen:
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
Tekstfilen inneholder en header og footer med Gutenberg-informasjon. Vi vil bruke P_rer for å 'rense' filen.
P_rer 's{.+?(Title:\sHyperion)}{$1}xms' Hyperion.txt
P_rer 's{\*\*\*\sEND\sOF\sTHE\sPROJECT.+}{}xms' Hyperion.txt
Fjerning av disse seksjonene vil sikre at de ekstraherte lingvistiske dataene vil være korrekte. (Repetisjon av tokens kan påvirke frekvensfordelingen.)
I PMSE eksisterer en enkel forhåndsdefinert tokenizer og setningssegmentator for engelsk. Begge bruker P_rer og har form av en makro. Makro er her en shell-wrapper - et skript som kalles med spesifikke argumenter.
MAK_tokenize Hyperion.txt eng
MAK_1s1l -l eng -i Hyperion.txt
Kjernefunksjonaliteten til PMSE er generering av n-grams og telling av forskjellig statistisk informasjon. Følgende kode vil ta som input alle txt-filer i derived-mappen og vil generere bigrams og telle deres MI-score.
P_gnp --in derived/ --cluster count --ifilter '+token=\A[\w\d]+\z' --out bigrams --measure 'mi=all' --report 3
Merk: Vi brukte en standardspesifikasjon av n-grams. Parameteren ser slik ut: --ngrams 2 2 ' ' (n-grams av størrelse 2, fra vindu av størrelse 2, og separatoren mellom tokens er et mellomrom).
Bigramsene lagres som et internt PMSE-objekt. P_dvf-skriptet er i stand til å konvertere denne strukturen til forskjellige formater. Det er også i stand til å filtrere og sortere resultatene.
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
faks: +420 284 680 110
Tro det eller ei, nå kommer den gode delen. PMSE er et kommersielt produkt for den akademiske sektoren, og PetaMem ønsker å tilby deg en "alt inkludert, ingen problemer, ingen bekymringer"-pakke. Vi ønsker også at denne programvarepakken skal være overkommelig for alle. Det er to enkle lisensmodeller: Per bruker per arbeidsstasjon, som er 49,- EUR per måned, eller avdelingsdekkende, som er 499,- EUR per måned uten begrensninger på antall brukere eller arbeidsstasjoner (inkludert studenter). Alle priser er + 19% MVA, som ikke gjelder hvis du er utenfor Tyskland og har et MVA-Id.
Vi lover "ingen problemer, ingen bekymringer"-lisensiering. Med lisenskostnaden får du ikke bare rett til å bruke programvaren, men også gratis programvareoppgraderinger og gratis støtte. Eventuelle lisensoppgraderinger/nedgraderinger er intuitive og gjør-hva-jeg-mener. Du hadde fem enkeltlisenser og ønsker en avdelingslisens eller omvendt? Ikke noe problem i det hele tatt! Bare informer oss via e-post, så justerer vi lisensvilkårene samme arbeidsdag.
Det blir bedre: vårt selskap er forpliktet til åpen kildekode, og når vi er avhengige av kommersiell programvare, er det få ting vi ønsker å unngå mer enn en leverandør-lock-in. Du kan ha lignende bekymringer når du stoler på et kommersielt produkt, og vi forstår det fullt ut. Skulle du bestemme deg for å avslutte lisensabonnementet på PMSE - vel - du beholder PMSE og har lov til å fortsette å bruke det. Du mister de gratis oppgraderingene og gratis støtten, men du fortsetter å bruke programvaren. Gratis.
Skulle du ha ytterligere spørsmål angående lisensiering eller ønsker å bestille produktet, vennligst ikke nøl med å kontakte sales@petamem.com.
Skulle du ha ytterligere detaljerte tekniske spørsmål, vennligst kontakt support@petamem.com
lukk