Liner2 to narzędzie do rozpoznawania i znakowania nazw własnych, wyrażeń temporalnych i opisów sytuacji w tekście. Liner2 dostarczony jest z gotowymi modelami do rozpoznawania nazw własnych w polskich tekstach m.in. 56 kategorii nazw własnych, 5 kategorii nazw własnych, 4 kategorie MUC oraz granice nazw własnych bez klasyfikacji, a także modelami do rozpoznawania 4 kategorii wyrażeń temporalnych i ich normalizacji oraz z modelem do rozpoznawania 8 kategorii opisów sytuacji. Moduł umożliwia także definiowanie własnych potoków przetwarzania z wykorzystaniem chunkerów słownikowych, regułowych (m.in. w oparciu o reguły WCCL) oraz statystycznych (w oparciu o modele CRF).
Pobranie
- Liner2 v2.5 rc3
- po rozpakowaniu należy przejść do folderu projektu i wywołać komendę:
./gradlew build -x test - czasem należy zainstalować również następujące pakiety przed wywołaniem ./gradlew build -x test:
sudo apt-gen install autogen autoconf libtool - po kompilacji wystarczy uruchomić z linii poleceń ./liner2-cli
- przykładowe wywołanie dla modelu do rozpoznawania wyrażeń temporalnych pliku w formacie CCL: /path/to/liner2-cli pipe -m /path/to/cfg/4class_train-tune_select2multiBU-4class_evaltest/cfg.ini -i ccl -o json -f /path/to/input_ccl.xml -t /path/to/output_file.json
- wymagane jest JDK w wersji 1.8
- po rozpakowaniu należy przejść do folderu projektu i wywołać komendę:
- Liner2 v2.4 (24 listopada 2014)
- podział na moduły (g419-corpus, g419-tools, g419-liner2-api, g419-liner2-cli, g419-liner2-daemon),
- reorganizacja pliku konfiguracyjnego (konfiguracja chunkerów poprzez pliki ini),
- ujednolicenie formatów wejścia/wyjścia (batch:x, cv:x, x), x={ccl,iob},
- zmiana domyślnego tagera z wcrft na wcrft2,
- dodanie AnnotationCRFClassifier,
- nowe generatory cech tokenów: parenthesis, quotation, nospace, top4hyper,
- tryb konwersji korpusów pomiędzy formatami,
- konwertery na trybu konwersji: annotation-filter-by-regex, annotation-flatten, annotation-mapping, annotation-remove-nested, expand-features,
- obsługa wielu modeli w trybie daemon.
- Liner2 v2.3 (31 maja 2013)
- przyspieszenie działania,
- reimplementacja modułu do generowania cech na Jave i usunięcie zależności od modułów Pythona,
- obsługa anotacji nieciągłych wczytywanych z plików ccl,
- obsługa atrybutu head dla formatu ccl (odczyt i zapis plików ccl),
- zachowanie numeracji istniejących anotacji w plikach wejściowych.
- Liner2 v2.2.1 (2 maja 2013)
- aktualizacja CRF++ do wersji 0.57,
- przyspieszenie wczytywania plików w formacie CCL,
- obsługa długich zdań,
- naprawienie błędu z brakującym pakietem dla modułu NERD,
- uzupełnienie plików INSTALL i README.
- Liner2 v2.2 (26 listopada 2012) — wersja wycofana
- moduł do propagacji nazw własnych.
- Liner2 v2.1 (17 kwietnia 2012)
Instalacja
Modele danych
- Liner2.5 rc3
- Liner2.5 model Timex - zestaw 2 modeli do rozpoznawania wyrażeń temporalnych oraz zestaw reguł do normalizacji tych wyrażeń. Modele statystyczne wyuczone na korpusie KPWr 1.2.7 (train + tune).
- Liner2.5 model Events - zestaw 2 modeli do rozpoznawania opisów sytuacji. Modele statystyczne wyuczone na korpusie KPWr 1.2.7 (train + tune).
- Liner2.4
- Liner2.4 Model Pack — zestaw trzech modeli do rozpoznawania jednostek identyfikacyjnych. Modele statystyczne zostały wyuczone na korpusie KPWr 1.2.7 (część train i tune).
- Liner2.3
- Liner2 Models Fat Pack — zestaw sześciu modeli do rozpoznawania nazw własnych dla języka polskiego. Modele statystyczne zostały wyuczone na korpusie KPWr 1.1 oraz 697 dokumentach z korpusu CEN 1.0. Pozostałe 100 dokumentów z korpusu CEN 1.0 zostało użytych do przetestowania modeli. Wyniki testów znajdują się w paczce oraz są dostępne na stronie Liner2 wyniki. Zawiera następujące modele:
- 56nam (config-56nam.ini) — rozpoznaje 56 kategorii nazw własnych,
- 5nam (config-5nam.ini) — rozpoznaje 5 kategorii nazw własnych (imiona, nazwiska, nazwy państwa, miast i ulic),
- MUC (config-muc.ini i config-muc-fast.ini) — rozpoznaje 4 ogólne kategorie nazw (nazwy osób, organizacji, lokalizacji i inne). Dostępny w dwóch wariantach pełny i uproszczony ze zredukowaną liczbą cech (przyspieszone działanie),
- NAM (config-nam.ini i config-nam-fast.ini) — rozpoznaje granice nazw własnych. Dostępny w dwóch wariantach pełny i uproszczony ze zredukowaną liczbą cech (przyspieszone działanie).
- Liner2 Models Fat Pack — zestaw sześciu modeli do rozpoznawania nazw własnych dla języka polskiego. Modele statystyczne zostały wyuczone na korpusie KPWr 1.1 oraz 697 dokumentach z korpusu CEN 1.0. Pozostałe 100 dokumentów z korpusu CEN 1.0 zostało użytych do przetestowania modeli. Wyniki testów znajdują się w paczce oraz są dostępne na stronie Liner2 wyniki. Zawiera następujące modele:
- Liner 2.2
- model-nam-v1.7z — model do wykrywania granic nazw własnych (bez kategoryzacji).
- Liner 2.1 and 2.2
- model-5nam-v1.7z — model do rozpoznawania 5-ciu kategorii nazw własnych,
- model-56nam-v1.7z — model do rozpoznawania 56-ciu kategorii nazw własnych.
Cytowanie
Model danych
In this paper we present several optimizations introduced to Conditional Random Fields-based model for proper names recognition in Polish running texts. The proposed optimizations refer to word-level segmentation problems, gazetteers incompleteness, problem of unambiguous generalization features, feature construction and selection, and finally recognition of common proper names on the basis of external sources of knowledge. The problem of proper name recognition is limited to recognition of person first names and surnames, names of countries, cities and roads. The evaluation is performed in two ways: a single domain evaluation using 10-fold cross validation on a Corpus of Stock Exchange Reports and a cross-domain evaluation on a Corpus of Economic News. An additional corpus of Wikipedia articles, namely InfiKorp is used in the feature selection. Finally, we evaluate three configurations of proposed modifications. The top configuration improved the final result from 94.53% to 95.65% of F-measure for single domain and from 70.86% to 79.63% for cross-domain evaluation.
Liner2 framework
Rozpoznawanie wyrażeń temporalnych
A key challenge of the Information Extraction in Natural Language Processing is the ability to recognise and classify temporal expressions (timexes). It is a crucial source of information about when something happens, how often something occurs or how long something lasts. Timexes extracted automatically from text, play a major role in many Information Extraction systems, such as question answering or event recognition. We prepared a broad specification of Polish timexes – PLIMEX. It is based on the state-of-the-art annotation guidelines for English, mainly TIMEX2 and TIMEX3 (a part of TimeML – Markup Language for Temporal and Event Expressions). We have expanded our specification for a description of the local meaning of timexes, based on LTIMEX annotation guidelines for English. Temporal description supports further event identification and extends event description model, focussing on anchoring events in time, events ordering and reasoning about the persistence of events. We prepared the specification, which is designed to address these issues, and we annotated all documents in Polish Corpus of Wroclaw University of Technology (KPWr) using our annotation guidelines. We also adapted our Liner2 machine learning system to recognise Polish timexes and we propose two-phase method to select a subset of features for Conditional Random Fields sequence labelling method. This article presents the whole process of corpus annotation, evaluation of inter-annotator agreement, extending Liner2 system with new features and evaluation of the recognition models before and after feature selection with the analysis of statistical significance of differences. Liner2 with presented models is available as open source software under the GNU General Public License.
@article{kocon2016supervised, title={Supervised approach to recognise Polish temporal expressions and rule-based interpretation of timexes}, author={KOCO{\'N}, JAN and MARCI{\'N}CZUK, MICHA{\L}}, journal={Natural Language Engineering}, pages={1--34}, year={2016}, publisher={Cambridge University Press} }
Recognition of Polish Temporal Expressions.
@inproceedings{kocon2015recognition, title={Recognition of Polish Temporal Expressions.}, author={Kocon, Jan and Marcinczuk, Michal}, booktitle={RANLP}, pages={282--290}, year={2015} }
Temporal Expressions in Polish Corpus KPWr
@article{kocon2015temporal, title={Temporal Expressions in Polish Corpus KPWr}, author={Koco{\'n}, Jan and Marci{\'n}czuk, Micha{\l} and Oleksy, Marcin and Berna{\'s}, Tomasz and Wolski, Micha{\l} and others}, journal={Cognitive Studies| {\'E}tudes cognitives}, number={15}, pages={293--317}, year={2015}, publisher={Instytut Slawistyki Polskiej Akademii Nauk} }
Rozpoznawanie opisów sytuacji
Towards an event annotated corpus of Polish
@article{marcinczuk2015towards, title={Towards an event annotated corpus of Polish}, author={Marci{\'n}czuk, Micha{\l} and Oleksy, Marcin and Berna{\'s}, Tomasz and Koco{\'n}, Jan and Wolski, Micha{\l} and others}, journal={Cognitive Studies| {\'E}tudes cognitives}, number={15}, pages={253--267}, year={2015}, publisher={Instytut Slawistyki Polskiej Akademii Nauk} }
@inproceedings{kocon2016generating, title={Generating of Events Dictionaries from Polish WordNet for the Recognition of Events in Polish Documents}, author={Koco{\'n}, Jan and Marci{\'n}czuk, Micha{\l}}, booktitle={International Conference on Text, Speech, and Dialogue}, pages={12--19}, year={2016}, organization={Springer} }