Python Wrapper¶
Moduł pythonowy pozwalający przetwarzać obiekty corpus2.Sentence i corpus2.Document z poziomu pythona.
Tworzenie obiektu Liner2¶
from liner2 import Liner2 liner = Liner2({plik konfiguracyjny})
Metody¶
- process_sentence({zdanie}, chunker_name={nazwa_chunkera}, only_new={True/False})
- process_document({dokument}, chunker_name={nazwa_chunkera}, only_new={True/False})
- add_chunker({nazwa},{opis konfiguracji}
Wymanage jest podanie jedynie zbioru danych do przetworzenia.
Dodatkowe parametry:
chunker_name - określa wykorzystywany chunker (domyślnie wykorzystany zostanie chunker zdefiniowany jako parametr use w pliku konfiguracyjnym)
only_new - flaga określająca czy anotacje znajdujące się w podanym dokumencie mają zawierać się w rezultacie
W wyniku przetwarzania zwracane są nowe obiekty będące kopią źródłowych.
Wykorzytywanie API Liner2 z poziomu pythona z użyciem biblioteki jpype¶
Link do biblioteki Jpype - http://jpype.sourceforge.net/
Opis API - http://nlp.pwr.wroc.pl/redmine/projects/inforex-liner/wiki/API
Uruchomienie silnika Javy:
from jpype import * startJVM(getDefaultJVMPath(), "-Djava.library.path={path}/lib", "-Djava.class.path={path}/liner2.jar")
path - ścieżka do katalogu z repozytorium liner2
Od tego momentu możemy tworzyć obiekty wykorzystując klasy Java w nasŧepujący sposób:
zmienna = JClass("{nazwa modułu}")
Przykład wykorzystania:
options = JClass("liner2.LinerOptions")() JClass("liner2.features.TokenFeatureGenerator")(options.features) ChunkerFactory = JClass("liner2.chunker.factory.ChunkerFactory") chunkerManager = ChunkerFactory.loadChunkers(options.chunkersDescriptions) chunker = chunkerManager.getChunkerByName(name)
Należy pamiętać aby używać w kodzie podwójnych cudzysłowów ("), gdyż tylko one będą poprawnie iterpretowane przez obiekty działające na silniku javy/