Chcesz wyodrębnić dane z zeskanowanych dokumentów? Próbować Nanonet™ zaawansowany Skaner OCR oparty na sztucznej inteligencji wydobywać i porządkować informacje z zeskanowane dokumenty automatycznie.
Wprowadzenie
Ponieważ świat zmienił się z dokumentów papierowych i pisma ręcznego na cyfrowe dokumenty dla wygody, znaczenie przekształcania obrazów i zeskanowanych dokumentów w sensowne dane gwałtownie wzrosło.
Aby nadążyć za potrzebą bardzo dokładnej ekstrakcji danych z dokumentów, liczne ośrodki badawcze i korporacje (tj. Google, AWS, Nanonets itp.) skoncentrowały się głęboko na technologiach w dziedzinie wizji komputerowej i przetwarzania języka naturalnego (NLP).
Rozkwit technologii głębokiego uczenia się zapewnił ogromny skok w kierunku danych, które można wydobyć; nie jesteśmy już ograniczeni tylko do wyodrębniania tekstu, ale także innych struktur danych, takich jak tabele i pary klucz-wartość. Wiele rozwiązań oferuje obecnie różne produkty spełniające potrzeby osób prywatnych i właścicieli firm w zakresie ekstrakcji danych z dokumentów.
W tym artykule omawiamy aktualną technologię wykorzystywaną do ekstrakcji danych z zeskanowanych dokumentów, po czym następuje krótki praktyczny samouczek w Pythonie. Przyjrzymy się również niektórym popularnym rozwiązaniom dostępnym obecnie na rynku, oferującym najlepsze oferty w tej dziedzinie.
Co to jest ekstrakcja danych?
Ekstrakcja danych to proces przekształcania nieustrukturyzowanych danych w informacje możliwe do interpretacji przez programy, aby umożliwić dalsze przetwarzanie danych przez ludzi. Poniżej przedstawiamy kilka najpopularniejszych typów danych, które należy wyodrębnić z zeskanowanych dokumentów.
Dane tekstowe
Najczęstszym i najważniejszym zadaniem przy ekstrakcji danych z zeskanowanych dokumentów jest wyodrębnianie tekstu. Ten proces, choć pozornie prosty, w rzeczywistości jest bardzo trudny, ponieważ zeskanowane dokumenty są często przedstawiane w formacie obrazów. Ponadto metody ekstrakcji są silnie uzależnione od rodzaju tekstu. Chociaż tekst jest przez większość czasu obecny w gęstych drukowanych formatach, równie ważna jest możliwość wyodrębnienia rzadkiego tekstu z mniej dobrze zeskanowanych dokumentów lub z odręcznych listów o drastycznie różniących się stylach. Taki proces pozwoli programom na konwersję obrazów do tekstu zakodowanego maszynowo, gdzie możemy je dalej organizować z danych nieustrukturyzowanych (bez pewnego formatowania) w dane strukturalne do dalszej analizy.
Stoły
Formularze tabelaryczne to najbardziej popularne podejście do przechowywania danych, ponieważ format jest łatwy do interpretacji ludzkimi oczami. Proces wyodrębniania tabel z zeskanowanych dokumentów wymaga technologii wykraczającej poza wykrywanie znaków — należy wykryć linie i inne cechy wizualne, aby wykonać prawidłowe wyodrębnienie tabeli i dalej przekształcić te informacje w dane strukturalne do dalszych obliczeń. Metody wizji komputerowej (opisane szczegółowo w następnych sekcjach) są intensywnie wykorzystywane do uzyskania wysokiej dokładności ekstrakcji tabeli.
Pary klucz-wartość
Alternatywnym formatem, który często przyjmujemy w dokumentach do przechowywania danych, są pary klucz-wartość (KVP).
KVP to zasadniczo dwa elementy danych — klucz i wartość — połączone razem jako jeden. Klucz jest używany jako unikalny identyfikator pobieranej wartości. Klasycznym przykładem KVP jest słownik, w którym słowniki są kluczami, a odpowiadające im definicje są wartościami. Te pary, chociaż zwykle niezauważane, są w rzeczywistości bardzo często używane w dokumentach: pytania w ankietach, takie jak imię i nazwisko, wiek i ceny towarów na fakturach, są domyślnie KVP.
Jednak w przeciwieństwie do tabel, KVP często istnieją w nieznanych formatach, a czasami są nawet częściowo pisane odręcznie. Na przykład klucze mogą być wstępnie wydrukowane w ramkach, a wartości są wpisywane odręcznie podczas wypełniania formularza. Dlatego znalezienie podstawowych struktur, które automatycznie przeprowadzają ekstrakcję KVP, jest ciągłym procesem badawczym nawet w przypadku najbardziej zaawansowanych obiektów i laboratoriów.
Postacie
Wreszcie bardzo ważne jest również wyodrębnienie lub przechwytywać dane z cyfr w zeskanowanym dokumencie. Wskaźniki statystyczne, takie jak wykresy kołowe i wykresy słupkowe, często zawierają kluczowe informacje dla dokumentów. Dobry proces wyodrębniania danych powinien umożliwiać wywnioskowanie z legend i liczb, aby częściowo wyodrębnić dane z liczb do dalszego wykorzystania.
Chcesz wyodrębnić dane z zeskanowanych dokumentów? Daj Nanonet™ spin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!
Technologie stojące za ekstrakcją danych
Ekstrakcja danych obraca się wokół dwóch głównych procesów: optycznego rozpoznawania znaków (OCR) a następnie przetwarzanie języka naturalnego (NLP).
Ekstrakcja OCR to proces przekształcania obrazów tekstowych w tekst zakodowany maszynowo, podczas gdy ten ostatni to analiza słów w celu wywnioskowania znaczeń. OCR często towarzyszą inne techniki widzenia komputerowego, takie jak wykrywanie pudełek i linii, w celu wyodrębnienia wyżej wymienionych typów danych, takich jak tabele i KVP, w celu uzyskania bardziej kompleksowej ekstrakcji.
Główne ulepszenia stojące za rurociągiem ekstrakcji danych są ściśle powiązane z postępami w uczeniu głębokim, które w znacznym stopniu przyczyniły się do rozwoju obszarów widzenia komputerowego i przetwarzania języka naturalnego (NLP).
Czym jest głębokie uczenie się?
Głębokie uczenie odgrywa główną rolę w szumie ery sztucznej inteligencji i jest stale wysuwane na pierwszy plan w wielu zastosowaniach. W tradycyjnej inżynierii naszym celem jest zaprojektowanie systemu/funkcji, która generuje dane wyjściowe z danego wejścia; z drugiej strony głębokie uczenie opiera się na danych wejściowych i wyjściowych w celu znalezienia pośredniej relacji, którą można rozszerzyć na nowe, niewidoczne dane poprzez tzw. sieci neuronowe.
Sieć neuronowa, czyli wielowarstwowy perceptron (MLP), to architektura uczenia maszynowego inspirowana tym, jak uczą się ludzkie mózgi. Sieć zawiera neurony, które naśladują neurony biologiczne i „aktywują się” po otrzymaniu różnych informacji. Zestawy neuronów tworzą warstwy, a wiele warstw jest ułożonych razem, tworząc sieć służącą celom przewidywania wielu form (tj. klasyfikacji obrazów lub ramek ograniczających do wykrywania obiektów).
W dziedzinie widzenia komputerowego bardzo często stosowany jest rodzaj zmienności sieci neuronowej — splotowe sieci neuronowe (CNN). Zamiast tradycyjnych warstw, CNN przyjmuje jądra splotowe, które przesuwają się przez tensory (lub wektory wielowymiarowe) w celu wyodrębnienia cech. W połączeniu z tradycyjnymi warstwami sieciowymi, CNN są bardzo skuteczne w zadaniach związanych z obrazami, a ponadto stanowią podstawę do ekstrakcji OCR i wykrywania innych cech.
Z drugiej strony NLP opiera się na innym zestawie sieci, który koncentruje się na danych szeregów czasowych. W przeciwieństwie do obrazów, w których jeden obraz jest niezależny od siebie, przewidywanie tekstu może być w dużej mierze korzystne, jeśli uwzględni się również słowa poprzedzające lub następujące. W ciągu ostatnich kilku lat pojawiła się rodzina sieci, czyli pamięci długoterminowe, krótkotrwałe (LSTM), który pobiera poprzednie wyniki jako dane wejściowe do przewidywania bieżących wyników. Dwustronne LSTM były również często przyjmowane w celu poprawy wyników prognozowania, w których brane były pod uwagę zarówno wyniki przed, jak i po. Jednak w ostatnich latach koncepcja transformatorów wykorzystujących mechanizm uwagi zaczyna się rozwijać ze względu na ich większą elastyczność, prowadzącą do lepszych wyników niż tradycyjne sieci obsługujące sekwencyjne szeregi czasowe.
Zastosowania ekstrakcji danych
Głównym celem ekstrakcji danych jest konwersja danych z dokumentów nieustrukturyzowanych do formatów ustrukturyzowanych, w których bardzo dokładne pobieranie tekstu, cyfr i struktur danych może być bardzo pomocne w analizie numerycznej i kontekstowej. Analizy te mogą być bardzo pomocne zwłaszcza dla firm:
Biznes
Korporacje biznesowe i duże organizacje codziennie mają do czynienia z tysiącami dokumentów w podobnych formatach — duże banki otrzymują wiele identycznych aplikacji, a zespoły badawcze muszą analizować stosy formularzy, aby przeprowadzić analizę statystyczną. Dlatego automatyzacja początkowego etapu wyodrębniania danych z dokumentów znacznie zmniejsza nadmiarowość zasobów ludzkich i pozwala pracownikom skupić się na analizie danych i przeglądaniu aplikacji zamiast na wprowadzaniu informacji.
- Weryfikowanie aplikacji — Firmy otrzymują mnóstwo wniosków, czy to pisanych odręcznie, czy tylko za pośrednictwem formularzy zgłoszeniowych. W większości przypadków aplikacjom tym mogą towarzyszyć identyfikatory osobiste w celu weryfikacji. Zeskanowane dokumenty tożsamości, takie jak paszporty lub karty, zwykle są dostarczane w partiach o podobnym formacie. Dlatego dobrze napisany ekstraktor danych może szybko przekonwertować dane (teksty, tabele, ryciny, KVP) na teksty zrozumiałe dla maszyn, co może znacznie skrócić roboczogodziny związane z tymi zadaniami i skupić się na wyborze aplikacji zamiast ekstrakcji.
- Uzgadnianie płatności — Payment Reconciliation to proces porównywania wyciągów bankowych w celu zapewnienia dopasowania liczb między rachunkami, który w dużej mierze opiera się na ekstrakcji danych z dokumentów — trudny problem dla firmy o znacznej wielkości i różnych źródłach strumienia dochodów. Ekstrakcja danych może ułatwić ten proces i umożliwić pracownikom skupienie się na błędnych danych i zbadanie potencjalnych oszukańczych zdarzeń dotyczących przepływu środków pieniężnych.
- Analiza statystyczna — Informacje zwrotne od klientów lub uczestników eksperymentów są wykorzystywane przez korporacje i organizacje do ulepszania swoich produktów i usług, a kompleksowa ocena informacji zwrotnych zwykle wymaga analizy statystycznej. Jednak dane ankietowe mogą istnieć w wielu formatach lub ukryte pomiędzy tekstami o różnych formatach. Ekstrakcja danych może ułatwić proces, wskazując oczywiste dane z dokumentów w partiach, ułatwić proces wyszukiwania przydatnych procesów i ostatecznie zwiększyć wydajność.
- Udostępnianie przeszłych rekordów — Od opieki zdrowotnej po zmianę usług bankowych, duże branże często wymagają nowych informacji o klientach, które mogły już istnieć gdzie indziej. Na przykład pacjent zmieniający szpital z powodu przeprowadzki może mieć już istniejącą dokumentację medyczną, która może być pomocna dla nowego szpitala. W takich przypadkach przydatne jest dobre oprogramowanie do ekstrakcji danych, ponieważ wystarczy, że dana osoba przyniesie zeskanowaną historię dokumentacji do nowego szpitala, aby automatycznie uzupełniła wszystkie informacje. Byłoby to nie tylko wygodne, ale pozwoliłoby również uniknąć dużego ryzyka, zwłaszcza w branży opieki zdrowotnej, polegającego na przeoczeniu ważnych danych dotyczących pacjentów.
Chcesz wyodrębnić dane z zeskanowanych dokumentów? Daj Nanonet™ spin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!
Poradniki
Aby zapewnić jaśniejszy obraz tego, jak przeprowadzić ekstrakcję danych, przedstawiamy dwa zestawy metod wykonywania ekstrakcji danych ze skanowanych dokumentów.
Budowanie z Scratch
Można zbudować prosty silnik OCR do ekstrakcji danych za pomocą silnika PyTesseract w następujący sposób:
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
Aby uzyskać więcej informacji na temat kodu, możesz sprawdzić ich oficjalny dokumentacja.
W prostych słowach kod wyodrębnia dane, takie jak teksty i ramki ograniczające z danego obrazu. Chociaż silnik jest dość użyteczny, to nie jest tak mocny, jak te, które zapewniają zaawansowane rozwiązania, ze względu na ich dużą moc obliczeniową do treningu.
Korzystanie z Google Document API
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
Ostatecznie sztuczna inteligencja dokumentów Google pozwala na wyodrębnienie wielu informacji z dokumentów z dużą dokładnością. Ponadto usługa jest oferowana również do określonych zastosowań, w tym do ekstrakcji tekstu zarówno dla normalnych, jak i dzikich obrazów.
Sprawdź tutaj więcej.
Aktualne rozwiązania oferujące ekstrakcję danych
Oprócz dużych korporacji z interfejsami API do ekstrakcji danych z dokumentów, istnieje kilka rozwiązań zapewniających wysoką dokładność OCR PDF usługi. Przedstawiamy kilka opcji PDF OCR, które są wyspecjalizowane w różnych aspektach, a także niektóre najnowsze prototypy badań, które wydają się dostarczać obiecujących wyników*:
*Uwaga dodatkowa: istnieje wiele usług OCR, które są ukierunkowane na takie zadania, jak obrazy w środowisku naturalnym. Pominęliśmy te usługi, ponieważ obecnie koncentrujemy się wyłącznie na odczytywaniu dokumentów PDF.
- Interfejs API Google — Jako jeden z największych dostawców usług online, Google oferuje oszałamiające wyniki w ekstrakcji dokumentów dzięki swojej pionierskiej technologii widzenia komputerowego. Można korzystać z ich usług za darmo, jeśli ich użycie jest dość niskie, ale cena kumuluje się wraz ze wzrostem wywołań API.
- Głęboki czytelnik — Deep Reader to praca badawcza opublikowana na konferencji ACCV 2019. Zawiera wiele najnowocześniejszych architektur sieciowych do wykonywania zadań, takich jak dopasowanie dokumentów, wyszukiwanie tekstu i odszumianie obrazów. Istnieją dodatkowe funkcje, takie jak tabele i wyodrębnianie par klucz-wartość, które umożliwiają pobieranie i zapisywanie danych w zorganizowany sposób.
- Nanonet™ — Dzięki wysoce kompetentnemu zespołowi głębokiego uczenia się, Nanonets™ PDF OCR jest całkowicie niezależny od szablonów i reguł. Dlatego Nanonets™ nie tylko może pracować na określonych typach plików PDF, ale może być również stosowany do dowolnego typu dokumentu w celu wyszukiwania tekstu.
Chcesz wyodrębnić dane z zeskanowanych dokumentów? Daj Nanonet™ spin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!
Wnioski
Podsumowując, niniejszy artykuł przedstawia dokładne wyjaśnienie sposobu ekstrakcji danych z zeskanowanych dokumentów, w tym związane z tym wyzwania i technologię wymaganą do tego procesu.
Przedstawiono dwa samouczki dotyczące różnych metod, a także przedstawiono aktualne rozwiązania, które oferują je po wyjęciu z pudełka.
- 2019
- O nas
- bezwzględny
- Konto
- dokładny
- Osiągać
- dodatek
- Dodatkowy
- zaawansowany
- zaliczki
- AI
- Algorytmy
- Wszystkie kategorie
- już
- alternatywny
- analizować
- analiza
- Inne
- api
- Pszczoła
- Zastosowanie
- aplikacje
- podejście
- architektura
- na około
- artykuł
- sztuczny
- sztuczna inteligencja
- Uwaga
- Automatyzacja
- dostępny
- AWS
- tło
- Bank
- Banki
- podstawa
- jest
- BEST
- Poza
- Najwyższa
- granica
- Pudełko
- budować
- biznes
- biznes
- Kartki okolicznosciowe
- Etui
- Gotówka
- Przepływy pieniężne
- pewien
- wyzwania
- wyzwanie
- Wykresy
- Koszyk
- klasyczny
- Chmura
- CNN
- kod
- jak
- wspólny
- Firmy
- sukcesy firma
- całkowicie
- wypełniając
- wszechstronny
- obliczenia
- komputer
- pojęcie
- Konferencja
- pewność siebie
- połączony
- stale
- zawiera
- przyczyniły
- wygoda
- Wygodny
- konwersje
- rdzeń
- Korporacje
- Odpowiedni
- mógłby
- istotny
- Aktualny
- Obecnie
- klient
- Klientów
- dane
- analiza danych
- przechowywanie danych
- sprawa
- opisane
- Wnętrze
- detal
- Wykrywanie
- różne
- trudny
- cyfrowy
- dokumenty
- z łatwością
- efektywność
- pracowników
- silnik
- Inżynieria
- szczególnie
- istotnie
- Szacunki
- itp
- ewaluację
- wydarzenia
- przykład
- Z wyjątkiem
- eksperyment
- odkryj
- rozległy
- Wyciągi
- członków Twojej rodziny
- Cecha
- Korzyści
- informacja zwrotna
- Łąka
- znalezieniu
- i terminów, a
- Elastyczność
- pływ
- Skupiać
- koncentruje
- koncentruje
- skupienie
- następujący
- czoło
- Nasz formularz
- format
- formularze
- Darmowy
- francuski
- Spełnić
- pełny
- dalej
- cel
- dobry
- większy
- bardzo
- Prowadzenie
- hands-on
- głowa
- opieki zdrowotnej
- przemysł medyczny
- pomocny
- tutaj
- Wysoki
- wyższy
- wysoko
- historia
- szpitale
- W jaki sposób
- How To
- Jednak
- HTTPS
- człowiek
- Human Resources
- Ludzie
- obraz
- znaczenie
- ważny
- podnieść
- zawierać
- Włącznie z
- Dochód
- Zwiększać
- indywidualny
- osób
- przemysłowa
- przemysł
- Informacja
- wkład
- inspirowane
- Inteligencja
- problem
- IT
- Praca
- Klawisz
- Klawisze
- Labs
- język
- Języki
- duży
- prowadzący
- UCZYĆ SIĘ
- nauka
- Linia
- Lista
- długo
- maszyna
- uczenie maszynowe
- poważny
- Większość
- mężczyzna
- sposób
- rynek
- Mecz
- dopasowywanie
- medyczny
- metody
- jeszcze
- większość
- Najbardziej popularne posty
- przeniesienie
- wielokrotność
- mianowicie
- Naturalny
- wymagania
- sieć
- sieci
- normalna
- z naszej
- liczny
- oferta
- oferowany
- oferuje
- Oferty
- Oferty
- urzędnik
- trwający
- Online
- działanie
- Opcje
- zamówienie
- organizacji
- Zorganizowany
- Inne
- właściciele
- Uczestnicy
- płatność
- wykonywania
- okres
- osobisty
- Pionierskość
- Popularny
- potencjał
- power
- przewidzieć
- przepowiednia
- teraźniejszość
- bardzo
- poprzedni
- Cena
- wygląda tak
- procesów
- przetwarzanie
- Produkty
- Program
- Programy
- obiecujący
- zapewniać
- że
- cele
- szybko
- RE
- Czytelnik
- Czytający
- otrzymać
- pojednanie
- dokumentacja
- zmniejszyć
- w sprawie
- związek
- zażądać
- wymagać
- wymagany
- Wymaga
- Badania naukowe
- Zasoby
- odpowiedź
- Efekt
- powrót
- ryzyko
- skanowanie
- sekund
- usługa
- Usługi
- zestaw
- kilka
- Short
- krótkoterminowy
- podobny
- Prosty
- ponieważ
- Rozmiar
- Tworzenie
- solidny
- Rozwiązania
- kilka
- wyspecjalizowanym
- Spin
- state-of-the-art
- oświadczenia
- statystyczny
- przechowywanie
- strumień
- silny
- zbudowany
- znaczny
- udany
- Utrzymany
- Badanie
- ukierunkowane
- zadania
- zespół
- Techniki
- Technologies
- Technologia
- test
- świat
- w związku z tym
- tysiące
- Przez
- czas
- czasy
- razem
- Ton
- w kierunku
- tradycyjny
- Trening
- tutoriale
- typy
- zrozumieć
- wyjątkowy
- posługiwać się
- zazwyczaj
- wartość
- różnorodny
- Weryfikacja
- Zobacz i wysłuchaj
- wizja
- czy
- Podczas
- w ciągu
- bez
- słowa
- Praca
- pracowników
- świat
- by
- XML
- lat