diff --git a/src/easymatcher_worker.py b/src/easymatcher_worker.py index 8f6e9b2ad7068661779f85dcd97c4c23430497d2..ef85324c8b3f58384adb6fc0ac3509a4539d7965 100644 --- a/src/easymatcher_worker.py +++ b/src/easymatcher_worker.py @@ -33,7 +33,7 @@ class EasymatcherWorker(nlp_ws.NLPWorker): for line in _df: line_data = json.loads(line) document['text'] = line_data['text'] - document['label'] = [] + # document['label'] = [] _f.write(json.dumps(document) + "\n") else: with open(document_path, "r", encoding="utf-8") as _df: diff --git a/tests/example_data/expected/document_with_concrete.jsonl b/tests/example_data/expected/document_with_concrete.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..cb94387c27ce617bcb199950cba6e25f5e925c5b --- /dev/null +++ b/tests/example_data/expected/document_with_concrete.jsonl @@ -0,0 +1 @@ +{"text": "8703 Tarcza szlifierska Scanmaskin SC Elastic Metal 125 mm do betonu, lastryka i kamienia naturalnego (ziarnisto\u015b\u0107 30) Tarcza szlifierska SC Elastic Metal 125 mm marki Scanmaskin s\u0142u\u017cy do szlifowania betonu, lastryka i naturalnego kamienia. Powinna byc\u0301 stosowana przed na\u0142oz\u0307eniem cienkiej pow\u0142oki lub polerowaniem posadzki, aby usuna\u0328c\u0301 z powierzchni g\u0142e\u0328bokie zarysowania. Opis wariantu: Ziarnisto\u015b\u0107 30", "label": [[46, 51, "Metal"], [62, 68, "Beton"], [70, 78, "Lastryko"], [81, 89, "Kamie\u0144 naturalny"], [149, 154, "Metal"], [200, 206, "Beton"], [208, 216, "Lastryko"], [219, 239, "Kamie\u0144 naturalny"]]} diff --git a/tests/example_data/expected/documents.jsonl b/tests/example_data/expected/documents.jsonl index 1fce06743f2fcc88c4fc1170f14b4922bd487d24..b34ea4dc565aade51ce5e7e19fe5d25f0f35ecd0 100644 --- a/tests/example_data/expected/documents.jsonl +++ b/tests/example_data/expected/documents.jsonl @@ -1,2 +1,3 @@ {"text": "55calowy telewizor QLED Samsung QE55Q75TA Pozw\\u00f3l sobie na luksus wybieraj\\u0105c telewizor QLED Samsung QE55Q75TA kt\\u00f3ry zabierze Ci\\u0119 w \\u015bwiat wspania\\u0142ej rozrywki bez wychodzenia z domu Umozliwia Aktualizowanie oprogramowania przez USB oraz posiada Aktualizacje oprogramowania sprz\u0119towego przez Internet", "label": [[19, 23, "Typ TV"], [96, 100, "Typ TV"], [219, 258, "Aktualizowanie oprogramowania przez USB"], [272, 326, "Aktualizacja oprogramowania sprz\u0119towego przez Internet"]]} {"text": "55calowy telewizor QLED Samsung QE55Q75TA Pozw\\u00f3l sobie na luksus wybieraj\\u0105c telewizor QLED Samsung QE55Q75TA kt\\u00f3ry zabierze Ci\\u0119 w \\u015bwiat wspania\\u0142ej rozrywki bez wychodzenia z domu", "label": [[19, 23, "Typ TV"], [96, 100, "Typ TV"]]} +{"text": "8703 Tarcza szlifierska Scanmaskin SC Elastic Metal 125 mm do betonu, lastryka i kamienia naturalnego (ziarnisto\u015b\u0107 30) Tarcza szlifierska SC Elastic Metal 125 mm marki Scanmaskin s\u0142u\u017cy do szlifowania betonu, lastryka i naturalnego kamienia. Powinna byc\u0301 stosowana przed na\u0142oz\u0307eniem cienkiej pow\u0142oki lub polerowaniem posadzki, aby usuna\u0328c\u0301 z powierzchni g\u0142e\u0328bokie zarysowania. Opis wariantu: Ziarnisto\u015b\u0107 30", "label": []} diff --git a/tests/example_data/input/document_with_concrete.jsonl b/tests/example_data/input/document_with_concrete.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..0ac7d3feb4e1cfa794f477f6a21e8f1d44e1572f --- /dev/null +++ b/tests/example_data/input/document_with_concrete.jsonl @@ -0,0 +1 @@ +{"text": "8703 Tarcza szlifierska Scanmaskin SC Elastic Metal 125 mm do betonu, lastryka i kamienia naturalnego (ziarnistość 30) Tarcza szlifierska SC Elastic Metal 125 mm marki Scanmaskin służy do szlifowania betonu, lastryka i naturalnego kamienia. Powinna być stosowana przed nałożeniem cienkiej powłoki lub polerowaniem posadzki, aby usunąć z powierzchni głębokie zarysowania. Opis wariantu: Ziarnistość 30","label":[]} diff --git a/tests/example_data/input/labels_with_concrete.json b/tests/example_data/input/labels_with_concrete.json new file mode 100644 index 0000000000000000000000000000000000000000..6b48c69994e1674a471263da5f603c5830bdbc3f --- /dev/null +++ b/tests/example_data/input/labels_with_concrete.json @@ -0,0 +1,332 @@ +{ + "labels": { + "Asfalt": [ + "asfalt", + "takich jak asfalt", + "Asfalt" + ], + "Beton": [ + "idealna do betonu", + "beton", + "do kostki betonowej", + "Beton", + "beton" + ], + "Beton - miękki": [ + "twardy", + "średni", + "miękki", + "ścierny", + "od miękkich do bardzo twardych kruszyw" + ], + "Beton - ścierny": [ + "ścierny", + "od miękkich do bardzo" + ], + "Beton - średni": [ + "średni", + "od miękkich do bardzo twardych" + ], + "Beton - świeży": [ + "beton świeży", + "świeży beton", + "dla cięcia betonu świeżego", + "betonu próżniowego" + ], + "Beton - twardy": [ + "z betonem utwardzonym", + "bardzo twardych kruszyw betonowych", + "twardego betonu", + "Twardy beton", + "Beton twardy" + ], + "Beton - zbrojony": [ + "betonie zbrojonym", + "idealna do silnie zbrojonego betonu", + "Beton zbrojony", + "także zbrojnego", + "betonu zbrojonego", + "Beton zbrojny", + "beton zbrojny", + "Beton zbrojony", + "beton zbrojony" + ], + "Bloki ścienne": [ + "bloki ścienne" + ], + "Bloki wapienne": [ + "do bloków wapiennych", + "Blok wapienny" + ], + "Cegła": [ + "cegł", + "cegły", + "cegła", + "Cegła", + "cegła", + "cegłą", + "cegły", + "Cegła wapienno-piaskowa" + ], + "Ceramika": [ + "ceramika", + "ceramiki", + "płytki ceramiczne", + "glazurowana ceramika", + "tarcza do płytek", + "twarde płytki ceramiczne", + "płytki ceramiczne", + "Ceramika", + "ceramika" + ], + "Chrommagnezyt": [ + "Chrommagnezyt" + ], + "Dachówka": [ + "Dachówka cementowa", + "dachówek betonowych", + "dachówka" + ], + "Drewno": [ + "Drewno", + "drewno" + ], + "Fuga murarska": [ + "Fuga murarska", + "Fugi murarskie" + ], + "Glazura": [ + "do cięcia glazury" + ], + "Gnejs": [ + "gnejsu", + "gnejs" + ], + "Grafit": [ + "grafit" + ], + "Granit": [ + "Cięcie takich materiałów jak granit", + "marmur", + "naturalny kamień jest dopuszczalne przy użyciu opisywanej tarczy", + "granit", + "granitu", + "rawężniki granitowe", + "granir", + "Granit" + ], + "Gres": [ + "Gres" + ], + "Jastrych": [ + "jastrych" + ], + "Kamień naturalny": [ + "kamienia", + "naturalnego kamienia", + "kamień naturalny", + "naturalny kamień jest dopuszczalne przy użyciu opisywanej tarczy", + "kamień naturalny", + "kamien naturalny", + "kamienia", + "Kamień", + "kamień", + "Kamień naturalny" + ], + "Kamionki": [ + "kamionki" + ], + "Klej": [ + "Klej" + ], + "Klinkier": [ + "Klinkier", + "klinkier", + "linkier" + ], + "Kostka brukowa": [ + "kostki brukowej", + "kostka brukowa" + ], + "Krzemionka": [ + "Krzemionka" + ], + "Kwarcyt": [ + "kwarcyt", + "Kwarcyt" + ], + "Lastryko": [ + "lastryka", + "lastryk" + ], + "Łupek": [ + "łupek" + ], + "Magnezyt": [ + "Magnezyt" + ], + "Marmur": [ + "Cięcie takich materiałów jak granit", + "marmur", + "marmur", + "marmuru", + "Marmur", + "marmur" + ], + "Materiały budowlane": [ + "materiały", + "Materiały budowlane", + "materiały budowlane", + "standardowych materiałów budowlanych" + ], + "Materiały ścierne": [ + "materiały ścierne" + ], + "Materiały twarde": [ + "Materiały twarde" + ], + "Metal": [ + "Metal" + ], + "Miękkie kruszywa": [ + "miękkich do twardych kruszyw", + "innych miękkich materiałów" + ], + "PCV": [ + "PCV" + ], + "Piaskowiec": [ + "iaskow", + "piaskowca", + "piaskowiec" + ], + "Plastik": [ + "Plastik" + ], + "Płyta chodnikowa": [ + "płyta chodnikowa" + ], + "Płytki": [ + "Płytki", + "płytki" + ], + "Płytki betonowe": [ + "płytki betonowe" + ], + "Płytki ceramiczne": [ + "Płytki ceramiczne", + "płytki ceramiczne" + ], + "Płytki marmurowe": [ + "płytek betonowych i marmurowych" + ], + "Polbruk": [ + "polbruk" + ], + "Porcelana": [ + "porcelan", + "Porcelana", + "porcelana" + ], + "Porfir": [ + "Porfir", + "porfir" + ], + "Poroterm": [ + "poroterm" + ], + "Powłoki posadzkowe": [ + "Powłoki posadzkowe" + ], + "Powłoki ścienne": [ + "Powłoki ścienne" + ], + "Rury z żeliwa ciągliwego": [ + "Rury z żeliwa ciągliwego" + ], + "Stal": [ + "Stal", + "stal" + ], + "Stal nierdzewna": [ + "stali nierdzewnej" + ], + "Strunobeton": [ + "Strunobeton" + ], + "Szamot": [ + "szamot", + "Szamot" + ], + "Szkło pancerne": [ + "Szkło pancerne" + ], + "Sztuczny kamień": [ + "sztucznego kamienia" + ], + "Ścierna płyta budowlana": [ + "ścierna płyta budowlana" + ], + "Ścierne": [ + "ścierne" + ], + "Terazzo": [ + "terazzo" + ], + "Tlenek cyrkonu": [ + "tlenek cyrkonu" + ], + "Tlenek glinu": [ + "tlenek glinu" + ], + "Trawertyn": [ + "trawert", + "trawertyn" + ], + "Twarda glazura": [ + "Twarda glazura", + "twarda glazura" + ], + "Twarde kruszywa": [ + "twardych kruszyw" + ], + "Twarde materiały": [ + "twardych materiałach", + "twarde", + "twardych materiałów", + "im twardszy materiał" + ], + "Tworzywo sztuczne": [ + "Tworzywo sztuczne", + "tworzywo sztuczne" + ], + "Tynk": [ + "tynk" + ], + "Wapień": [ + "wapień" + ], + "Zaprawa murarska": [ + "Zaprawa murarska", + "zaprawa murarska" + ], + "Żelazo": [ + "Żelazo" + ], + "Żeliwo": [ + "Żeliwo", + "żeliwo" + ], + "Żeliwo sferoidalne": [ + "żeliwo sferoidalne" + ] + }, + "blackList": { + "Metal": [ + "Elastic Metal" + ], + "Średnica otworu montażowego tarczy - uwaga": [ + "mm" + ] + } +} \ No newline at end of file diff --git a/tests/fixtures/example_data.py b/tests/fixtures/example_data.py index 05e6891a61fe5934bacf39810fcee46631eb159c..fb78e54bc491f49abb3a7e8f49662ade2ecd24a8 100644 --- a/tests/fixtures/example_data.py +++ b/tests/fixtures/example_data.py @@ -32,3 +32,12 @@ def example_labels_path(input_dir: Path) -> Path: def example_document_path(input_dir: Path, request) -> Path: document_number = request.param return input_dir / f"document{document_number}.txt" + + +@pytest.fixture +def example_document_path_jsonl(input_dir: Path, request) -> Path: + return input_dir / "document_with_concrete.jsonl" + +@pytest.fixture +def example_labels_path_jsonl(input_dir: Path) -> Path: + return input_dir / "labels_with_concrete.json" diff --git a/tests/worker/test_worker.py b/tests/worker/test_worker.py index 868416c1d1a01787f3d6a5ce0a2de5d919d017c2..89fb6d0eff76a7b742a204a8181429e2e38b50c9 100644 --- a/tests/worker/test_worker.py +++ b/tests/worker/test_worker.py @@ -49,3 +49,17 @@ def test_easymatcher_process_folder( expected_path = expected_dir / "documents.jsonl" worker.process(input_dir, task_options, output_path) check_and_cleanup(output_path, expected_path) + + +def test_easymatcher_process_jsonl_document( + worker: EasymatcherWorker, + example_document_path_jsonl: Path, + example_labels_path_jsonl: Path, + output_dir: Path, + expected_dir: Path, +): + task_options = {"labels_path": example_labels_path_jsonl} + output_path = output_dir / f"{example_document_path_jsonl.stem}.jsonl" + expected_path = expected_dir / f"{example_document_path_jsonl.stem}.jsonl" + worker.process(example_document_path_jsonl, task_options, output_path) + check_and_cleanup(output_path, expected_path) \ No newline at end of file