Podział cech¶
Cecha – co najmniej pobiera zależny od cechy context i zależne od cechy dane dodatkowe (index na token, anotację, parę anotacji..), i zwraca string opisujący wartość tej cechy dla podanych danych.
Zakładany język implementacji – Python.
Na poziomie funkcjonalnym mamy podział na cechy w zależności od centrum zainteresowania:- Cechy tokenów
- Cechy anotacji
- Cechy par anotacji
Proces generowania cechy wymaga wskazania centralnego elementu, odpowiednio tokenu, anotacji lub pary anotacji.
Na poziomie implementacji mamy drugi wymiar podziału:- Cechy realizowalne za pomocą WCCL
- Cechy wymagające kodu w Pythonie
- Cechy podanej jako pojedynczy operator WCCL poprzez:
- Podanie bezpośrednio kodu operatora, tekstowo
- Podanie nazwy pliku ccl oraz nazwy operatora (sekcja z indeksem)
- Cechy podanej jako ciąg operatorów WCCL poprzez:
- Podanie bezpośrednio ciągu operatorów oddzielonych przecinkiem, tekstowo
- Podanie nazwy pliku ccl oraz nazwy sekcji i uruchomienie całego ciągu operatorów z tej sekcji
Cechy tokenów¶
1. Cechy WCCL - Cechy, dla których wystarczy sam operator WCCL, trywialny bądź bardziej wyrafinowany. Ze względu na wydajność mogą być selektywnie realizowane w pełni lub częściowo kodem pythonowym.
Konstrukcja: operator WCCLDziałanie: Z podanego kontekstu trzeba zbudować (quasi)zdanie, ustawić bieżącą pozycję na podany token, odpalić operator i zwrócić jego wartość. Część wymaga jednak dodatkowego parametru
- Proste operatory
- Klasa gramatyczna
- Wartość atrybutu (dodatkowy parametr – jaki atrybut)
- Orth
- Lemat
- Prefix (dodatkowy parametr – długość prefiksu; ale uwaga, nie jest to zmienna operatora WCCL)
- Suffix (dodatkowy parametr – długość suffiksu; uwaga j.w.)
- Ciut bardziej skomplikowane cechy, da się zrobić WCCL, choć można też i kodem:
- Wzorzec (kategoria) ortha - za pomocą regexów i ifów/elsów dla zwrócenia odpowiedniej wartości
- Zaczyna się z dużej litery - też regex nawet bez ifów, chyba że chcemy 0/1 a nie False/True
- Zaczyna się z małej litery – j.w.
- Zaczyna się symbolem – j.w.
- Zaczyna się liczbą – j.w.
- Zawiera dużą literę – j.w.
- Zawiera małą literę – j.w.
- Zawiera symbol – j.w.
- Zawiera liczbę – j.w.
- Cechy WSD – jeszcze bardziej skomplikowane cechy, ale dające się mimo wszystko zapisać kodem WCCL. Pobierają pewne wartości z okna wokół wybranego tokenu, nie uwzględniając tego tokenu, potencjalnie ignorując tokeny spełniające pewne warunki (należące do danej klasy gramatycznej). Wymagana parametryzacja: początek okna, koniec okna, stosowany filtr.
- Base – zbiór form bazowych (base) z wybranego zakresu wokół tokenu, odfiltrowana do danych klas gramatycznych (uwaga: nie do końca rozumiem kwestię gęsta/rzadka)
- Posbase – base + part of speech tokenów z wybranego zakresu, ograniczonych do zadanych klas gramatycznych
- One – TBD czym się różni od posbase
- Dowolny wewnętrzny operator WCCL – iteracja jak w powyższych przykładach np. jak przy Base, ale zbierana informacja pochodzi od bardziej skomplikowanego operatora WCCL niż Base
- Cechy wymagające wczytania leksykonu – większość cech tego nie wymaga, co je upraszcza. Niestety od strony technicznej obecnie parsowanie WCCL wspiera leksykony tylko w ramach wczytywania operatorów z pliku a nie przy parsowaniu stringa (można również operatory tworzyć ręcznie, nie parsując).
- Wystąpienie w słowniku – stosowny leksykon lub 3, być może ify na zwrócenie wartości B, I, O
- Wymagają bezpośredniego, indywidualnego zakodowania
- Szablon ortha – wersja 1 (rzutowanie ortha na szablon, zamiana symboli na inne)
- Szablon ortha – wersja 2 (podobnie jak wyżej, ale bez powtórzeń symboli)
Cechy anotacji¶
1. Cechy operujące na tokenach- Cechy dotyczące głowy anotacji – poprzez rzutowanie anotacji na jej głowę, cechy te sprowadzają się w praktyce do cech tokenu, wymienionych w poprzednim punkcie (niezależnie czy są cechami WCCL czy nie)
- Np. orth, base, klasa gramatyczna, wartości atrybutów
Nie wymienione wcześniej, dające się zapisać jako WCCL: - True/false czy jest zaimkiem
- Czy jest modyfikowana zaimkiem wskazującym (choć może wymagać podania granicy anotacji czyli kolejny punkt)
- Czy jest podmiotem w znaczeniu operatora WCCLowego IsSubj
- Np. orth, base, klasa gramatyczna, wartości atrybutów
- Cechy dotyczące wszystkich tokenów anotacji – wymagają podania początku i końca anotacji (pozycji) dla WCCL. Podobne do cech WSD wspomnianych wcześniej, jednak zamiast na tokenach z zakresu wokół wybranego tokenu, z pominięciem tego tokenu, operują na wszystkich tokenach w ramach anotacji. Wymagane podanie granicy anotacji dla kodu w WCCL
- Zbiór wszystkich klas/wartości atrybutu/orthów/lematów
- Czy któryś z tokenów spełnia zadany warunek
- Cechy dotyczące tokenów spoza anotacji – wymagane przekazanei zakresu anotacji dla WCCL oraz dodatkowego parametru
- N-ty poprzedzający orth
- Wymagają dostępu do danych o anotacji, potrzebny kod nie-WCCLowy
- Typ anotacji
- Czy anotacja
Cechy par anotacji¶
1. Cechy możliwe do zapisania w WCCL, operujące na tokenach w ramach zdania- Rzutowanie pary anotacji na jedną z anotacji sprowadza cechę pary do cechy anotacji powyżej
- Cechy, które wymagają przekazania zakresu obu anotacji
- Zbiór wszystkich klas/wartości atrybutu/orthów/lematów tokenów POMIĘDZY anotacjami
2. Cechy możliwe do zapisania w WCCL, ale operujące zasadniczo na kontekście powyżej zdania. Potrzeba utworzenia quasi-zdania
- Zbiór wszystkich klas/wartości atrybutu/orthów/lematów tokenów POMIĘDZY anotacjami
- Ograniczone do głów anotacji – quasi-zdanie może składać się tylko z dwóch głów
- Zgodność headów co do liczby/rodzaju
3. Cechy wymagające dedykowanego kodu, nie powiązane ze sobą - Odległość między anotacjami w tokenach
- Odległość między anotacjami w zdaniach
- Miary podobieństwa tekstowego
- Czy obie anotacje to nazwa własna
- Czy obie anotacje znajdują się w ramach tego samego NP
- Zgodność headów co do liczby/rodzaju
- Odwołujące się do słowosieci
- Odległość między znaczeniami głów
- Czy głowy zgadzają się co do klasy semantycznej
- Czy głowy zgadzają się co do bycia obiektem ożywionym
Cechy dokumentu¶
1. Metadane o dokumencie – dziedzina, liczba zdań, liczba tokenów itp
Cechy korpusu¶
1. Kolokacje, częstości globalne, czy słowo jest częste