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"
}
}]