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/