Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



01.12.2022

Wyższy poziom programowania

Progress oferuje nowe narzędzia programistyczne: Progress Telerik, Progress Kendo UI i...
01.12.2022

Łączność w podróży

VMware SD-WAN VMware zaprezentował rozwiązanie SD-WAN nowej generacji, w tym nowego...
01.12.2022

Bezpieczne e-maile

Nowa aplikacja firmy Cypherdog Security Inc. umożliwia bezpieczną wymianę maili i...
01.12.2022

Pierwszy w branży

Schneider Electric wprowadza na rynek APC Smart-UPS Ultra. To pierwszy w branży...
01.12.2022

Przełączniki 10G dla MŚP

Nowe urządzenia to przełączniki 10G kompatybilne z systemem Omada SDN.
01.12.2022

Zarządzanie danymi

Firma Synology wprowadziła na rynek czterokieszeniowy DiskStation DS923+.
01.12.2022

Nowatorski system chłodzenia

OVHcloud zaprezentował nową, autorską technologię hybrydowego zanurzeniowego chłodzenia...
01.12.2022

Linia smart routerów

D-Link zaprezentował najnowszą rodzinę routerów Smart Wi-Fi z algorytmami sztucznej...
04.11.2022

Nowa platforma Red Hat

Nowa platforma Red Hat Enterprise Linux (RHEL) w wersjach 8.7 i 9.1 Beta obsługuje...

Analiza danych z Azure Cognitive Search

Data publikacji: 06-05-2022 Autor: Marcin Szeliga

Azure Cognitive Search to usługa typu PaaS pozwalająca indeksować dane w różnych formatach, wzbogacać te dane przy użyciu sztucznej inteligencji i własnych funkcji, oraz odczytywać utworzone w ten sposób indeksy pełnotekstowe przy użyciu wyrażeń języka naturalnego.

 

Dane dzieli się na ustrukturyzowane (z reguły zapisane w tabelach), częściowo ustrukturyzowane (najczęściej dokumenty JSON) i nieustrukturyzowane (audio, wideo, obrazy i teksty). Analiza i przeszukiwanie dwóch pierwszych rodzajów danych jest stosunkowo łatwa, ponieważ istnieją przeznaczone do tego celu proste w użyciu, wydajne i skalowalne narzędzia, takie jak relacyjne bazy danych i bazy NoSQL. Jednak to danych nieustrukturyzowanych jest najwięcej. Na szczęście do wydobycia ukrytych w nich informacji można użyć sztucznej inteligencji – modele przetwarzania obrazów potrafią np. rozpoznać widoczne na zdjęciach osoby, a modele przetwarzania języka naturalnego mogą ocenić nastawienie (pozytywne lub negatywne) tekstu. W tej części cyklu przedstawiamy Azure Cognitive Search, za pomocą którego można zautomatyzować analizę i przeszukiwanie nieustrukturyzowanych danych.


> Azure Cognitive Search


Do utworzenia tej usługi potrzebne będą: konto Microsoft i subskrypcja Azure  (darmową, testową subskrypcję Azure możemy rozpocząć pod adresem bit.ly/3LgpUKQ). Usługa dostępna jest w kilku wersjach cenowych, w tym wersji darmowej (F). Ten wariant pozwala utworzyć maksymalnie trzy indeksy (i używanych do wypełnienia ich danymi indekserów), których całkowity rozmiar nie może przekroczyć 50 MB, a do ich przeszukiwania będziemy mogli użyć tylko jednej jednostki obliczeniowej.


Wersja podstawowa (B) zwiększa limit liczby indeksów (i indekserów) do 15, a limit rozmiaru indeksów do 2 GB. Poindeksowane dane mogą być przeszukiwane z użyciem najwyżej trzech jednostek obliczeniowych. Koszt każdej z nich to około 65 euro miesięcznie.


Wydajność, skalowalność, ale również cena wersji standardowych (S-S3) są już znacznie wyższe. Na przykład, wersja S3 umożliwia utworzenie do 200 indeksów (i indekserów), z których każdy może zawierać do dwunastu 200 GB partycji danych, a poindeksowane dane mogą być przeszukiwane z użyciem nawet trzydziestu sześciu jednostek obliczeniowych. Miesięczny koszt każdej takiej jednostki wynosi około 1700 euro.
Utworzyć zasób typu Azure Cognitive Search można na portalu Azure (bit.ly/3tDfJKi) lub korzystając z takich narzędzi jak Azure CLI czy PowerShell. W najprostszym wypadku wystarczy wskazać docelową grupę zasobów, lokalizację i nazwę tworzonej usługi.


> Dodatkowe zasoby Azure


Usługa Azure Cognitive Search odpowiada za indeksowanie danych oraz przeszukiwanie indeksów. Oprócz niej, będziemy potrzebować dwóch innych zasobów Azure: usługi Azure Cognitive Services – do wzbogacania nieustrukturyzowanych danych z wykorzystaniem modeli głębokiego uczenia maszynowego – i usługi Storage account – do przechowywania danych źródłowych oraz bazy wiedzy zawierającej wydobyte z tych danych informacje.


Usługę Azure Cognitive Services można utworzyć na portalu (bit.ly/3qAzxwh), wybierając grupę zasobów, region (najlepiej umieścić wszystkie powiązane ze sobą usługi w tej samej grupie zasobów i w tym samym regionie), wersję i akceptując politykę Microsoftu w zakresie odpowiedzialnego korzystania ze sztucznej inteligencji.


Usługa Storage account ma więcej możliwych do skonfigurowania opcji, ale na potrzeby tego zadania możemy pozostawić ich wartości domyślne. Oznacza to, że po odwiedzeniu strony bit.ly/3iyzxIz będziemy musieli wskazać jedynie grupę zasobów, region i podać unikatową (niepowtarzalną w skali całego Azure) nazwę magazynu danych.


> Wdrożenie usługi


Przypuśćmy, że pracujemy dla agencji turystycznej. Dysponuje ona dużą liczbą broszur reklamowych, takich jak ta pokazana na rys. 1. Broszury te są dostępne w wersji cyfrowej, jako pliki PDF. Ponadto, klienci mogą zamieszczać swoje opinie na stronie WWW agencji. Opinie te, tak jak ta zamieszczona w ramce, mają formę kilkuzdaniowych wypowiedzi na temat odwiedzonych hoteli i wycieczek i również są dostępne w postaci dokumentów PDF:


Naszym zadaniem jest wydobycie z tych dokumentów wartościowych informacji, takich jak słowa kluczowe i opisy widocznych na zdjęciach obiektów, osób i krajobrazów. Te informacje posłużą potencjalnym klientom do wyszukiwania odpowiednich dla nich wyjazdów, a pracownikom agencji – do analizowania bieżącej działalności firmy. Aby zrealizować to zadanie, w pierwszej kolejności musimy wgrać posiadane dokumenty do Azure. Pozwoli nam to zdefiniować źródło danych indeksu pełnotekstowego.


> Źródła danych


Pierwszym komponentem usługi Azure Cognitive Search są źródła danych. Dane źródłowe mogą znajdować się w kontenerach lub tabelach magazynu danych Azure, usłudze Azure Data Lake albo pochodzić z baz danych – na liście wspieranych baz danych znajdują się usługa Azure SQL Database i Azure Cosmos DB.


W tym wypadku dokumenty PDF zostały zapisane w kontenerze magazynu danych Azure. Po wyświetleniu głównej strony utworzonej wcześniej usługi Azure Cognitive Search możemy więc kliknąć przycisk Import data i uruchomić kreator tworzenia indeksów. Pierwsze pytanie będzie dotyczyło wyboru istniejącego źródła danych lub utworzenia nowego. Z listy dostępnych typów źródeł danych wybrałem Azure Blob Storage. Konfigurując źródło danych, podałem jego nazwę (margies-data). Następnie upewniłem się, czy odczytane zostaną zarówno metadane, jak i cała zawartość dokumentów PDF (Content and metadata). Później kliknąłem link Choose an existing connection i wskazałem konta magazynu oraz kontener, w którym zapisane zostały dokumenty PDF. W rezultacie utworzone zostało połączenie z tym kontenerem, do uwierzytelniania którego użyty został klucz usługi Storage account. Na koniec, ponieważ chciałem odczytać wszystkie pliki, upewniłem się, że pole Blob folder jest puste.


> Zestawy umiejętności


Drugim komponentem usługi Azure Cognitive Search są zestawy umiejętności. Definiują one przekształcenia używane do wzbogacania danych. Przekształcenia są przeprowadzane w określonej kolejności, a do przekształceń wykonywanych później można przekazać wyniki tych wcześniejszych. W ten sposób zestawy umiejętności definiują potoki przekształceń indeksowanych danych. Przekształcenia mogą wywoływać konkretne funkcje Azure Cognitive Services, a możliwe jest także definiowanie własnych.


Na przykład tworzony zestaw umiejętności będzie zawierał przekształcenie wyodrębniające z treści dokumentów i obrazów znane obiekty, takie jak nazwy firm, adresy URL i e-mail, lokalizację i daty. Wyodrębnione encje zostaną zapisane w polach locations i entities:

{
  "name": "margies-skillset",
  "description": "Skillset for document extraction",
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Text.EntityRecognitionSkill",
      "name": "#1",
      "context": "/document/merged_content",
      "categories": [
        "Person",
        "Quantity",
        "Organization",
        "URL",
        "Email",
        "Location",
        "DateTime"
      ],
      "defaultLanguageCode": "en",
      "inputs": [
        {
          "name": "text",
          "source": "/document/merged_content"
        },
        {
          "name": "languageCode",
          "source": "/document/language"
        }
      ],
      "outputs": [
        {
          "name": "locations",
          "targetName": "locations"
        },
        {
          "name": "entities",
          "targetName": "entities"
        }
      ]
    },

Powyższe przekształcenie wywoływało odpowiednią funkcję usług Azure Cognitive Services. Możemy jednak również definiować własne przekształcenia. Pozwala to wywołać dodatkowe usługi poznawcze, na przykład usługę rozpoznawania formularzy; wysłać dane do własnego modelu predykcyjnego czy po prostu zaimplementować własną logikę.

 

[...]

 

Autor jest pracownikiem naukowym Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie. Autor książek poświęconych analizie danych, posiadacz tytułu Microsoft Most Valuable Professional.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik \"IT Professional\"