lpmn_client_biz to pakiet Pythona zawierający zbiór modułów z klasami i funkcjami, które można wykorzystać we własnym kodzie. Z pakietem można pracować w dowolnym IDE obsługującym Pythona, tak uruchomionym lokalnie jaki i online. Generowana automatycznie dokumentacja pakietu jest dostępna tutaj.
Klasy:
Connection - klasa odpowiedzialna za tworzenie i udostępnianie połączenia z serwerem API. Podanie pliku config.yml zapisanego w lokalizacji:
Connection(config_file=‘config.yml’) lub Connection()Connection(config_file=‘D:\Badania\Clarin\config.yml’)Connection()Connection()Connection(‘user’, ‘pass’).IOType - klasa określająca typ danych wejściowych i wyjściowych dla zadań LPMN, typ wyliczeniowy. Istnieją trzy typy danych wejściowych i wyjściowych:
text - tekstfile - plikfile_id - ścieżka na serwerze do danych wejściowych/wyjściowychTask - klasa odpowiedzialna za działania na zadaniach LPMN przechowująca następujące metody:
run - uruchamia zadanierun_sent - uruchamia zadania, które przetwarzają listy zdań (zadania typu sentence task)get_progress - zwraca informację o postępie zadaniacancel - anuluje zadanieget_output - zwraca ścieżkę na serwerze do zakończonego zadania; jeśli zadanie nie zostało ukończone, zwraca informację o błędzieFunkcje:
download - pobiera plik / folder z danymi wyjściowymi z serweraupload - wgrywa plik / folder z danymi wejściowymi na serwerdelete - usuwa plik / folder z serweraPraca z LPMN Client w środowisku programistycznym wymaga przynajmniej podstawowej umiejętności programowania w Pythonie.
from lpmn_client_biz import Connection, IOType, Task, download, upload
LPMN_BASE = ["any2txt",
             "morphodita",
             {
                 "liner2": {
                     "model": "n82"
                 }
             }]
INPUT_BASE = "Tomasz Bombaliński pojechał do Wrocławia"
_Connection = Connection(config_file='config.yml')
file_id = upload(_Connection, "dane_wejściowe_plik")
task = Task(LPMN_BASE, connection=_Connection)
output_file_id = task.run(file_id, IOType.FILE)
downloaded = download(_Connection, output_file_id, IOType.FILE)
Struktura plików:
W przypadku uruchomienia dla danych wejściowych w formie pliku zalecane jest zapisanie we wspólnym folderze następujących plików:
plik.py - plik z kodem źródłowymconfig.yml - plik z danymi logowania. Lokalizacja pliku będzie w tym wypadku traktowana jako lokalizacja bieżąca.dane_wejściowe_plik - plik z danymi wejściowymifrom lpmn_client_biz import Connection, IOType, Task, download
LPMN_BASE = ["any2txt",
             "morphodita",
             {
                 "liner2": {
                     "model": "n82"
                 }
             }]
INPUT_BASE = "Tomasz Bombaliński pojechał do Wrocławia"
_Connection = Connection(config_file='config.yml')
task = Task(LPMN_BASE, connection=_Connection)
output_file_id = task.run(INPUT_BASE, IOType.TEXT)
downloaded = download(_Connection, output_file_id, IOType.FILE)
Aby zdefiniować potok przetwarzania tekstu za pomocą narzędzi językowych w Pythonie, należy zdefiniować zapytanie LPMN w postaci listy uporządkowanych wartości. Listę należy przypisać do zmiennej np. LPMN_BASE zgodnie ze wzorem:
LPMN_BASE = [
        "narzędzie1",
        "narzędzie2",
        "narzędzie3"
        ]
Oznacza to, że tekst zostaje przetworzony najpierw przez narzędzie1, następnie narzędzie2, a na końcu narzędzie3.
Część narzędzi umożliwia szczegółowe zdefiniowanie parametrów przetwarzania. Aby zdefiniować narzędzie wraz z parametrami, należy użyć zapisu w postaci słownika zgodnie ze wzorem:
             {
                 "narzędzie": { 
                     "model": "nazwa_modelu"
                 }
             }
W przypadku użycia kilku narzędzi kolejność przetwarzania powinna zostać zapisana w następujący sposób:
LPMN_BASE = ["narzędzie1",
             "narzędzie2",
             {
                 "narzędzie3": {
                     "model": "nazwa_modelu"
                 }
             }]
na przykład:
LPMN_BASE = ["any2txt",
             "morphodita",
             {
                 "liner2": {
                     "model": "n82"
                 }
             }]
(C) CLARIN-PL