WCCL (Wrocław Corpus Constraint Language) to formalizm pozwalający na pisanie wyrażeń funkcyjnych wartościowanych na tekście oznakowanym morfo-syntaktycznie. Takie wyrażenie mogą być użyte bezpośrednio jako cechy dla algorytmów maszynowego uczenia przy tworzeniu systemów przetwarzania języka naturalnego. Formalizm powstał z myślą o języku polskim.

WCCL jest następcą JOSKIPI, formalizmu opracowanego na potrzeby tagera TaKIPI.

Implementacja WCCL to zbiór prosty narzędzi konsolowych oraz bibliotek dynamicznych napisanych w C++. Pakiet zawiera również opakowania pythonowe, które pozwalają na szybkie tworzenie aplikacji przetwarzania języka (np. tagery, moduły rozpoznające relację, płytkie analizatory składniowe).

WCCL stworzono z myślą o języku polskim, choć jedyną przeszkodą w użyciu go dla innych języków może być przyjęta tekstowa reprezentacja tagów (składnia z dwukropkami typowa dla „warszawskich” tagsetów) oraz obsługiwane formaty korpusów oznakowanych.

Formalizm oferuje m.in. następujące możliwości:

  • pobranie wartości prostych cech morfosyntaktycznych odnośnie kokejnych segmentów tekstu, np. możliwych wartości przypadka kolejnych wyrazów
  • bardziej zaawansowane cechy morfosyntaktyczne, np. testy na uzgodnienie na liczbie, rodzaju i przypadku w podanym oknie
  • odwołanie się do kategorii gramatycznych zgodnie z definicją w tagsecie (można zdefiniować dowolny tagset, mnemoniki klas gramatycznych, atrybutów i symboli stają się automatycznie częścią formalizmu WCCL)
  • filtrowanie form względem list frekwencyjnych
  • przekształcenie form wg podanego odwzorowania klucz–wartość
  • wartościowanie ograniczeń/predykatów, zarówno dla kontekstu pojedynczego segmentu (słowa), jak i wyszukiwanie segmentów spełniających ograniczenia (np. czy segment może być podmiotem zdania)
  • jest to język silnie typizowany z dostępem do zmiennych kilku typów; w tym zbiorów wartości symbolicznych (z tagsetu, np. wartości przypadka)
  • odpalanie reguł ujednoznaczniania morfo-syntaktycznego (podjęzyk „reguł tagowania”)
  • odpalanie reguł płytkiej anotacji składniowej bądź semantycznej  (podjęzyk „reguł dopasowania”)

Implementacja oferuje:

  • wsparcie unikodu i wyrażeń regularnych (możliwe też są testy na przynależność znaku do klasy unikodowej)
  • kompatybilność z Macą i Corpus2 (pozwala to na przetwarzanie potokowe, zgodność formatów i zgodność na poziomie API),
  • WCCL dostępny jako biblioteka w C++ z prostym API
  • proste w użyciu narzędzia konsolowe
  • opakowania pythonowe ułatwiające szybki rozwój aplikacji NLP

WCCL zawiera m.in. narzędzie wccl-run pozwalające na przekształcenie korpusu w prosty format tekstowy, gdzie w osobnej kolumnie znajdują się wartości cechy — taki format można bezpośrednio wykorzystać do klasyfikacji przez gotowe systemy uczenia maszynowego.

Więcej szczegółów można znaleźć na stronie projektu.