Esercitazione: Introduzione alle funzionalità cognitive di U-SQL

Le funzionalità cognitive per U-SQL consentono agli sviluppatori di usare l'intelligence nei programmi di Big Data che creano. Processo complessivo in breve:

  • Usare l'istruzione REFERENCE ASSEMBLY per abilitare le funzionalità cognitive per lo script U-SQL
  • Chiamare l'operazione PROCESS per usare le funzionalità cognitive

Scenari di creazione dell'immagine

Esempio: tag di immagine

L'esempio seguente illustra un uso end-to-end delle funzionalità di creazione dell'immagine per rilevare gli oggetti nelle immagini.

REFERENCE ASSEMBLY ImageCommon;
REFERENCE ASSEMBLY FaceSdk;
REFERENCE ASSEMBLY ImageEmotion;
REFERENCE ASSEMBLY ImageTagging;
REFERENCE ASSEMBLY ImageOcr;

@imgs =
    EXTRACT FileName string, ImgData byte[]
    FROM @"/images/{FileName:*}.jpg"
    USING new Cognition.Vision.ImageExtractor();

// Extract the number of objects on each image and tag them 
@objects =
    PROCESS @imgs 
    PRODUCE FileName,
            NumObjects int,
            Tags string
    READONLY FileName
    USING new Cognition.Vision.ImageTagger();

Estrarre le emozioni dai volti umani

@emotions =
    PROCESS @imgs
    PRODUCE FileName string,
            NumFaces int,
            Emotion string
    READONLY FileName
    USING new Cognition.Vision.EmotionAnalyzer();

Stimare età e sesso dai volti umani

@faces = 
        PROCESS @imgs
        PRODUCE FileName,
                NumFaces int,
                FaceAge string,
                FaceGender string
        READONLY FileName
        USING new Cognition.Vision.FaceDetector();

Individuare testo nelle immagini (OCR)

@ocrs =
        PROCESS @imgs
        PRODUCE FileName,
                Text string
        READONLY FileName
        USING new Cognition.Vision.OcrExtractor();

Scenari di testo

Dati di input

Si supponga di avere un input costituito da "Guerra e pace" di Leo Tolstoy.

REFERENCE ASSEMBLY [TextCommon];
REFERENCE ASSEMBLY [TextSentiment];
REFERENCE ASSEMBLY [TextKeyPhrase];

@WarAndPeace =
    EXTRACT No int,
            Year string,
            Book string,
            Chapter string,
            Text string
    FROM @"/usqlext/samples/cognition/war_and_peace.csv"
    USING Extractors.Csv();

Estrarre le frasi chiave da ogni paragrafo

@keyphrase =
    PROCESS @WarAndPeace
    PRODUCE No,
            Year,
            Book,
            Chapter,
            Text,
            KeyPhrase string
    READONLY No,
            Year,
            Book,
            Chapter,
            Text
    USING new Cognition.Text.KeyPhraseExtractor();

// Tokenize the key phrases.
@kpsplits =
    SELECT No,
        Year,
        Book,
        Chapter,
        Text,
        T.KeyPhrase
    FROM @keyphrase
        CROSS APPLY
            new Cognition.Text.Splitter("KeyPhrase") AS T(KeyPhrase);

Eseguire l'analisi dei sentiment su ogni paragrafo

@sentiment =
    PROCESS @WarAndPeace
    PRODUCE No,
            Year,
            Book,
            Chapter,
            Text,
            Sentiment string,
            Conf double
    READONLY No,
            Year,
            Book,
            Chapter,
            Text
    USING new Cognition.Text.SentimentAnalyzer(true);