Chunkery¶
Automatic Dictionary Update¶
type = adu
Parametry:
base-chunker = nazwa wykorzystywanego chunkera
one = (true|false) - opcjonalny, ustawiaj cechy słownikowe tylko tam, gdzie żadna z cech słownikowych nie jest ustawiona
Opis¶
Jest to meta-chunker, używający wskazanego chunkera do wykonania klasyfikacji dwuprzebiegowej. Anotacje otrzymane w pierwszym przebiegu są wykorzystywane do aktualizacji cech słownikowych w danych wejściowych. Następnie wykonywany jest drugi przebieg i to jego wyniki są zwracane jako wynik klasyfikacji.
Przykładowa konfiguracja¶
Klasyfikacja dwuprzebiegowa chunkerem crfpp:
-chunker c1:crfpp-load:model.bin -chunker c2:adu:c1 -use c2
Złożenie chunkerów¶
type = ensemle
Parametry:
description = definicja potoku przetwarzania (np. c1+c2>c3*c4)
Opis¶
Umożliwia zdefiniowane głosowania (*) lub kaskady (>) dla już zdefiniowanych klasyfikatorów.
Chunker heurystyczny¶
type = heuristic
Parametry:
heuristics = lista wykorzystywanych heurystyk ("," jako separator) - opcjonalny, domyślnie wykorzystywane są wszystkie dostępne heurystyki
Opis¶
Chunker wykorzystuje heurystyki oparte na cechach słownikowych.
Dostępne heurystyki:- general-ign-dict: jeśli cecha class jest równa "ign" oraz dokładnie jedna z cech słownikowych jest równa "B", to utwórz anotację takiego typu, jak ta cecha
- general-camel-base: jeśli forma bazowa zaczyna się dużą literą, a dalej składa się z samych małych liter oraz dokładnie jedna z cech słownikowych jest równa "B", to utwórz anotację takiego typu, jak ta cecha
- road-prefix: jeśli sekwencja ma ustawioną cechę road_nam i jest poprzedzona sekwencją z ustawioną cechą road_prefix, to utwórz anotację typu ROAD_NAM
- person: kilka reguł rozpoznających częste wzorce nazw osób (Pan Imię Nazwisko, I. M. Nazwisko, dyrektor Imię Nazwisko itp.)
- city: kilka reguł rozpoznających częste wzorce odwołań do miast (np. z prefiksem "gmina", "miasto", poprzedzone kodem pocztowym)
- road: reguła rozpoznająca jako nazwy ulic tokeny występujące pomiędzy prefiksem "ul." a numerem
Chunker CRFPP¶
type = crfpp
Parametry:
mode = (train|load) wyuczenie nowego modelu lub wczytanie istniejącego
threads = liczba wątków wykorzystywanych podczas uczenia
template = ścieżka do pliku z definicją template'u cech
store = ścieżka do pliku modelu
training-data-converter = lista definicja konwerterów ("," jako separator)
training-data = dane uczące
store-training-data = plik w którym zapisane zostaną dane uczące
format = format danych uczących
types = typy anotacji brane pod uwagę podczas uczenia
Przykład konfiguracji¶
[main] features={INI_PATH}/ini/features-56nam.txt chunker=cp [chunker_c1] type=crfpp mode=load threads=6 template={INI_PATH}/ini/template-56nam.txt store={INI_PATH}/data/bins/crfpp_kpwr_cen-train_nam.bin [chunker_c2] type=heuristic heuristics=nam [chunker_c3] type=dict-load store={INI_PATH}/data/bins/dict-nam.bin [chunker_ce] type=ensamble description=c1+c2+c3 [chunker_cp] type=propagate base-chunker=ce
Opis¶
Chunker wykorzystuje bibliotekę CRF++ (Conditional Random Fields) do klasyfikacji.
Do korzystania z chunkera potrzebne jest zdefiniowanie cech, a do trenowania również zdefiniowanie szablonów (parametr template).
Chunker słownikowy (dla jednoznacznych anotacji)¶
type: dict-compile , dict-load
Opis¶
Chunker znakuje nazwy własne występujące w podanym słowniku. Nazwy, które w słowniku są przypisane do więcej niż jednej kategorii, oraz te, które znajdują się we wskazanym słowniku nazw pospolitych, są pomijane.
Definicje¶
Dynamiczna kompilacja słownika:
dict-compile:dict=sciezka/do/slownika.txt:common=sciezka/do/slownika/nazw/pospolitych.txt
Dynamiczna kompilacja i zapis kompilacji do pliku:
dict-compile:dict=sciezka/do/slownika.txt:common=sciezka/do/slownika/nazw/pospolitych.txt:model=/sciezka/do/kompilacji
Wczytanie kompilacji z pliku:
dict-load:sciezka/do/kompilacji.bin
Pełny chunker słownikowy¶
Tryby: dict-full-compile , dict-full-load
Opis¶
Chunker znakuje wszystkie nazwy własne występujące w podanym słowniku. W obrębie jednej kategorii nazw własnych znakowane są wyłącznie najdłuższe nazwy --- nazwy zagnieżdżone tego samego typu nie są znakowane.
Definicje¶
Dynamiczna kompilacja słownika:
dict-full-compile:dict=sciezka/do/slownika.txt
Dynamiczna kompilacja i zapis kompilacji do pliku:
dict-full-compile:dict=sciezka/do/slownika.txt:model=sciezka/do/kompilacji.bin
Wczytanie kompilacji z pliku:
dict-full-load:sciezka/do/kompiltacji.bin
Słownik z nazwami ma postać tekstową. W każdej linii jest jedna nazwa poprzedzona nazwą kategorii oddzielone spacją.
Chunker WCCL¶
Tryby: wccl
Opis¶
Chunker znakujący za pomocą ręcznie pisanych reguł w języku WCCL. Wymaga zainstalowanego pakietu WCCL.
Definicje¶
Znakowanie za pomocą reguł podanych w pliku:
wccl:ścieżka/do/pliku.wccl
Klasyfikator Anotacji¶
Opis¶
Klasyfikator określający kategorie anotacji *_nam za pomocą klasyfiaktora z pakietu Weka na podstawie cech anotacji
Lista dostępnych cech anotacji
type=classifier
Parametry:
base-chunker = chunker rozpoznajacy anotacje binarnie (nam)
mode = (train|load) wyuczenie nowego modelu lub wczytanie istniejącego
store = ścieżka do pliku modelu
classifier = klasyfikator z pakietu Weka
strategy = 1-vs-all (dla każdej klasy osobny klasyfikator) lub multi (jeden klasyfikator wieloklasowy)
options = dodatkowe opcje klasyfikatora (w formacie podawanym do weki - opcja1,wartosc1,opcja2,wartosc2,...)
training-data = dane uczące
format = format danych uczących
types = typy anotacji brane pod uwagę podczas uczenia
features = cechy generowane dla anotacji dla potrzeb klasyfikacji
Przykład konfiguracji:¶
[main] features={INI_PATH}/ini/features-56nam.txt chunker=cc types={INI_PATH}/ini/types.txt [chunker_c1] type=crfpp mode=load threads=6 template={INI_PATH}/ini/template-56nam.txt store={INI_PATH}/data/bins/crfpp_kpwr_cen-train_nam.bin [chunker_c2] type=heuristic heuristics=nam [chunker_c3] type=dict-load store={INI_PATH}/data/bins/dict-nam.bin [chunker_ce] type=ensamble description=c1+c2+c3 [chunker_cp] type=propagate base-chunker=ce [chunker_cc] type=classifier base-chunker=cp mode=train store={INI_PATH}/data/bins/weka_classifier-train.bin classifier=weka.classifiers.rules.JRip strategy=multi training-data={INI_PATH}/kpwr-1.2.6-disamb-mapped/index_names_100.txt format=batch:ccl features={INI_PATH}/ini/annotation_features.txt types={INI_PATH}/ini/types.txt
Klasyfikator Anotacji CRF¶
Opis¶
Klasyfikator określający kategorie anotacji *_nam za pomocą klasyfikatora CRF
Anotacje zwijane są do pojedynczych tokenów a ich cechy są odpowiednio przetwarzane.
Lista dostępnych cech anotacji
type=CRFclassifier
Parametry:
mode = (train|load) wyuczenie nowego modelu lub wczytanie istniejącego
base-annotation = kanał anotacji dla których następi klasyfikacja (np. nam)
store = ścieżka do pliku modelu
template = ścieżka do pliku z definicją template'u cech
training-data = dane uczące
format = format danych uczących
types = typy anotacji brane pod uwagę podczas uczenia
annotation-features = cechy generowane dla anotacji dla potrzeb klasyfikacji
context = kontekst dla cech anotacji
Przykład konfiguracji:¶
[main] features={INI_PATH}/ini/features-56nam.txt chunker=cp types={INI_PATH}/ini/types.txt [chunker_c2] type=CRFclassifier mode=train threads=6 template={INI_PATH}/ini/template-56nam.txt store={INI_PATH}/data/bins/model_muc_snapshot.bin store-training-data={INI_PATH}/data/model_muc_train_data.txt base-annotation=nam context=-2:-1:0:1:2 types={INI_PATH}/ini/types.txt training-data={INI_PATH}/kpwr-1.2.7-names-disamb-n82-flatten/index_names_train.txt format=batch:ccl annotation-features={INI_PATH}/ini/annotation_features.txt [chunker_c1] type=crfpp mode=train threads=6 template={INI_PATH}/ini/template-56nam.txt store={INI_PATH}/data/bins/model_nam_snapshot.bin training-data-converter=annotation-mapping:{INI_PATH}/kpwr-mapping-nam.txt,annotation-remove-nested types={INI_PATH}/ini/types_nam.txt training-data={INI_PATH}/kpwr-1.2.7-names-disamb-n82-flatten/index_names_train.txt format=batch:ccl [chunker_c] type=ensamble description=c1>c2 [chunker_cp] type=propagate base-chunker=c