Metadane książek i pobieranie okładek za pomocą OCR i Google Books API
Dzięki KNIME wyodrębnianie krytycznych informacji z obrazów staje się proste jak ABC.
By Roberto Cadili, Data Scientist, KNIME & Łada Rudnickaia, analityk danych, KNIME
Rysunek 1: Przykłady ogłoszeń o wydaniach książek, z których można wyodrębnić informacje dzięki OCR.
W większości przypadków surowe dane, których potrzebujemy do naszego projektu nauki o danych, nie są zorganizowane w zgrabną, dobrze ustrukturyzowaną i przejrzystą tabelę. Zamiast tego jest to czasami przechowywane jako tekst w zeskanowanym dokumencie. Słowa w dokumencie muszą być następnie wyodrębniane jedno po drugim, aby utworzyć komórkę danych w formacie tekstowym. To zadanie wykonuje Optical Character Recognition (OCR).
Kiedy czytasz słowa tego artykułu, czy to tekst, czy liczby, twoje oczy są w stanie je przetworzyć, rozpoznając jasne i ciemne wzory, z których składają się znaki (np. litery, cyfry, znaki interpunkcyjne itp.). Twój mózg następnie dekoduje różne kombinacje znaków i wzorów, aby uchwycić znaczenie słów. W tym sensie twoje oczy i mózg są najbardziej wyrafinowanym i wyrafinowanym mechanizmem OCR, jaki możesz sobie wyobrazić, i działają tak, że nawet tego nie zauważasz.
Komputery mają podobne możliwości, ale muszą stawić czoła kluczowemu ograniczeniu: brakowi oczu. Jeśli chcemy, aby komputery widziały i czytały fizyczny dokument tekstowy, musimy wprowadzić plik graficzny wygenerowany za pomocą skanera optycznego lub aparatu cyfrowego. Jeśli chodzi o komputery, nie ma różnicy między dokumentem uzyskanym za pomocą którejkolwiek z tych opcji a fotografią wieży Eiffla: oba są uważane za nic nieznaczące zbiory kolorowych kwadratów — zwanych również pikselami — które składają się na dowolny komputerowy obraz graficzny. Jako taki, ten ostatni jest tylko obrazem tekstu, który zamierzamy przeczytać, a nie samego tekstu.
Tutaj z pomocą może przyjść OCR. Ta zaawansowana technologia jest w stanie wyodrębnić dane drukowane, pisane na maszynie lub odręcznie, takie jak faktury, wizytówki, teksty prawne lub wydruki, i konwertować je do formatu cyfrowego, który można przeszukiwać i edytować. Chociaż przez wiele lat OCR było uważane za kosztowną usługę, na którą stać było tylko bardzo nieliczne duże firmy, od połowy 2000 roku jej koszt stopniowo spadał, a jej dokładność i możliwości ewoluowały, aby obsługiwać dziś kilkaset języków i kodowanie znaków , od UTF-8 do GB2312.
Korzyść z wyszukiwania i wyodrębniania tekstu z obrazów może być bezcenna. Na przykład w branży prawniczej lub księgowej może to oznaczać znaczną oszczędność kosztów i czasu, ponieważ umożliwia wyszukiwanie fragmentów tekstu lub liczb w artykułach lub sprawozdaniach finansowych w ciągu kilku sekund. Porównanie tego procesu z kosztem zatrudnienia grupy osób do przeczytania tysięcy dokumentów w celu znalezienia pojedynczej, krytycznej informacji daje wyobrażenie o korzyściach, jakie OCR może przynieść firmom.
Ostatnio technologia OCR przechodzi cichą rewolucję, ponieważ dostawcy tej usługi łączą ją ze sztuczną inteligencją. W rezultacie dane są nie tylko przechwytywane, przeszukiwane i edytowane, ale także system sztucznej inteligencji faktycznie rozumie treść, aby wykonać określone zadania. Na przykład po OCRowaniu tekstu sztuczna inteligencja może zapewnić jego tłumaczenie za pomocą neuronowego tłumaczenia maszynowego przy minimalnej interwencji człowieka. Inny klasyczny przykład pochodzi z działu audytu, gdzie fałszywe faktury można rozpoznać po OCR-owaniu treści dokumentu pdf przy użyciu technik wykrywania wartości odstających. I tak dalej. Ta synergia łączy to, co najlepsze z obu światów, aby usprawnić procesy i zwiększyć produktywność firm i klientów.
W przypadku użycia opisanym w tym artykule OCR służy do identyfikacji książki, a następnie do pobrania metadanych książki z repozytorium Google Books.
Dokładniej, przyjrzymy się:
- Jak można przeprowadzić OCR w Platforma analityczna KNIME.
- Jak możemy zintegrować procesor OCR KNIME i Google Books API w przypadku użycia pobierania metadanych i okładek książek.
OCR w platformie analitycznej KNIME
OCRowanie obrazu zawierającego tekst w KNIME jest bardzo łatwym zadaniem. Wystarczy zainstalować tzw Przetwarzanie obrazu KNIME — integracja Tess4J rozszerzenie w twoim lokalnym Platforma analityczna KNIME, a także przeciągnij i upuść Tess4J node do edytora przepływu pracy.
Węzeł Tess4J integruje Biblioteka Tesseract OCR, jeden z najczęściej używanych i najdokładniejszych dostępnych procesorów OCR typu open source. Tesseract został pierwotnie opracowany jako zastrzeżone oprogramowanie przez Hewlett-Packard Laboratories na początku lat 1990., a później stał się oprogramowaniem typu open source w 2005 r. Od tego czasu Google przyjął projekt i sponsorował jego rozwój.
Węzeł Tess4J działa na Tesseract 3, który działa poprzez rozpoznawanie wzorców znaków w procedurze dwuprzebiegowej.
- W pierwszym przejściu silnik próbuje rozpoznać każdą postać z osobna. Następnie przekazuje znaki, które zostały rozpoznane z dużą pewnością w pierwszym przebiegu, do klasyfikatora adaptacyjnego jako dane uczące. W ten sposób klasyfikator adaptacyjny ma szansę nauczyć się dokładniej rozpoznawać kolejny tekst.
- Może się jednak zdarzyć, że klasyfikator adaptacyjny pozna przydatne informacje zbyt późno, aby wnieść znaczący wkład. Aby rozwiązać ten problem i wykorzystać wiedzę zdobytą przez klasyfikator adaptacyjny, silnik uruchamia drugi przebieg, w którym znaki, które nie zostały rozpoznane wystarczająco dobrze, są ponownie rozpoznawane [1].
Tesseract 3 obsługuje dowolne znaki Unicode (zakodowane za pomocą UTF-8) i może przetwarzać tekst w różnych językach i układzie pisma: od lewej do prawej (np. angielski, włoski, rosyjski itp.), od prawej do lewej (np. arabski, hebrajski, urdu itp.) i od góry do dołu (np. japoński, koreański, chiński itp.) [2].
Zrzeczenie się. Użytkownicy komputerów Mac nie mogą obecnie korzystać z węzła Tess4J. Deweloperzy KNIME pracują nad przywróceniem płynnego działania.
Przypadek użycia: pobieranie metadanych książki i okładki
Teraz, gdy zdobyliśmy podstawową wiedzę na temat działania OCR w KNIME Analytics Platform, przyjrzyjmy się interesującemu przypadkowi użycia. Załóżmy, że zebraliśmy obrazy ilustrujące informacje o wydaniach kilku książek i na podstawie tych informacji chcemy pobrać metadane i okładki książek. Pobrane dane można następnie wykorzystać na przykład do zbudowania dostosowanej biblioteki cyfrowej i szkolenia systemu rekomendacji książek.
Przepływ pracy przedstawiony na rysunku 2 obejmuje wszystkie etapy: od odczytu obrazu, rozpoznawania OCR, przetwarzania tekstu i wyodrębniania numerów referencyjnych ISBN, po metadane książki i wyszukiwanie okładek oraz wizualizację. Przyjrzyjmy się szczegółowo różnym krokom.
Rysunek 2: To workflow wykonuje proste zadanie OCR na informacjach o wydaniu książki i pobiera metadane książki oraz okładkę za pomocą Google Books API.
1 — Odczyt danych obrazu
Pierwszym krokiem jest zaimportowanie obrazów informacji o wydaniu książki do KNIME. Informacja o wydaniu to strona w książce zawierająca informacje o bieżącym wydaniu, takie jak informacja o prawach autorskich, informacje prawne, informacje o publikacji, historia druku i kod ISBN (Rysunek 1).
Metanode „Read image data” zajmuje się tym w łatwy i programowy sposób (Rysunek 3). Identyfikujemy lokalizację, w której przechowywane są pliki graficzne z rozszerzeniem Lista plików/folderów węzeł i użyj Czytnik obrazów (tabela) node, aby z wdziękiem zaimportować obrazy. W węźle Image Reader (Table) musimy tylko określić „File Input Column”, czyli kolumnę ze ścieżkami do plików, w których przechowywane są nasze obrazy. Wszystkie inne konfiguracje można pozostawić jako domyślne.
Czytnik obrazów (tabela) jest częścią Przetwarzanie obrazu KNINE rozszerzenie i, podobnie jak inne węzły w tym rozszerzeniu, oferuje interaktywny widok zawierający obraz i jego metadane, po prostu klikając węzeł prawym przyciskiem myszy, wybierając „Widok: przeglądarka obrazów” i klikając dwukrotnie dowolny obraz w widoku tabeli.
Rysunek 3: Wewnątrz metawęzła „Odczyt danych obrazu”. Węzeł czytnika obrazów (tabela) importuje obrazy do przepływu pracy i umożliwia nam interaktywne przeglądanie ich w jego widoku.
2 — OCR
Po wczytaniu plików graficznych informacji o wydaniu książki możemy je OCRować.
Konfiguracja węzła Tess4J jest bardzo prosta i wymaga zaledwie kilku kliknięć (Rysunek 4). w Ustawienia węzeł oferuje możliwość skorygowania dowolnego obrotu lub przekrzywienia obrazu poprzez zaznaczenie pola „Przekośne obrazy wejściowe” w sekcji „Przetwarzanie wstępne” okna dialogowego konfiguracji. Zwykle jest to zalecane, ponieważ pliki graficzne mogą nie być odpowiednio wyrównane. Co więcej, węzeł Tess4J automatycznie tworzy zbinaryzowany obraz za maską.
Następnie wybieramy „Ścieżkę Tessdata”. Domyślnie jest to ustawione na „Użyj wewnętrznego”, co pozwala nam wybrać język tekstu, który chcemy przetworzyć. W tej konfiguracji domyślnym językiem jest angielski, ale węzeł Tess4J obsługuje inne języki naturalne, takie jak duński, włoski, hiszpański, rosyjski, grecki, słowacki, niemiecki i francuski. Warto wspomnieć, że wybierając „Use External” możemy rozszerzyć możliwości węzła Tess4J o języki, które nie są wewnętrznie wspierane. Rzeczywiście, możemy wybrać własne, wyszkolone z zewnątrz modele języka danych, określając katalog, w którym są przechowywane. Wybieramy „Użyj wewnętrznego”, ponieważ wolimy polegać na wewnętrznych modelach Tess4J dla naszych angielskich dokumentów.
W sekcji „Konfiguracja rozpoznawania” znajdziemy dwie najważniejsze konfiguracje list rozwijanych, a mianowicie „Tryb segmentacji strony” oraz „Tryb silnika OCR”. Pierwszy określa sposób segmentacji naszej strony.
Na rysunku 4 wybieramy opcję „Full Auto Pageseg”, która zapewnia w pełni automatyczną segmentację stron. W zależności od konkretnego przypadku użycia, wybranie innego trybu spośród 13 dostępnych (np. „Pojedyncza kolumna” lub „Rzadki tekst”) może być bardziej odpowiednią opcją.
Drugie ustawienie prosi nas o wybranie silnika OCR. Tutaj wybieramy „Tylko Tesseract”, co zapewnia najszybsze wykonanie. Inne opcje to „Cube Only” — alternatywny tryb rozpoznawania dla Tesseract — który jest wolniejszy, ale często daje lepsze wyniki; lub „Tesseract And Cube”, który łączy w sobie to, co najlepsze z obu światów. Wybór jednego lub drugiego silnika w dużej mierze zależy od jakości obrazu i złożoności tekstu, który chcemy przetworzyć.
Oprócz podstawowych ustawień węzeł Tess4J oferuje m.in Zaawansowana konfiguracja zakładka, w której możemy zdefiniować zestaw parametry kontrolne. Ta zakładka sprawia, że węzeł jest niezwykle elastyczny i pomaga doświadczonym użytkownikom dostosować i dostroić silnik Tesseract OCR do ich specyficznych potrzeb. Nie martw się jednak, w większości przypadków podstawowe konfiguracje zajmą Ci dużo czasu!
Rysunek 4: Okno dialogowe konfiguracji węzła Tess4J.
Oprócz dostosowywania konfiguracji węzła Tess4J do danego przypadku użycia, dobrą praktyką jest dokładne wstępne przetwarzanie obrazów wejściowych, jeśli to konieczne. W szczególności Tesseract działa najlepiej, gdy obrazy są odpowiednio powiększone, tak że liczba pikseli x-wysokości znaków wynosi co najmniej 20 pikseli; obrazy są prawidłowo wyrównane i mają odpowiednio wysoką rozdzielczość; a wszelkie ciemne obramowania zostaną usunięte lub mogą zostać błędnie zinterpretowane jako znaki [3]. The Przetwarzanie obrazu KNINE zawiera kilka węzłów do czyszczenia obrazu, manipulacji i transformacji oraz wiele innych przykładowe przepływy pracy można znaleźć na Centrum KNIME.
Dane wyjściowe węzła Tess4J to tabela zawierająca wyodrębniony tekst jako typ danych String i jako taka może być wyszukiwana i edytowana.
3 — Przetwarzanie tekstu w celu wyodrębnienia numeru ISBN
Gdy obrazy zostaną poddane OCR, można ostatecznie uzyskać dostęp do zawartego w nich tekstu i odzyskać przydatne informacje.
W szczególności informacje o wydaniu zwykle zawierają kod ISBN przypisany do książki. Kod ISBN jest unikalnym, 13-cyfrowym (do 10 roku miał 2007-cyfrowym) identyfikatorem książki handlowej i jako taki jest przypisany do każdego wydania i odmiany publikacji. Wyodrębnienie kodu ISBN pozwala nam jednoznacznie odnieść się do każdej książki, gdy chcemy pobrać metainformacje. Aby to osiągnąć, możemy polegać na węzłach zawartych w KNIME — Przetwarzanie tekstu rozszerzenie, z których niektóre są używane w metawęźle „wydobywania ISBN” (Rysunek 5).
W metanodzie „Czyszczenie tekstu” zaczynamy od przekształcenia tekstu OCRed z typu danych String na Document. Następnie konwertujemy tekst na małe litery, usuwamy interpunkcję, spacje, łączniki i zamieniamy litery „o” na „0” (zera), aby poprawić błędnie rozpoznane znaki w kodach ISBN.
Wyodrębniamy kody ISBN, wyodrębniając 13 znaków następujących po łańcuchu „isbn” i używamy Silnik reguł node, aby sprawdzić, czy wyodrębnione znaki nie zawierają brakujących wartości i czy mają oczekiwaną długość 13 znaków. Następnie wykorzystujemy zdolność tego węzła do dołączenia kolumny, która oznacza udaną ekstrakcję jako 1 i nieudaną ekstrakcję jako 0.
Rysunek 5: Wewnątrz metawęzła „Ekstrakcja ISBN”.
4 — Wyszukiwanie i wizualizacja metainformacji
W ostatnim kroku używamy kodów ISBN do pobierania metainformacji i okładek książek z interfejsu Google Books API. Zajmuje się tym metanod „Pobierz metadane książki i okładki” (Rysunek 6). Jednak pobieranie metadanych jest możliwe tylko wtedy, gdy kody ISBN zostały pomyślnie wyodrębnione. Aby zapewnić płynną obsługę udanej/nieudanej ekstrakcji numerów ISBN, dołączamy kilka węzłów kontroli przepływu pracy. Wnikliwy przegląd można znaleźć w Ściągawka: kontrola i orkiestracja za pomocą platformy analitycznej KNIME.
Jeśli kod ISBN zostanie wyodrębniony pomyślnie, użyjemy rozszerzenia POBIERZ Żądanie węzeł, do którego ma zostać wysłane żądanie GET Interfejs API Książek Google, bezpłatna usługa internetowa RESTful obsługiwana przez Google, która umożliwia pobieranie kilku metainformacji, takich jak tytuł książki, podtytuł, autorzy, data publikacji, opis, liczba stron, język, średnia ocena, liczba ocen i okładka. Co więcej, ta usługa internetowa RESTful nie wymaga tworzenia konta programisty. Konfiguracja węzła GET Request jest bardzo prosta. Wymaga prostego wyboru sensownej „kolumny adresu URL”, którą tworzymy w pliku Manipulacja strunami węzeł, dołączając do Adres URL interfejsu API Książek Google z kodem ISBN każdego ogłoszenia o wydaniu. Wszystkie inne konfiguracje można pozostawić jako domyślne.
Następnie analizujemy dane wyjściowe JSON węzła GET Request przy użyciu metody Ścieżka JSON node i połącz wyodrębnione metainformacje z okładkami książek przed zebraniem ostatecznych wyników.
Na koniec tworzymy komponent „Wizualizuj metadane i okładki książek”, aby uzyskać przejrzystą wizualizację pobranych metainformacji i okładek książek.
W komponencie zawijamy plik Interaktywny widżet filtra suwaka zakresu węzeł umożliwiający dynamiczne filtrowanie książek na podstawie średniej liczby ocen (0 — fatalna; 5 — fantastyczna) nadanej przez czytelników w Książkach Google oraz Widok kafelkowy węzeł, aby wyświetlić wyniki.
Następnie komponent uzyskuje widok zawierający suwak do wyboru książek na podstawie średniej oceny oraz tabelę z okładkami i opisami wybranych książek. W tym artykule wybraliśmy wyodrębnianie książek z ocenami od 3 do 5, a wyniki przedstawiono na rysunku 6.
Rysunek 6: Pobrane metainformacje i okładki książek z ocenami wyższymi niż 3.
Podsumowanie
W tym artykule zilustrowaliśmy, w jaki sposób OCR można łatwo przeprowadzić na platformie analitycznej KNIME. W tym celu zaprezentowaliśmy węzeł Tess4J oraz podaliśmy szczegóły dotyczące funkcjonowania biblioteki Tesseract OCR, na której ten węzeł jest oparty.
Ponadto pokazaliśmy prosty przypadek użycia, w którym OCR może być potężnym i użytecznym zasobem. Wyodrębniliśmy informacje z powiadomień o wydaniach książek – w szczególności kody ISBN – w celu wysłania żądania GET do usługi internetowej RESTful Książek Google. Umożliwiło nam to pobranie metadanych i okładek książek.
Dzięki KNIME OCRing obrazów w celu wyodrębnienia krytycznych informacji staje się tak proste, jak ABC. Wypróbuj sam! Jaki jest Twój przypadek użycia OCR?
Przepływ pracy przedstawiony w tym artykule można pobrać bezpłatnie ze strony Centrum KNIME.
Referencje
[1] Smith, R. (2007). „Przegląd silnika Tesseract OCR”. Dziewiąta Międzynarodowa Konferencja na temat Analizy i Uznawania Dokumentów (ICDAR 2007), s. 629–633. Dostępne pod adresem:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Źródło: 15.07.2021].
[2] Projekt Tesseract OCR na GitHub — https://github.com/tesseract-ocr/tesseract
[3] Dokumentacja Tesseract OCR na GitHub — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili jest Data Scientist w KNIME, entuzjastą NLP i miłośnikiem historii. Redaktor Low Code for Advanced Data Science.
Łada Rudnickaia jest analitykiem danych w KNIME.
Jak po raz pierwszy opublikowano w Niski kod dla zaawansowanej analizy danych.
Oryginalny. Przesłane za zgodą.
Związane z:
Źródło: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Konto
- Księgowość
- AI
- Wszystkie kategorie
- analiza
- analityka
- api
- artykuł
- towary
- Autorzy
- samochód
- BEST
- Książki
- Pudełko
- budować
- biznes
- biznes
- który
- Kariera
- Etui
- rozpoznawanie znaków
- chiński
- klasyfikacja
- Sprzątanie
- klientów
- kod
- Zbieranie
- Kolumna
- handlowy
- Firmy
- składnik
- komputery
- Konferencja
- pewność siebie
- systemu
- zawartość
- prawo autorskie
- Aktualny
- tablica rozdzielcza
- dane
- nauka danych
- naukowiec danych
- detal
- Wykrywanie
- Deweloper
- deweloperzy
- oprogramowania
- cyfrowy
- dokumenty
- Spadek
- Wcześnie
- redaktor
- inżynier
- Angielski
- itp
- egzekucja
- Rozszerzać
- Wykorzystać
- ekstrakcja
- Postać
- W końcu
- budżetowy
- i terminów, a
- obserwuj
- Nasz formularz
- format
- Darmowy
- francuski
- GitHub
- dobry
- Zarządzanie
- Prowadzenie
- poręczny
- tutaj
- Wysoki
- Wynajmowanie
- historia
- Hosting
- W jaki sposób
- How To
- HTTPS
- pomysł
- zidentyfikować
- obraz
- Włącznie z
- Dochód
- Zwiększać
- przemysł
- Informacja
- interaktywne
- na świecie
- IT
- przystąpić
- wiedza
- koreański
- Etykiety
- język
- Języki
- duży
- UCZYĆ SIĘ
- nauka
- Regulamin
- Dźwignia
- Biblioteka
- lekki
- Lista
- lokalizacja
- długo
- uczenie maszynowe
- tłumaczenie maszynowe
- Manipulacja
- średni
- mianowicie
- Schludny
- Nerwowy
- nlp
- węzły
- z naszej
- OCR
- Oferty
- koncepcja
- open source
- optyczne rozpoznawanie znaków
- Option
- Opcje
- Inne
- Ludzie
- fizyczny
- obraz
- piksel
- Platforma
- wydajność
- projekt
- Python
- jakość
- zasięg
- Oceny
- Surowy
- surowe dane
- Czytelnik
- czytelnicy
- Czytający
- raport
- Zasób
- Efekt
- nauka
- Szukaj
- wybrany
- rozsądek
- zestaw
- ustawienie
- Prosty
- So
- Tworzenie
- ROZWIĄZANIA
- hiszpański
- Łącza
- początek
- historie
- udany
- wsparcie
- Utrzymany
- podpory
- system
- Techniki
- Technologia
- tesseract
- czas
- Top
- Trening
- Transformacja
- transformatorowy
- Tłumaczenie
- unicode
- us
- Użytkownicy
- Zobacz i wysłuchaj
- wyobrażanie sobie
- sieć
- Co to jest
- słowa
- Praca
- workflow
- działa
- wartość
- pisanie
- X
- lat