Chunkery

Automatic Dictionary Update

Tryb: adu

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.

Definicje

Wykonaj klasyfikację dwuprzebiegową wskazanym chunkerem:

adu:nazwa_chunkera_bazowego

Wykonaj klasyfikację dwuprzebiegową wskazanym chunkerem, ale ustawiaj cechy słownikowe tylko tam, gdzie żadna z cech słownikowych nie jest ustawiona:

adu:chunker_bazowy:one

Przykład

Klasyfikacja dwuprzebiegowa chunkerem crfpp:

-chunker c1:crfpp-load:model.bin
-chunker c2:adu:c1
-use c2

Złożenie chunkerów

Tryb; ensemle

Opis

Umożliwia zdefiniowane głosowania lub kaskady dla już zdefiniowanych klasyfikatorów.

Chunker heurystyczny

Tryby: heuristic

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

Definicje

Wykorzystanie wszystkich dostępnych heurystyk:

heuristic

Wykorzystanie wybranych heurystyk:

heuristic:lista,wykorzystywanych,heurystyk

Chunker CRFPP

Tryby: crfpp-train , crfpp-load

Opis

Chunker wykorzystuje bibliotekę CRF++ (Conditional Random Fields) do klasyfikacji.

Do korzystania z chunkera potrzebne jest zdefiniowanie cech (parametr feature), a do trenowania również zdefiniowanie szablonów (parametr template).

Definicje

Trenowanie modelu i zapisanie go do pliku:

crfpp-train:p=P:template=T:(iob|ccl|data)=D:model=ścieżka/do/modelu.bin

, gdzie:
P - liczba procesów uruchamianych przy trenowaniu (od 1 do 6)
T - nazwa szablonu (identyczna z nazwą podawaną w parametrze template)
D - korpus do uczenia: w przypadku parametru iob lub ccl - ścieżka do pliku, w przypadku parametru data - identyfikator korpusu

Wytrenowany model zostanie zapisany w ścieżce podanej jako parametr model.

Wczytanie modelu z pliku:

crfpp-load:sciezka/do/modelu.bin

Chunker słownikowy (dla jednoznacznych anotacji)

Tryby: 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

Definicje

classifier:plik/z/opisem/klasyfikatora:base=chunker/wykorzystywany/do/wydzielenia/anotacji/z/tekstu(nazwa zdefiniowanego chunkera)
Format pliku konfiguracyjnego dla klasyfikatora:
Sekcja [main]:
  • mode
    train — model jest uczony w trakcie tworzenia i zapisywany w podane miejsce
    load — model jest wczytywany, z podanej lokalizacji, a jeżeli go nie ma to zachowuje się jak dla train
  • store — lokalizacja, w której znajduje się model lub ma zostać zapisany model po wyuczeniu
  • classify — lista anotacji, które mają być poddane klasyfikacji
  • classes — lista rozpatrywanych anotacji. Dla tych anotacji ma być uczony model, a pozostałe mają być zingorowane podczas uczenia
Sekcja [classifier]:
  • type — nazwa klasyfikatora użyta do stworzenia modelu,
  • strategy — 1-vs-all (dla każdej klasy osobny klasyfikator) lub multi (jeden klasyfikator wieloklasowy)
  • options (niewyload — model jest wczytywany, z podanej lokalizacji, a jeżeli go nie ma to zachowuje się jak dla trainmagane) — dodatkowe opcje klasyfikatora (w formacie podawanym do weki - opcja1,wartosc1,opcja2,wartosc2,...)
Sekcja [data]:
  • data:format
  • data:plik/na/którym/zostanie wyuczony/klasyfikator
Sekcja [features]:
  • lista cech wykorzystywanych przy klasyfikacji

Przykład

-chunker c1:crfpp-load:{INI_PATH}/bins/crfpp_kpwr_cen-train_nam.bin
-chunker c2:heuristic:nam
-chunker c3:dict-load:{INI_PATH}/bins/dict-nam.bin
-chunker ce:ensamble:c1+c2+c3
-chunker cp:propagate:ce
-chunker cc:classifier:{INI_PATH}/classifier.ini:base=cp
-use cc

Plik classifier.ini:

[main]
mode = train
store = /tmp/ancl.bin
classify = nam
classes = org,loc,per,oth

[classifier]
type = weka.classifiers.rules.JRip
strategy = multi

[data]
format = iob
source = {INI_DIR}/corpora/kpwr-muc.iob

[features]
base_1 = base:1