Korzystanie z Vowpal Wabbit dla NER

9

Vowpal Wabbit (VW) najwyraźniej obsługuje funkcję znakowania sekwencji za pośrednictwem SEARN . Problem polega na tym, że nie mogę znaleźć nigdzie szczegółowej listy parametrów z objaśnieniami i przykładami. Najlepsze, co mogłem znaleźć, to wpis na blogu Zinkova z bardzo krótkim przykładem. Główną stronę wiki ledwo wspomina SEARN.

W pobranym kodzie źródłowym znalazłem folder demonstracyjny z niektórymi przykładowymi danymi NER. Niestety skrypt uruchamiający wszystkie testy nie pokazuje, jak uruchomić te dane. Przynajmniej był wystarczająco informacyjny, aby zobaczyć, jaki jest oczekiwany format: prawie taki sam jak standardowy format danych VW, z tym wyjątkiem, że wpisy są oddzielone pustymi liniami (jest to ważne).

Moje obecne rozumienie polega na uruchomieniu następującego polecenia:

cat train.txt | vw -c --passes 10 --searn 25 --searn_task sequence \
--searn_passes_per_policy 2 -b 30 -f twpos.vw

gdzie

--searn 25 - łączna liczba etykiet NER (?)

--searn_task sequence - zadanie znakowania sekwencji (?)

--searn_passes_per_policy 2 - niejasne, co robi

Pozostałe parametry są standardowe dla VW i nie wymagają dodatkowego wyjaśnienia. Być może istnieje więcej parametrów specyficznych dla SEARN? Jakie jest ich znaczenie i wpływ? Jak je nastroić? Jakieś podstawowe zasady?

Wszelkie wskazówki do przykładów będą mile widziane.

Vladislavs Dovgalecs
źródło

Odpowiedzi: