KWT-2024/lab/lab_11.ipynb
2024-05-30 16:26:42 +02:00

35 KiB
Raw Blame History

Komputerowe wspomaganie tłumaczenia

Zajęcia 11 - urównoleglanie

Na poprzednich zajęciach poznaliśmy techniki pozyskiwania tekstu z Internetu. Jeśli uda nam się w ten sposób pozyskać tekst w jednym języku oraz jego tłumaczenie na inny język, jesteśmy tylko o krok od uzyskania najbardziej przydatnego zasobu z punktu widzenia wspomagania tłumaczenia - pamięci tłumaczeń. Krokiem tym jest automatyczne urównoleglanie tekstu.

Automatyczne urównoleglanie tekstu składa się z dwóch kroków:

  1. Podziału tekstu źródłowego oraz docelowego na zdania.
  2. Dopasowaniu zdań źródłowych do docelowych.

Zdania, o których mowa w punkcie 1., powinniśmy rozumieć jako segmenty, tj. niekoniecznie kompletne zdania w sensie gramatycznym. Standardowym sposobem podziału tekstu na segmenty jest dzielenie po znaku nowej linii lub zaraz po kropce, o ile jest ona częścią sekwencji: ".[spacja][Wielka litera]"

Ćwiczenie 1: Zaimplementuj podstawowy algorytm segmentacji tekstu. Użyj odpowiedniego wyrażenia regularnego, łapiącego wielkie litery w dowolnym języku, np. "Ż" (użyj klasy unikodowej). Zwróć listę segmentów.

import regex

def sentence_split(text):
    pattern = r'\s(?=\p{Lu})'
    segments = regex.split(pattern, text)
    return segments

text = "To jest przykładowy tekst. Nie wiem czym jest Python, ASCII i UNICODE. Ósmy raz sięgam ręką po borówkę. Żądło pszczoły jest kujące"
sentence_split(text)
['To jest przykładowy tekst.',
 'Nie wiem czym jest',
 'Python,',
 'ASCII i',
 'UNICODE.',
 'Ósmy raz sięgam ręką po borówkę.',
 'Żądło pszczoły jest kujące']

Ćwiczenie 2: Uruchom powyższy algorytm na treści wybranej przez siebie strony internetowej (do ściągnięcia treści strony wykorzystaj kod z laboratoriów nr 7). Zidentyfikuj co najmniej dwa wyjątki od ogólnej reguły podziału na segmenty i ulepsz algorytm.

import regex as r
def sentence_split_enhanced(text):
    #Ulepszenie algorytmu: szukam indexu znaku białego który jest poprzedzany znakiem .?! i następuje po nim duża litera, ale przed znakiem musi wystąpić litera a-z (nie może) A-Z
    # Dltaego dodatkowmo nie dziele zdań gdy wystąpią skróty pokroju S.A. oraz w przypadku wystąpienia Dużej litery w środku zdania -> segment nie jest tworzony.
    # W dodatku obsługuję nawiasy () i [] -> pobieram zdania występujące w nawiasie

    pattern = r'(?<![A-Z])[.!?]\s+(?=\p{Lu})|\s*[\(\[](.*?)[\)\]]\s+'
    pattern = r'(?<![A-Z])[.!?]\s+(?=\p{Lu})|(?<=\()|(?=\))|(?<=\[)|(?=\])'
    segments = r.split(pattern, text)
    return segments
    
sentence_split_enhanced("Jeżeli chodzi o UNICODE czy ASCII to nie wiem co to jest. Jestem S444820 [Krystian Osiński] Lubię jeść pizze. Mam konto w banku Peako S.A i jestem z niego zadowolony.")
['Jeżeli chodzi o UNICODE czy ASCII to nie wiem co to jest',
 'Jestem S444820 [',
 'Krystian Osiński',
 '] Lubię jeść pizze',
 'Mam konto w banku Peako S.A i jestem z niego zadowolony.']
import re
import requests
from bs4 import BeautifulSoup

def get_text(url):

    page = requests.get(url)
    soup = BeautifulSoup(page.content, 'html.parser')

    # usunięcie elementów script i style
    for script in soup(["script", "style"]):
        script.extract()    # usuń element

    # pobierz tekst
    text = soup.get_text()

    # usuń wielokrotne białe znaki
    text = re.sub(r"\s+", " ", text)

    return(text)
sentence_split_enhanced(get_text("https://www.biznes.gov.pl/pl/portal/00169")) #podsatwowe info o spółce akcyjnej z portalu rządowego
[' Spółka akcyjna  podstawowe informacje | Biznes.gov.pl - Serwis informacyjno-usługowy dla przedsiebiorcy Przejdź do treści Przejdź do wyszukiwarki Przejdź do Centrum Pomocy gov.pl Serwis informacyjno-usługowy dla przedsiębiorcy × Zalogowany jako: e-Doręczenia Change language to English Ustawienia Wyloguj Logowanie Change language to English EN Biznes.gov.pl Informacje Katalog usług Wyszukiwarka firm Konto Przedsiębiorcy zamknij Konto Przedsiębiorcy Spółka akcyjna  podstawowe informacje Obserwuj Przeczytaj podstawowe informacje o spółce akcyjnej',
 'Sprawdź jakie są jej najważniejsze cechy, jak powstaje, jaki ma majątek, kto reprezentuje spółkę oraz na czym polega odpowiedzialność wspólników',
 'Kluczowe cechy spółki akcyjnej Umowa założycielska spółki akcyjnej Statut spółki spółki akcyjnej Firma - oznaczenie spółki akcyjnej Rejestracja spółki akcyjnej w KRS Rejestracja w ZUS i zgłoszenie do ubezpieczeń Strona internetowa spółki Akcje i prawa z nich wynikające Kapitał zakładowy spółki akcyjnej Organy spółki akcyjnej Odpowiedzialność w spółce akcyjnej Podatki i księgowość w spółce akcyjnej Rozwiązanie spółki Kluczowe cechy spółki akcyjnej Spółka akcyjna jest kapitałową spółką handlową posiadającą osobowość prawną',
 'Założycielem spółki akcyjnej może być jeden lub większa liczba: osób fizycznych, osób prawnych, jednostek organizacyjnych nieposiadających osobowości prawnej, które posiadają zdolność prawną',
 'Spółki akcyjnej nie może założyć, jako jej jedyny akcjonariusz, jednoosobowa spółka z ograniczoną odpowiedzialnością',
 'Spółka akcyjna jest spółką prawa handlowego, w której wspólnicy uczestniczą w wyniku objęcia akcji wyemitowanych przez spółkę',
 'Kupno akcji spółki akcyjnej w wyniku objęcia akcji wyemitowanych przez spółkę (',
 'pierwotne',
 '), lub w drodze nabycia istniejących już akcji, na przykład na podstawie umowy sprzedaży (',
 'wtórne',
 ') powoduje, że właściciel akcji jest wspólnikiem spółki, czyli jej akcjonariuszem',
 'Spółka akcyjna to forma działalności, która: zapewnia anonimowość wspólników spółki akcyjnej, czyli jej akcjonariuszy jest odpowiednia dla dużych przedsięwzięć, w tym firm planujących wejście na giełdę jest obowiązkowa dla niektórych działalności, w tym banków oraz firm ubezpieczeniowych',
 'Wspólnikami spółki akcyjnej są akcjonariusze, którzy posiadają określoną liczbę akcji upoważniających do otrzymywania wyznaczonej części dywidendy',
 'Do założenia spółki akcyjnej wymagany jest kapitał 100 000 złotych',
 'Umowa założycielska spółki akcyjnej Pierwszym krokiem do powstania spółki akcyjnej jest zawarcie umowy założycielskiej, na którą składają się: statut jednostronne oświadczenia o przystąpieniu do spółki zgoda na brzmienie statutu oraz objęcie akcji',
 'Uwaga',
 'Statut spółki nie wywoła skutków prawnych bez złożenia oświadczeń zawierających zgodę na jego brzmienie oraz na objęcie akcji spółki',
 'Statut spółki spółki akcyjnej Statut spółki akcyjnej jest podstawowym dokumentem, w którym uregulowane są prawa i obowiązki założycieli, akcjonariuszy i organów spółki',
 'Do obowiązkowych elementów statutu należy określenie: firmy i siedziby spółki przedmiotu działalności spółki czasu trwania spółki, jeżeli jest oznaczony wysokości kapitału zakładowego kwoty, jaka została wpłacona przed zarejestrowaniem spółki na pokrycie kapitału zakładowego wartości nominalnej akcji i ich liczby ze wskazaniem, czy akcje imienne, czy na okaziciela liczby akcji poszczególnych rodzajów i związanych z nimi uprawnień, jeżeli w spółce będą występować akcje różnych rodzajów nazwisk i imion założycieli spółki liczby członków zarządu i rady nadzorczej albo co najmniej minimalnej lub maksymalnej liczby członków tych organów oraz podmiotu uprawnionego do ustalenia składu zarządu lub rady nadzorczej',
 'W statucie oprócz elementów obowiązkowych mogą znaleźć się również elementy fakultatywne: określenie minimalnej lub maksymalnej wysokości kapitału zakładowego określenie terminów i wysokości wpłat na akcje dodatkowe postanowienia dotyczące treści i formy dokumentu akcji ograniczenie możliwości rozporządzenia akcjami imiennymi określenie uprawnień rady nadzorczej utworzenie kapitałów rezerwowych',
 'Firma - oznaczenie spółki akcyjnej Firma spółki akcyjnej to jej nazwa, która może mieć charakter osobowy, przedmiotowy, fantazyjny lub mieszany',
 'W firmie spółki akcyjnej można umieścić nazwisko lub pseudonim osoby fizycznej, jeśli dzięki temu będzie można wyrazić związek tej osoby z powstaniem lub działalnością spółki akcyjnej',
 'Dodatkowo w firmie spółki musi znaleźć się określenie formy prawnej prowadzonej działalności, czyli słowa „spółka akcyjna” lub skrót „S.A”',
 'Rejestracja spółki akcyjnej w KRS Kolejnym warunkiem który musi zostać spełniony, aby spółka akcyjna zaczęła istnieć, jest wpis do rejestru przedsiębiorców',
 'Spółkę akcyjną rejestruje się w Krajowym Rejestrze Sadowym składając wniosek elektronicznie za pośrednictwem Portalu Rejestrów Sądowych',
 'Po rejestracji spółka zgłasza dane uzupełniające do urzędu skarbowego (',
 'formularz NIP-8',
 ')',
 'To dane, których nie trzeba zgłaszać przy rejestracji, takie jak na przykład numery rachunków bankowych, przewidywana liczba pracowników, miejsca prowadzenia działalności oraz szczegółowe dane kontaktowe',
 'Dane te trafiają ZUS, GUS i urzędu skarbowego',
 'Spółka powinna je podać już po rozpoczęciu działalności  w terminie 7 dni (',
 'dane dla ZUS',
 ') lub w terminie 21 dni (',
 'dane dla GUS i urzędu skarbowego',
 ') od dnia rejestracji spółki w KRS. Uwaga',
 'Każdy przedsiębiorca ma swój NIP (',
 'numer identyfikacji podatkowej, którym posługuje się w kontaktach z urzędem skarbowym',
 ') i REGON (',
 'to numer w rejestrze Głównego Urzędu Statystycznego',
 ')',
 'Te numery są nadawane są automatycznie, przy rejestracji spółki w KRS. Informacja o nadaniu NIP może zostać przekazana do KRS w terminie 3 dni',
 'Po zawiązaniu spółki akcyjnej, czyli po objęciu akcji w całości, ale przed wpisem do rejestru przedsiębiorców KRS powstaje spółka akcyjna w organizacji',
 'Organizująca się spółka akcyjna posiada zdolność prawną i zdolność do czynności prawnych',
 'Oznacza to, że może we własnym imieniu nabywać prawa, zaciągać zobowiązania, pozywać i być pozywana',
 'Spółkę w organizacji reprezentuje zarząd, a do chwili jego powołania  ogół założycieli',
 'Spółka akcyjna w organizacji posiada własny majątek, którego wyłącznym właścicielem jest organizująca się spółka',
 'Jest to więc majątek odrębny od majątku akcjonariuszy',
 'Przeczytaj: jak zarejestrować spółkę akcyjną w KRS instrukcję wypełniania wniosków elektronicznych w PRS. Rejestracja w ZUS i zgłoszenie do ubezpieczeń Przy rejestracji, spółka zostanie automatycznie zarejestrowana z ZUS jako płatnik składek na ubezpieczenie społeczne',
 'Nie trzeba wysyłać do ZUS dodatkowych dokumentów',
 'Przeczytaj, jak zarejestrować się w ZUS i zgłosić do ubezpieczeń',
 'Strona internetowa spółki Każda spółka akcyjna ma obowiązek prowadzenia własnej strony internetowej przeznaczonej do komunikacji z akcjonariuszami',
 'Na stronie internetowej powinny znaleźć się takie informacje jak: firma, siedziba i adres spółki, numer KRS, oznaczenie właściwego sądu rejestrowego, NIP oraz wysokość kapitału zakładowego',
 'Ponadto, na stronie powinny się znaleźć wszelkie ogłoszenia spółek wymagane przez prawo oraz statuty tych spółek',
 'Akcje i prawa z nich wynikające Przez akcje należy rozumieć: ogół praw i obowiązków akcjonariusza wobec spółki akcyjnej wynikających z nabycia przez niego udziału w tej spółce papier wartościowy, czyli dokument potwierdzający prawa akcjonariusza',
 'Wspólnik spółki akcyjnej otrzymuje akcje za wkłady wnoszone do spółki',
 'Akcje mogą być obejmowane za wkłady pieniężne lub niepieniężne',
 'Wkład pieniężny to określona kwota przeniesiona na spółkę',
 'Wkładami niepieniężnymi (',
 'aporty',
 ') są wszelkie wartości majątkowe wnoszone do spółki, które nie są wyrażone w pieniądzu',
 'Jako aport mogą być wnoszone: rzeczy ruchome, nieruchomości, użytkowanie wieczyste, ograniczone prawa rzeczowe, wierzytelności, udziały w spółkach i inne prawa majątkowe',
 'Uwaga',
 'Aportem nie mogą być prawa niezbywalne, na przykład użytkowanie',
 'Do zawiązania spółki akcyjnej konieczne jest: objęcie całości akcji, czyli zobowiązanie się do wniesienia określonych wkładów pokrycie ¼ akcji obejmowanych za wkłady pieniężne przed zarejestrowaniem spółki',
 'Pozostała część wkładów może być wniesiona po zarejestrowaniu spółki',
 'Natomiast wkłady niepieniężne należy wnieść przed upływem roku od dnia rejestracji spółki',
 'Z posiadaniem akcji w spółce akcyjnej wiąże się szereg uprawnień, które przysługują akcjonariuszowi',
 'Wśród tych uprawnień kluczowe są uprawnienia majątkowe i korporacyjne',
 'Do uprawnień majątkowych wynikających z akcji należą: udział w zysku spółki (',
 'prawo do dywidendy',
 ') możliwość poboru akcji nowej emisji udział w masie likwidacyjnej spółki',
 'Do uprawnień korporacyjnych wynikających z akcji należą: prawo do uczestniczenia na walnym zgromadzeniu prawo do głosu na walnym zgromadzeniu prawo do informacji',
 'Podstawowym podziałem akcji w spółce akcyjnej jest podział na akcje imienne i akcje na okaziciela',
 'Podział akcji na akcje imienne oraz akcje na okaziciela nie jest podziałem na akcje różnego rodzaju, gdyż akcje imienne ucieleśniają takie same prawa pod względem, jak akcje na okaziciela',
 'Podział akcji ze względu na treść prawa z nich wynikającego, to podział na akcje zwykłe i akcje uprzywilejowane',
 'Uwaga',
 'Statut spółki powinien określać liczbę akcji zwykłych i uprzywilejowanych wraz z opisaniem związanych z nimi uprawnień',
 'Uprzywilejowanie akcji powoduje zwiększenie zakresu uprawnień w porównaniu z zakresem uprawnień akcji zwykłego rodzaju',
 'Uprzywilejowanie to może dotyczyć zarówno uprawnień majątkowych, jak i uprawnień korporacyjnych',
 'Kapitał zakładowy spółki akcyjnej Kapitał zakładowy stanowi warunek powstania i istnienia każdej spółki akcyjnej',
 'Jest to suma udziałów (',
 'akcji',
 ') występujących w spółce',
 'Wszyscy wspólnicy spółki akcyjnej muszą wnieść wkłady do spółki, rozumiane jako określone wartości majątkowe, które zostają przeznaczone na pokrycie całości kapitału zakładowego',
 'Wysokość kapitału zakładowego powinna być ustalona w statucie spółki',
 'Dzięki wyodrębnieniu i pokryciu kapitału zakładowego akcjonariusze są wolni od odpowiedzialności za zobowiązania spółki',
 'Kapitał zakładowy podzielony jest na akcje o równej wartości nominalnej',
 'W praktyce oznacza to, że żadna spółka akcyjna nie może powstać bez zebrania kapitału zakładowego w wysokości wskazanej w statucie',
 'Wysokość kapitału zakładowego musi być wyrażona w walucie polskiej',
 'Uwaga',
 'Minimalna wysokość kapitału zakładowego spółki akcyjnej wynosi 100 tys. zł, a minimalna wartość jednej akcji wynosi 1 grosz',
 'Kapitał zakładowy w spółce akcyjnej realizuje trzy zasadnicze funkcje: funkcję prawną funkcję gospodarczą funkcję gwarancyjną',
 'Funkcja prawna kapitału zakładowego polega na określeniu wspólników (',
 'akcjonariuszy',
 ') spółki w jej strukturze - kapitał zakładowy jest podstawą uczestniczenia każdego akcjonariusza w spółce',
 'Oznacza to, że akcjonariuszem spółki akcyjnej może zostać osoba, która ma swój udział w jej kapitale zakładowym',
 'Funkcja gospodarcza kapitału zakładowego spółki akcyjnej oznacza, że spółka dysponuje odpowiednimi środkami materialnymi, które pozwalają jej na podjęcie i rozwijanie działalności gospodarczej',
 'Ponadto, kapitał zakładowy pozwala na finansowanie funkcjonowania spółki, co przejawia się  na przykład - w uzyskaniu zdolności kredytowej',
 'Funkcja gwarancyjna kapitału zakładowego spółki akcyjnej oznacza, że jego wysokość pozwala na ocenę pozycji spółki przez jej kontrahentów',
 'Organy spółki akcyjnej Każda spółka akcyjna musi mieć swoje organy',
 'Do obowiązkowych i zarazem najważniejszych organów należy zarząd, walne zgromadzenie akcjonariuszy oraz rada nadzorcza',
 'Ustanowienie pierwszych organów następuje w aktach notarialnych, w których akcjonariusze wyrażają zgodę na zawiązanie spółki, treść statutu oraz objęcie akcji',
 'Statut spółki albo późniejsza uchwała zarządu może wprowadzać podział kompetencji pomiędzy poszczególnymi członkami zarządu',
 'Liczba członków zarządu powinna być ustalona w statucie spółki',
 'Zarząd w spółce akcyjnej pełni dwie najważniejsze kompetencje: reprezentuje spółkę w stosunkach zewnętrznych prowadzi sprawy spółki',
 'Reprezentacja spółki przez zarząd polega na dokonywaniu i przyjmowaniu czynności prawnych za spółkę w stosunkach z osobami trzecimi',
 'Co do zasady każdy członek zarządu ma prawo reprezentować spółkę',
 'Poza zarządem spółkę mogą reprezentować inne osoby: kurator, syndyk masy upadłości, likwidator, a także pełnomocnicy oraz prokurenci',
 'Uwaga',
 'Działania polegające na dokonywaniu czynności prawnych przez zarząd są dokonywane za spółkę, a czynności dokonywane przez inne osoby są czynnościami dokonywanymi w imieniu spółki',
 'Członków zarządu w spółce akcyjnej powołuje i odwołuje rada nadzorcza, o ile statut spółki nie stanowi inaczej',
 'Zarząd może być jednoosobowy lub składać się z wielu członków',
 'Mogą to być osoby wybrane spośród akcjonariuszy lub spoza ich grona',
 'Funkcja członka zarządu może być pełniona za wynagrodzeniem lub nieodpłatnie',
 'Oprócz zarządu w każdej spółce akcyjnej, bez względu na wysokość kapitału zakładowego, czy liczbę akcjonariuszy, musi być ustanowiona rada nadzorcza',
 'Rada nadzorcza w spółce akcyjnej sprawuje nadzór nad działalnością spółki',
 'Rada składa się co najmniej z trzech członków, powoływanych i odwoływanych przez walne zgromadzenie akcjonariuszy, o ile statut spółki nie stanowi inaczej',
 'Ostatnim obligatoryjnym organem i zarazem stanowiącym w najważniejszych sprawach spółki akcyjnej jest walne zgromadzenie akcjonariuszy',
 'Walne zgromadzenie składa się ze wszystkich akcjonariuszy, którzy wspólnie decydują o sprawach strategicznych dla spółki',
 'Do podstawowych i najważniejszych kompetencji walnego zgromadzenia należy podejmowanie uchwał odnośnie do: rozpatrzenia i zatwierdzenia sprawozdania zarządu z działalności spółki udzielenia absolutorium członkom organów spółki z wykonania przez nich obowiązków nabycia i zbycia nieruchomości, użytkowania wieczystego lub udziału w nieruchomości decyzji co do dalszego istnienia spółki zmiany statutu spółki',
 'Odpowiedzialność w spółce akcyjnej Spółka akcyjna odpowiada całym swoim majątkiem za zobowiązania, które ja obciążają',
 'Zasadą jest, że w przypadku spółki akcyjnej nie ma odpowiedzialności po stronie akcjonariuszy (',
 'wyjątek  spółka akcyjna w organizacji',
 ')',
 'Akcjonariusze nie odpowiadają za zobowiązania spółki',
 'Akcjonariusz w praktyce ryzykuje jedynie utratą wniesionego wkładu',
 'Podatki i księgowość w spółce akcyjnej Spółka akcyjna jest podatnikiem VAT. Podatek dochodowy od osób prawnych (',
 'CIT',
 ') płacony jest przez samą spółkę akcyjną od dochodów osiągniętych w danym roku podatkowym',
 'Ponadto akcjonariusze spółki płacą podatek (',
 '19%',
 ') od wypłacanych im dywidend i innych dochodów pochodzących z udziału w zyskach osób prawnych (',
 'na przykład dochód z umorzenia udziałów',
 ')',
 'W spółce akcyjnej wymagane jest prowadzenie pełnej księgowości, publikowanie rocznych raportów finansowych oraz dokonywanie audytu',
 'Przeczytaj: więcej o podatku CIT kto i kiedy musi składać sprawozdania finansowe',
 'Rozwiązanie spółki Rozwiązanie spółki polega na tym, że wspólników przestaje wiązać dążenie do osiągnięcia wspólnego celu, jakim jest prowadzenie przedsiębiorstwa',
 'Po podjęciu decyzji o rozwiązaniu spółki celem wspólników powinno być zakończenie i podsumowanie prowadzonej działalności oraz rozliczenie zysków i strat poniesionych przez spółkę',
 'Przeczytaj więcej o rozwiązaniu i likwidacji spółek wpisanych do KRS. Powiązane treści Rozwiązanie i likwidacja spółek wpisanych do KRS Zakładanie spółki handlowej Podstawa prawna Art. 1, 4, 12, 301-490 Ustawa z dnia 15 września 2000 r',
 'Kodeks spółek handlowych',
 'Art. 1, 4a pkt 18, 19, 21, 7, 7b, 8-9, 12 Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych',
 'Art. 19, 36, 38 Ustawa z dnia 20 sierpnia 1997 r. o Krajowym Rejestrze Sądowym',
 'Ustawa z dnia 13 października 1998 r. o systemie ubezpieczeń społecznych',
 'Czy ta strona była przydatna? × Wyślij Metryka Opublikowano 27.06.2021 Zaktualizowano 22.09.2021 ID artykułu 00169 gov.pl / Mapa Biznes.gov.pl Centrum pomocy Punkty kontaktowe UE O nas Deklaracja dostępności Polityka prywatności Uwagi prawne Portal nadzorowany jest przez Ministerstwo Rozwoju i Technologii',
 'Partnerzy projektu: Sieć Badawcza Łukasiewicz - Poznański Instytut Technologiczny, Krajowa Izba Gospodarcza',
 'Projekt jest współfinansowany z Programu Polska Cyfrowa ze środków Unii Europejskiej z Europejskiego Funduszu Rozwoju Regionalnego i jest kontynuacją projektu pt.: "Centralna Ewidencja i Informacja o Działalności Gospodarczej" finansowanego z Programu Innowacyjna Gospodarka oraz projektu "Uproszczenie i elektronizacja procedur" finansowanego z Programu Kapitał Ludzki',
 'Artykuły zamieszczone w serwisie GOV.PL, w których nie podajemy żadnych dodatkowych informacji na temat praw autorskich, należą do informacji publicznych i udostępniamy je bezpłatnie',
 'Korzystanie z nich, niezależnie od celu i sposobu korzystania, nie wymaga zgody Ministerstwa',
 'Dostępne są w ramach licencji Creative Commons Uznanie Autorstwa 3.0 Polska',
 'Serwis Biznes.gov.pl używa plików cookies',
 'Kontynuując przeglądanie naszej witryny bez zmiany ustawień przeglądarki, wyrażasz zgodę na użycie plików cookie',
 'Zawsze możesz zmienić ustawienia przeglądarki i zablokować te pliki. × Zadaj pytanie Na wskazany w formularzu adres e-mail zostanie wysłane potwierdzenie zgłoszenia, informacja o zmianie statusu oraz odpowiedź',
 'Maksymalny termin odpowiedzi wynosi 7 dni kalendarzowych, 14 dni kalendarzowych w przypadku spraw wymagających konsultacji z innymi urzędami Pokaż więcej',
 'Formularz zapytania urzędowego jest częścią polskiego Pojedynczego Punktu Kontaktowego www.biznes.gov.pl',
 'Szczegółowy zakres zadań realizowanych przez Punkt Kontaktowy reguluje dział III ustawy o Centralnej Ewidencji i Informacji o Działalności Gospodarczej i Punktu Informacji dla Przedsiębiorcy',
 'Więcej informacji znajdziesz na stronie Uwagi Prawne',
 'Punkt Kontaktowy nie prowadzi doradztwa w indywidualnych sprawach',
 'Zgłaszający Wybierz Przedsiębiorca Obywatel Urzędnik E-mail Temat Wybierz prowadzenie firmy w Polsce prowadzenie firmy w Unii Europejskiej złożenie wniosku w CEIDG (',
 'założenie, zmiana, zawieszenie, wznowienie, zakończenie',
 ') spory pomiędzy przedsiębiorcami, konsumentami i urzędami prawa i obowiązki pracowników i pracodawców eDoręczenia awaria/błąd Biznes.gov.pl lub CEIDG wsparcie techniczne Aplikacja urzędnika CEIDG Integracja dla banków Treść Jeśli podasz więcej szczegółowych informacji, np',
 'NIP, numer sprawy, numer wniosku, itp. możesz liczyć na szybszą analizę zgłoszenia',
 'Minimum 10 znaków Dodaj załącznik (',
 'Jeśli zgłoszenie dotyczy kwestii technicznych, załącz do niego zrzut ekranu',
 ') Wielkość załącznika nie może przekraczać 5MB. Dozwolone formaty plików: .jpg, .jpeg, .png, .bmp, .gif, .pdf, .doc, .docx, .odt, .xls, .xlsx Wskaż plik dodaj kolejny załącznik Wyślij Wybierz ']

Po podziale tekstu na segmenty po stronie źródłowej oraz docelowej, możemy przystąpić do kroku drugiego - dopasowania segmentów. Głównym wyzwaniem tego kroku jest fakt, iż po stronie źródłowej może być inna liczba segmentów, niż po stronie docelowej. Takie rozbieżności są bardzo częste, a wynikają między innymi z:

  • tłumaczenia jednego zdania źródłowego przy użyciu więcej niż jednego zdania
  • tłumaczenia więcej niż jednego zdania źródłowego przy użyciu jednego zdania
  • pominięcia zdania podczas tłumaczenia
  • rozbieżności pomiędzy wersjami tekstu źródłowego i docelowego (np. tekst źródłowy mógł być modyfikowany po przetłumaczeniu i tłumaczenie nie zostało zaktualizowane)
  • przetłumaczenia tekstu źródłowego tylko częściowo

Problemy te rozwiązwyane są na różne sposoby. Najpopularniejszym programem do przeprowadzania urównoleglania jest Hunalign. Wejściem do programu są dwa pliki, zawierające po jednym segmencie w linii. Wyjściem - plik urównoleglony w wewnętrznym formacie hunaligna.

Ćwiczenie 3: Odnajdź dowolną stronę, która jest dostępna w wielu językach. Pobierz z tej strony tekst oryginalny (tylko ze strony głównej) oraz przetłumaczony na dowolny inny język. Przy użyciu Pythona przygotuj pliki dla Hunaligna i uruchom go.

Wyjściem z Hunaligna jest plik w specjalnym formacie Hunaligna. Problem jednak w tym, że niestety nie można go w prosty sposób zaimportować do jakiegokolwiek narzędzia typu CAT. Potrzebna jest konwersja do któregoś z bardziej popularnych formatów, np. XLIFF.

XLIFF jest formatem do przechowywania pamięci tłumaczeń, który opiera się na XML-u. Przykładowy plik XLIFF wygląda następująco:

<?xml version="1.0" encoding="UTF-8"?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <file datatype="plaintext" original="self" source-language="en" target-language="es"> <header> <sxmd:metadata xmlns:sxmd="urn:x-sap:mlt:xliff12:metadata:1.0" xmlns="urn:x-sap:mlt:tsmetadata:1.0"> <object-name>sample</object-name> <collection>KWT</collection> <domain>KWT</domain> <developer>123</developer> <description>sample XLIFF file</description> </sxmd:metadata> </header> <body> <trans-unit> <source>Hello world!</source> <target>Hola mundo!</target> </trans-unit> <trans-unit> <source>File</source> <target>Archivo</target> </trans-unit> <trans-unit> <source>New</source> <target>Nuevo</target> </trans-unit> <trans-unit> <source>Exit</source> <target>Salir</target> </trans-unit> </body> </file> </xliff>

Ćwiczenie 4: Napisz konwerter formatu hunaligna na XLIFF.

#mi osobiście dedykowana aplikacja zwracała jako wynik plik .txt + umożliwiała wybranie formatu który jest możlwiy do otworzenia w CAT
# pracuję na zestawie danych 
# pl -> https://www.europarl.europa.eu/about-parliament/en/democracy-and-human-rights
# en -> https://www.europarl.europa.eu/about-parliament/en/democracy-and-human-rights
# plik wygenerowany: aligned_pl-en.txt
def convert2xliff(hunalign_file_name,new_xliff_file_name):
    text = """<?xml version="1.0" encoding="UTF-8"?>
                    <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
                        <file datatype="plaintext" original="self" source-language="pl" target-language="en">
                            <header>
                                <sxmd:metadata xmlns:sxmd="urn:x-sap:mlt:xliff12:metadata:1.0" xmlns="urn:x-sap:mlt:tsmetadata:1.0">
                                    <developer>Krystian Osinski</developer>
                                </sxmd:metadata>
                            </header>
                            <body>"""
    with open(hunalign_file_name, 'r') as file:
        lines = file.readlines()
        for line in lines:
            source, target, pl = line.strip().split('\t')
            text +=          f"""<trans-unit>
                                    <source>{source}</source>
                                    <target>{target}</target>
                             </trans-unit>"""
    text +=             r"""</body>
                      </file>
                </xliff>"""
    
    with open('output_xml_file.xml', 'w') as xml_file:
        xml_file.write(text)
    
    
    return 0

convert2xliff("aligned_pl-en.txt","xliff_pl_en")
0