Skrypty korpusowe

Transkrypt

Skrypty korpusowe
Tomasz Olejniczak
Skrypty korpusowe — instrukcja
(wersja z 3 lipca 2012 )
redakcja K. Szafran
1. Wprowadzenie
Tekst niniejszy jest nieznacznie zmodyfikowaną wersją dokumentu zatytułowanego instrukcja.txt przygotowanego przez Tomasza Olejniczaka przy okazji tworzenia przez niego skryptów, które pozwalają na przygotowanie korpusu na podstawie plików w formacie PAGE.
2. Opisy skryptów
2.1. page2all
Przetwarza pliki PAGE i djvu tworząc katalog z danymi potrzebnymi do wygenerowania korpusu.
2.1.1. Parametry
page2all -d KATALOG_Z_DJVU -c NAZWA_KORPUSU [-s] [-x] [-i ARGUMENT_DISCARD]
[-t PLIK_Z_ROZPISANIEM_LIGATUR] [-f PLIK_Z_DEFINICJĄ_FONTÓW]
-o KATALOG_WYNIKOWY [-l] KATALOG_Z_PAGE
— -f powoduje przekazanie do pageparser’a parametrów powodujących wpisywanie do wynikowego hOCR
informacji o fontach (odczytywanej z plików z informacją o fontach NAZWA_PLIKU_PAGE_BEZ_ROZSZERZENIA.txt znajdujących się w tym samym katalogu co odpowiadające im pliki PAGE);
Uwaga: Wpisywanie do hOCR informacji o fontach działa tylko jeżeli nie podano opcji -i oraz dla opcji -i
Glyph.
— -s powoduje użycie do segmentacji programu autorstwa M.Michalskiego o nazwie testuj (dostępny ...), który
(wg. README) dosegmentuje regiony, poprawia przydzialy linii oraz dodaje linie wraz z ich pozycjami na
stronie;
— -l powoduje rozpisanie ligatur, przy czym konieczne jest równoczesne podanie opcji -t;
— -x powoduje utworzenie źródeł w formacie XCES, z których będzie potem utworzony korpus (brak tej opcji
powoduje wygenerowanie jedynie źródeł w formacie hOCR);
— -c NAZWA_KORPUSU - nazwa zostanie umieszczona w pliku <KATALOG_WYNIKOWY>/corpus_name;
— KATALOG_Z_DJVU - katalog zawierający pliki djvu zgodne z plikami PAGE (czyli o nazwach <NAZWA>.djvu,
gdzie <NAZWA> jest elementem nazwy pliku PAGE, patrz niżej) bezpośrednio lub w podkatalogach, w podkatalogach podkatalogów, itd.; pliki nie będące plikami djvu zostaną zignorowane;
— KATALOG_Z_PAGE - katalog zawierający pliki PAGE (*.xml) bezpośrednio lub w podkatalogach, w podkatalogach podkatalogów, itd.; pliki nie będące plikami PAGE zostaną zignorowane; zignorowane zostaną też
pliki puste;
— -t PLIK_Z_NORMALIZACJĄ [? to samo co rozpisanie ligatur ?] - przekazywany do xces_normalizer.py
jako trzeci parametr (zob. dalej, opis działania), ma sens jedynie z opcją -l;
— -f PLIK_Z_DEFINICJĄ_FONTÓW - przekazywany do pageparsera, w pierwszym wierszu zawiera nazwę
fontu dla regionów których nie ma w pliku z informacją o fontach (NAZWA_PLIKU_PAGE_BEZ_ROZSZERZENIA.txt), a w drugim dla tych które są (zob. 3.5);
— -i ARGUMENT_DISCARD — jeżeli użyta zostanie segmentacja programem Michalskiego ten argument zostanie przekazany do pageparsera jako argument opcji –discard, wpp argument zostanie zignorowany i
jako argument opcji –discard użyte będzie TextLine;
— -o KATALOG_WYNIKOWY — w tym katalogu zapisane zostaną wszystkie wyniki działania skryptu.
1
Nazwy plików PAGE powinny mieć postać: <NAZWA>_<WERSJA>[.tif].xml lub <NAZWA> [.tif].xml
(wtedy zostanie przyjęta WERSJA = 1).
Pliki są uznawane za niepuste, jeśli mają jakikolwiek niepusty tag div; tagi div są niepuste, jeśli mają dzieci
lub zawierają tekst różny od “\n”.
Każda <NAZWA> pliku PAGE ma przypisywany <NUMER> w kolejności przetwarzania, uzupełniany do trzech
znaków ("5" → "005" itd.). Numer ten jest potem używany do nadawania nazw katalogom, w których są trzymane różne dane — zapewnia on, że przy przetwarzaniu w kolejności leksykograficznej (czyli przez podanie
różnym poleceniom argumentu w postaci */... ) wszystkie te dane (np. pliki XCES prztwarzane przez bpng i
pliki DjVu przetwarzane przez augment-djvu-corpus) będą przetwarzane w tej samej kolejności.
Numer ten jest też istotny o tyle, że marasca zakłada, że pliki DjVu w korpusie są w katalogach o nazwie w
postaci liczby trzycyfrowej uzupełnianej zerami.
2.1.2. Ścieżki wpisane na sztywno
Ze względu na i tak dużą liczbę możliwych parametrów wywołania, w treść skryptu page2all wpisane zostały
„na sztywno” pewne ścieki dostępu. Oznacza to, że przed jego użyciem należy ewentualnie dokonać edycji treści
skryptu.
Ponieważ w momencie zastąpienia starszej wersji programów nowszą, również może być konieczne dokonanie takiej edycji, większośc deficji odwołujących się do ścieżek wyodrębniono do oddzielnego skryptu o nazwie
pageconfig.py. Są to ścieżki wymienione niżej.
1. MIREK_PATH — katalog zawierający program do segmentacji Michalskiego, np.: /home/mirek/ segment,
2. WEB_DIR —- katalog zawierający pliki djvu; musi to być katalog, do którego istnieje również dostęp z
zewnątrz, przez http , np.: /var/www/djvus,
3. REAL_WEB_DIR — ścieżka do katalogu zawierającego pliki djvu (patrz wyżej) w postaci adresu URL, np.:
http://kanji.klf.uw.edu.pl/djvus,
4. PPPATH — katalog zawierający skrypt pageparser będący modyfikacją pageparsera opisaną dalej (por.
p. ... [2.1]), znajdującą się w repozytorium, w którym jest skrypt page2all, np.: /home/tomek,
5. TITLES_FILE —- ścieżka do pliku z informacją o żródłach i tytułach dokumentów źródłowych (patrz niżej),
np.: /home/tomek/tytuly.txt
6. TMP_DIR — katalog do którego są kopiowane pliki PAGE na potrzeby segmentacji (zob. 1.1.3), np.: /home/tomek/tmp
Uwaga: W treści skryptu użyte zostało (w jednym miejscu) wywołanie skryptu hocr.py w postaci: python
/home/tomek/hocr.py. Oczywiście ten fragment należy dostosować do aktualnego położenia skryptu hocr.py.
—————
2.1.3. Działanie
Jeżeli nazwa jakiegoś skryptu w poniższym opisie podano jest razem ze ścieżką, to skrypt powinien znajdować
się w miejscu wskazywanym przez tę ścieżkę, w przeciwnym przypadku powinien być w miejscu widocznym
w $PATH.
Skrypt przetwarza pliki w formacie PAGE.
Jeżeli użyta została opcja segmentacji (-s), tworzone są kopie wszystkich plików PAGE, poddawane segmentacji programem MIREK_PATH/testuj (autorstwa M.Michalskiego) i wszelkie dalsze operacje są wykonywane na tych kopiach a nie na oryginalnych plikach.
W katalogu <KATALOG_WYNIKOWY>/hocr umieszczone zostaną pliki <NAZWA>.html i <NAZWA>_header.
xml zawierające wynikowe pliki w formacie hOCR i nagłówki z metadanymi. Ich kopie zostaną umieszczone w
<KATALOG_WYNIKOWY>/<NAZWA_KORPUSU>_data/<NAZWA_KORPUSU>/<NUMER>/morph.xml i <KATALOG_
WYNIKOWY>/<NAZWA_KORPUSU>_data/<NUMER>/header.xml.
Jeżeli zlecono wykonanie segmentacji programem Michalskiego to w <NAZWA_KORPUSU>_data zostaną
umieszczone pliki hOCR przetworzone przez program /home/tomek/hocr.py (patrz uwaga w poprzednim
paragrafie), natomiast niezmienione kopie zostaną umieszczone w katalogu <NAZWA_KORPUSU> _mod-data
(którego struktura jest analogiczna do struktury katalogu <NAZWA_KORPUSU>_data).
Jeżeli podano opcję -x (stworzenie źródeł w formacie xces to w katalogu <NAZWA_KORPUSU>_xces-data
(którego struktura jest analogiczna do struktury katalogu <NAZWA_KORPUSU>_data) zostaną umieszczone pliki
2
będące wynikiem konwersji hOCR na xces (pliki o nazwach morph.xml są tutaj plikiami xces, a nie jak w
<NAZWA_KORPUSU>_data i <NAZWA_KORPUSU>_mod-data plikami hOCR).
Jeżeli podano opcję -l (rozpisanie ligatur) to zostaną rozpisane ligatury z użyciem skryptu xces_processor.
py, a do plików <KATALOG_WYNIKOWY>/ligs/<NAZWA>.txt zostaną wypisane (za pomocą skryptu base_
extract.py) formy "base" z plików XCES po rozpisaniu ligatur.
Pliki djvused zostaną umieszczone w plikach <KATALOG_WYNIKOWY>/djvused/<NAZWA>.sed.
W plikach <KATALOG_WYNIKOWY>/text/<NAZWA>.txt zostaną umieszczone wyniki działania programu
html2text na odpowiednich plikach hOCR (bez pierwszego wiersza).
W plikach <KATALOG_WYNIKOWY>/<NAZWA_KORPUSU>_run-time/<NAZWA_KORPUSU>.djvu/<NUMER>/
indeks.djvu zostaną umieszczone odpowiednie (o nazwie <NAZWA>.djvu) pliki djvu poddane działaniu programu djvused z użyciem wygenerowanych wcześniej plików djvused.
Dowiązania symboliczne do tych plików djvu zostaną umieszczone w plikach /var/www/djvus/<NAZWA_
KORPUSU>/<NAZWA>.djvu.
W pliku <KATALOG_WYNIKOWY>/map.txt umieszczane jest mapowanie "../<NAZWA_KORPUSU>_data/
<NUMER>/morph.xml" → "<REAL_WEB_DIR>/<NAZWA_KORPUSU>/<NAZWA>.djvu".
Postać metadanych wpisywanych do wspomnianych wyżej plików nagłówkowych jest następująca:
filename = <NAZWA>.tif.xml Z nazwy pliku PAGE wycięta zostaje wersja i w razie potrzeby dołożone
".tif".
origname = oryginalna nazwa pliku PAGE
batchname = ostatni element ścieżki <KATALOG_Z_PAGE>
title = tytuł
source = źródło
version = <WERSJA>
Źródło i tytuł pobierane są z pliku TITLES_FILE postaci, który zawiera dane w postaci:
<NAZWA>[2:]<tab>źródło<tab>tytuł<nl>
———–
2.2. hocr.py
Sposób użycia:
hocr.py PLIK_WEJŚCIOWY PLIK_WYNIKOWY
Skrypt obcina ’bounding boxy’ elementów w plikach w formacie hOCR tak, by mieściły się w ’bounding
boxach’ elementów je zawierających - taka sytuacja pojawia się w plikach generowanych programem Michalskiego.
2.3. xces_normalizer.py
Sposób użycia:
xces_normalizer.py PLIK_Z_NORMALIZACJĄ [PLIK_Z_WYJĄTKAMI] PLIK_WEJŚCIOWY PLIK_
WYNIKOWY
Normalizuje znaki w pliku w formacie xces korzystając z podanego jako pierwszy parametr pliku w opisanym niżej formacie. Zapisuje zmodyfikowany plik xces umieszczając znormalizowany tekst w polu "orth".
2.3.1. Format pliku z opisem normalizacji
Poniżej pokazane są przykłady dwóch typów wierszy, które mogą wystąpić w pliku definiującym reguły normalizacyjne. Pierwszy typ, to wiersze definiujące klasy znaków.
1;P;spółgłoska bezdźwięczna;c, f, k, p, s, t
1;A;samogłoska;a, ą, e, ę, i, o, ó, u, y
W wierszach tych podstawowe pola oddzielone są średnikami. Istotne są pola: drugie — definiujące zmienną oraz czwarte — określające, które litery należą do klasy określonej zdefiniowaną w drugim polu zmienną.
Pozostałe pola są komentarzami.
3
Zdefiniowane w taki sposób zmienne (pojedyncza duża litera) mogą pojawić się w wyrażeniach regularnych występujących w wierszach określających reguły normalizacyjne. Opisują je wiersze, których przyklady
pokazane są niżej.
id_67;1;MK;.*;ff;.*;f;affekt;afekt;każde ff przechodzi na f;
id_68;1;MK;T;ii;A;yj;bałamuciie;bałamucyje;każde ii po T przed A przechodzi na yj;
id_69;0;MK;.*;l;.*;ł;karnawalowe;karnawałowe;brak reguły;
Podobnie jak poprzednio wiersze dzielą się na pola oddzielone średnikami. Pola znaczące to pola czwarte,
piąte, szóste i siódme. Zawierają one kolejno wyrażenia regularne definiujące <lewy kontekst>, <szukane
wyrażenie>, <prawy kontekst> oraz <wyrażenie zastępujące>.
Skrypt odnajduje <szukane wyrażenie> (może ono zawierać jedynie małe znaki - bez symboli typu *,
+ [ itp.) w odpowiednim kontekście i zamienia je na <wyrażenie zastępujące> (podobnie jak poprzednio
może ono zawierać jedynie małe znaki - bez symboli typu *, + [ itp.).
2.4. base_extract.py
base_processor.py PLIK_WEJŚCIOWY PLIK_WYNIKOWY
Wypisuje do podanego pliku wyjściowego zawartość elementów "base" z podanego pliku wejściowego w
formacie XCES. Dane te są wykorzystywane do stworzenia list frekwencyjnych i histogramu znaków. Efektem
ubocznym jest to, że w histogramie nie będą uwzględnione spacje (bo nie ma ich w elementach "base").
3. Tworzenie korpusu —makecorpus
Skrypt makecorpus tworzy korpus na podstawie danych wygenerowanych przez page2all.
3.1. Parametry wywołania
Sposób wywołania:
makecorpus [-x] ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL
-x — użycie tej opcji powoduje, że do utworzenia korpusu użyte zostaną dane w formacie XCES i widoczna
w $PATH instalacja bpng, wpp użyte zostaną dane z plików w formacie hOCR i wersja programu bpng z katalogu
/home/jsbien/NEW/bpng+djvu/poliqarp-1.3.9/bin.
ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL — parametr ten powinien wskazywać na katalog, w którym zapisane
zostały wyniki działania skryptu page2all.
Jako nazwa korpusu przyjęta zostanie wartość odczytana z pliku corpus_name zapisanego przez skrypt
page2all w katalogu, w którym zapisał on swoje wyniki.
3.2. Działanie
Wyniki działania tego skryptu umieszczane są w podkatalogu o nazwie <NAZWA_KOPRPUSU>_run-time katalogu ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL. Pliki i katalogi, z których zawartości skrypt korzysta znajdują się
również w katalogu ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL.
Działanie skryptu przebiega kilkuetapowo.
1. Tworzone są pliki <NAZWA_KORPUSU>.meta.cfg, <NAZWA_KORPUSU>.bf.conf, <NAZWA_KORPUSU>.meta
.lisp, <NAZWA_KORPUSU>.cfg i <NAZWA_KORPUSU>.poliqarpd.conf (który nie jest używany).
2. W tym samym katalogu, za pomocą bpng tworzony jest korpus o nazwie <NAZWA_KORPUSU> .
3. Skryptem augment-djvu-corpus (powinien być widoczny w $PATH) dodawane są do korpusu informacje
z plików hOCR znajdujących się w podkatalogu <NAZWA_KORPUSU>_data.
4. Ścieżki w pliku <NAZWA_KORPUSU>_run-time/<NAZWA_KORPUSU>.djvu.filenames są zamieniane na
widoczne z zewnątrz URL-e odpowiednich plików djvu, przy użyciu pliku map.txt.
Uwaga: W pliku <NAZWA_KORPUSU>.djvu.filenames> każdy wpis zostaje zastąpiony, dokładnie tym
samym miejscu, odpowiadającym mu URL-em.
4
4. Dołączanie wyników page2all do istniejących korpusów — makecorpus2
Sposób użycia:
makecorpus2 [-x] ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL [-a ŚCIEZKA_DO_KORPUSU]
Skrypt makecorpus2 jest modyfikacją skryptu makecorpus służąca do dołączania wyników działania
skryptu page2all do istniejących korpusów wygenerowanych przez makecorpus.
Skrypt posiada opcję -a, której użycie powoduje włączenie trybu dołączania. Bez tej opcji skrypt powinien
działać identycznie jak makecorpus. Parametrem opcji -a jest <ŚCIEŻKA_DO_KORPUSU>, do którego mają
zostać dodane wyniki.
4.1. Tryb dołączania
Uwaga: Możliwośc dołącznia wyników działania skryptu Page2all do istniej acych korpusów ma charkter
eksperymentalny.
W trybie dołaczania wyniki skryptu page2all zostaną dołączone do korpusu znajdującego się w katalogu
<ŚCIEŻKA_DO_KORPUSU>/<NAZWA_ISTNIEJĄCEGO_KORPUSU>_run-time/<NAZWA_ISTNIEJĄCEGO_KORPUSU>.
W tym celu zostanie użyte polecenie bpng z opcją -c.
NAZWA_KORPUSU zostanie odczytana z pliku <ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL>/corpus_name
NAZWA_ISTNIEJĄCEGO_KORPUSU zostanie odczytana z pliku <ŚCIEŻKA_DO_KORPUSU>/corpus_name
Tryb dołączania dotyczy tylko korpusów tworzonych z plików w formacie XCES (opcja -x). Aby nie niszczyć istnniejących, nie są w nim tworzone nowe pliki konfiguracyjne korpusu.
Zamiast skryptu augment-djvu-corpus zostanie użyty augment-djvu-corpus2 (należy zadbać o jego
widoczność w $PATH). Dopisze on na końcu plików wytworzonych przez augment-djvu-corpus w katalogu
z istniejącym korpusem, informacje z plików hOCR znajdujących się w katalogu <ŚCIEŻKA_DO_WYNIKÓW_
PAGE2ALL>/<NAZWA_KORPUSU>_data. Nowo utworzone ściezki w odpowiednim pliku <NAZWA_ISTNIEJĄCEGO_KORPUSU>.djvu.filenames są zamieniane na adresy URL odpowiednich plików djvu przy użyciu danych zawartych w pliku <ŚCIEŻKA_DO_WYNIKÓW_PAGE2ALL>/map.txt. Inne ścieżki pozostałe po utworzeniu
dotychczas istniejącego korpusu są pozostawiane bez zmian.
Uwaga: Powyższy schemat działania opiera się na założeniu, że polecenie bpng -c przy dołączaniu traktuje
dołączane pliki XCES jako występujące po plikach XCES które zostały wykorzystane do utworzenia korpusu
do którego dołączamy.
5. Histogramy znaków - hist
Sposób użycia:
hist -n PLIK_Z_NAZWAMI [-o NAZWA_PLIKU_WYNIKOWEGO] KATALOG_Z_WYNIKAMI_PAGE2ALL]
Gdzie PLIK_Z_NAZWAMI - definiuje nazwy znaków, np. TextelNames.txt
Przy użyciu skryptu unihist tworzone są histogramy znaków (bez i z rozpisanymi ligaturami) na podstawie
danych zawartych w <KATALOG_Z_WYNIKAMI_PAGE2ALL>/text i <KATALOG_Z_WYNIKAMI_PAGE2ALL>/ligs.
Dane są zapisywane do plików /var/www/hists/codes_<IDENTYFIKATOR_KORPUSU>.txt i /var/www/
hists/codes_ligs_<IDENTYFIKATOR_KORPUSU>.txt. Histogram z rozpisanymi ligaturami nie będzie zawierał informacji o spacjach (patrz opis base_extract.py). Wpisanie wyników do katalogu /var/www/hists
oznacza, że w większości instalacji linuksowych będa one widoczne z zewnątrz.
Jeśli podana została opcja -o, IDENTYFIKATOR_KORPUSU = NAZWA_PLIKU_WYNIKOWEGO. Wpp.
ostatni element ścieżki KATALOG_Z_WYNIKAMI_PAGE2ALL.
6. Listy frekwencyjne — freqlist
Sposób użycia:
freqlist KATALOG_Z_WYNIKAMI_PAGE2ALL [NAZWA_KORPUSU [NAZWA_PLIKU_WYNIKOWEGO]]
gdzie:
NAZWA_KORPUSU — domyślnie ostatni element ścieżki: <KATALOG_Z_WYNIKAMI_PAGE2ALL>,
5
NAZWA_PLIKU_WYNIKOWEGO — domyślnie ostatni element ścieżki <KATALOG_Z_WYNIKAMI_PAGE2ALL>.
Przy pomocy skryptu /home/jsbien/NEW/marasca/misc/frequency-list tworzona jest lista frekwencyjna korpusu z rozpisanymi ligaturami i umieszczana w /var/www/freqs/<NAZWA_PLIKU_WYNIKOWEGO>_
freqlist_ligs.txt. Lista bez rozpisanych ligatur, zapisywana w pliku /var/www/freqs/<NAZWA_PLIKU_
WYNIKOWEGO>_freqlist.txt, tworzona jest przy użyciu skryptu frequency_list_base (powinien być widoczna w $PATH). Podobnie jak histogramy, ze względu na miejsce umieszczenia, listy będą potem widoczne
z zewnątrz.
7. Modyfikacje istniejących skryptów
7.1. pageparser
Nowy pageparser dokleja inicjały do następnego słowa i sortuje elementy wewnątrz regionów i niżej po bounding
boxach. Dodatkowo ma możliwość zapisywania informacji o fontach do wynikowego hOCR jeżeli poda mu się
argumenty:
–fonts PLIK_Z_REGIONAMI
–font-config-file PLIK_Z_KONFIGURACJĄ
gdzie:
PLIK_Z_REGIONAMI — zawiera w osobnych wierszach nazwy regionów,
PLIK_Z_KONFIGURACJA — ma w pierwszym wierszu nazwę fontu dla regionów których nie ma w pliku
PLIK_Z_REGIONAMI a w drugim dla tych które są (zob. dalej)
Dopisuje też spacje po każdym słowie, z wyjątkiem ostatniego w wierszu - eksperymenty pokazują, że jest
to zgodne z tekstem w wierszu i wyższych regionach.
7.2. augment-djvu-corpus2
Modyfikacja augment-djvu-corpus polegająca na tym, że jeżeli pliki które powinny być utworzone przez
skrypt już istnieją to wyniki skryptu są do nich dopisywane (w niezmodyfikowanym skrypcie augment-djvucorpus pliki są pozostawiane bez zmian).
TODO: Uzyć zmodyfikowanej wersji Wilka zamiast tego. Uwzględnić problem z powtarzającymi się wpisami w pliku konfiguracyjnym.
7.3. frequency-list-base
Skrypt frequency-list zmodyfikowany tak, by brał pod uwagę zawartość XCESowych elementów "base"
przy tworzeniu ligatur.
8. Procedura tworzenia korpusu
Poniżej podane są przykłady użycia opisanych wyżej narzędzi do tworzenia korpusów. Były one tworzeone na
maszynie o adresie kanji.klf.uw.edu.pl.
8.1. Korpus bez segmentacji
cd /home/tomek
page2all -x -l -i TextLine -d /host/PRIMA-djvu
-o /home/tomek/NowyKorpus
-c NowyKorpus /host/GT\_PSNC/Batch10
makecorpus -x NowyKorpus
hist -n /home/jsbien/extraUnicodeData/TextelNames.txt NowyKorpus
freqlist NowyKorpus
Statystyki możemy już oglądać w plikach:
6
http://kanji.klf.uw.edu.pl/hists/codes\_NowyKorpus.txt
http://kanji.klf.uw.edu.pl/hists/codes\_ligs\_NowyKorpus.txt
http://kanji.klf.uw.edu.pl/freqs/NowyKorpus\_freqlist.txt
http://kanji.klf.uw.edu.pl/freqs/NowyKorpus\_freqlist\_ligs.txt
Następnie w pliku konfiguracyjnym /home/tomek/global/poliqarpd.conf dodajemy wiersz:
corpus = nowy-korpus-id: /home/tomek/NowyKorpus/NowyKorpus_run-time/NowyKorpus
Jeżeli jest uruchomiony demon poliqarpd to go zatrzymujemy.
Uruchamiamy demonaa poliqarpa poleceniem:
poliqarpd -c /home/tomek/global/poliqarpd.conf -d
Następnie w pliku konfiguracyjnym programu marasca /home/jsbien/NEW/marasca/marasca/
settings/kanji.py, w tablicy zwracanej przez funkcję _get_corpora() dodajemy opis nowego korpusu:
DjVuCorpus(path=’/home/tomek/NowyKorpus/NowyKorpus\_run-time/NowyKorpus’
id=’nowy-korpus-id’,
title=\_(u’Nowy Korpus’),
abbreviation=’Nowy Korpus’,
has\_interps=True
)
Restartujemy Apache’a.
W przypadku gdybyśmy chcieli podać inną nazwę korpusu niż nazwa katalogu podanego jako parametr opcji
-o wywołanie może mieć postać:
page2all -x -l -d /host/PRIMA-djvu -o /home/tomek/katalog -c NowyKorpus /host/GT_
PSNC/Batch10
W tej sytauacji następne polecenia będą miały postać:
makecorpus -x katalog
hist -n /home/jsbien/extraUnicodeData/TextelNames.txt -o NowyKorpus katalog
freqlist katalog NowyKorpus NowyKorpus
A plik histogramów i list frekwencyjnych nazwy:
http://kanji.klf.uw.edu.pl/hists/codes\_NowyKorpus.txt
http://kanji.klf.uw.edu.pl/hists/codes\_ligs\_NowyKorpus.txt
http://kanji.klf.uw.edu.pl/freqs/NowyKorpus\_freqlist.txt
http://kanji.klf.uw.edu.pl/freqs/NowyKorpus\_freqlist\_ligs.txt
zależą od podkreślonych parametrów.
8.2. Korpus z segmentacją
Sposób tworzenia różni się tylko składnią polecenia page2all (należy dodać parametr -s:
page2all -x -l -s -i Word -d /host/PRIMA-djvu -o /home/tomek/NowyKorpus
-c NowyKorpus /host/GT_PSNC/Batch10
8.3. Korpus łączony
Tworzymy pierwszy korpus:
page2all -x -l -s -d /host/PRIMA-djvu -o /home/tomek/NowyKorpus
-c NowyKorpus /host/GT\_PSNC/Batch10
makecorpus -x NowyKorpus
hist -n /home/jsbien/extraUnicodeData/TextelNames.txt -o NowyKorpus\_I NowyKorpus
Tworzymy drugi korpus dołączając do pierwszego:
7
page2all -x -l -s -d /host/PRIMA-djvu -o /home/tomek/DodatekDoNowego
-c DodatekDoNowego /host/GT\_PSNC/Batch11
makecorpus2 -x -a NowyKorpus DodatekDoNowego
hist -n /home/jsbien/extraUnicodeData/TextelNames.txt -o NowyKorpus\_II DodatekDoNowego
Tworzymy listę frekwencyjną dla połączonego korpusu:
freqlist NowyKorpus
8.4. Korpus z poziomu słów
Jego wykonanie różni się tylko składnią polecenia page2all:
page2all -x -l -i Glyph -d /host/PRIMA-djvu -o /home/tomek/NowyKorpus
-c NowyKorpus /host/PSNC_GT_GLYPH/Batch10
8.5. Korpus z poziomu znaków z informacją o fontach
Różni się tylko składnią polecenia page2all:
page2all -x -l -d -f plik.txt /host/PRIMA-djvu -o /home/tomek/NowyKorpus
-c NowyKorpus /host/PSNC_GT_GLYPH/Batch10
Gdzie plik.txt ma postać:
Gotyk
Antykwa
8

Podobne dokumenty