Fallstudie: Unterwegs mit dem Scooter!

Einführung in AWS Boto mit Python

Maksim Pecherskiy

Data Engineer

Das Dilemma

Scooter

Einführung in AWS Boto mit Python

Das Dilemma

Scooter

Einführung in AWS Boto mit Python

Die Daten

service_request_id image lat long public_description
93494 report_113439.jpg 32.723138 -117.128237 Hay un scooter electrico en sidewalk
101502 report_134938839.jpg 32.7077658 -117.1281408 This scooter helped me move a mattress!
101520 report_272819.jpg 32.77605567 -117.100004 There is a scooter blocking the sidewalk
101576 report_3722938.jpg 32.68899358 -117.0584723 I tripped on a stupid scooter
Einführung in AWS Boto mit Python

Endprodukt

Endprodukt

Einführung in AWS Boto mit Python

Endprodukt

Endprodukt

Einführung in AWS Boto mit Python

Endprodukt

Endprodukt

Einführung in AWS Boto mit Python

Endprodukt

Endprodukt

Einführung in AWS Boto mit Python

Endprodukt

Endprodukt

Einführung in AWS Boto mit Python

boto3-Service-Clients initialisieren.

Rekognition-Client initialisieren

rekog = boto3.client('rekognition',
                     region_name='us-east-1', 
                     aws_access_key_id=AWS_KEY_ID, 
                     aws_secret_access_key=AWS_SECRET)

Comprehend-Client initialisieren

comprehend = boto3.client('comprehend',
                     region_name='us-east-1', 
                     aws_access_key_id=AWS_KEY_ID, 
                     aws_secret_access_key=AWS_SECRET)
Einführung in AWS Boto mit Python

boto3-Service-Clients initialisieren

Translate-Client initialisieren

translate = boto3.client('translate', 
                         region_name='us-east-1', 
                         aws_access_key_id=AWS_KEY_ID, 
                         aws_secret_access_key=AWS_SECRET)
Einführung in AWS Boto mit Python

Alle Beschreibungen ins Englische übersetzen

for index, row in df.iterrows():
    desc = df.loc[index, 'public_description']
    if desc != '':
        resp = translate_fake.translate_text(
          Text=desc, 
          SourceLanguageCode='auto', 
          TargetLanguageCode='en')
        df.loc[index, 'public_description'] = resp['TranslatedText']
Einführung in AWS Boto mit Python

Alle Beschreibungen ins Englische übersetzen

service_request_id image lat long public_description
93494 report_113439.jpg 32.723138 -117.128237 Electric scooter on sidewalk
101502 report_134938839.jpg 32.7077658 -117.1281408 This scooter helped me move a mattress!
101520 report_272819.jpg 32.77605567 -117.100004 There is a scooter blocking the sidewalk
101576 report_3722938.jpg 32.68899358 -117.0584723 I tripped on a stupid scooter
Einführung in AWS Boto mit Python

Textstimmung erkennen

for index, row in df.iterrows():
    desc = df.loc[index, 'public_description']
    if desc != '':
        resp = comprehend.detect_sentiment(
          Text=desc, 
          LanguageCode='en')
        df.loc[index, 'sentiment'] = resp['Sentiment']
Einführung in AWS Boto mit Python

Textstimmung erkennen

service_request_id image lat long sentiment public_description
93494 report_113439.jpg 32.723138 -117.128237 NEGATIVE Electric scooter on sidewalk
101502 report_134938839.jpg 32.7077658 -117.1281408 POSITIVE This scooter helped me move a mattress!
101520 report_272819.jpg 32.77605567 -117.100004 NEGATIVE There is a scooter blocking the sidewalk
101576 report_3722938.jpg 32.68899358 -117.0584723 NEGATIVE I tripped on a stupid scooter
Einführung in AWS Boto mit Python

Scooter im Bild erkennen

df['img_scooter'] = 0
for index, row in df.iterrows():
    image = df.loc[index, 'image']
    response = rekog.detect_labels(
      # Specify the image as an S3Object
      Image={'S3Object': {'Bucket': 'gid-images', 'Name': image}}
    )
    for label in response['Labels']:
        if label['Name'] == 'Scooter':
        df.loc[index, 'img_scooter'] = 1
        break
Einführung in AWS Boto mit Python

Scooter im Bild erkennen

service_request_id image img_scooter sentiment lat long public_description
93494 report_113439.jpg 1 NEGATIVE 32.723138 -117.128237 Electric scooter on sidewalk
101502 report_134938839.jpg 1 POSITIVE 32.7077658 -117.1281408 This scooter helped me move a mattress!
101520 report_272819.jpg 0 NEGATIVE 32.77605567 -117.100004 There is a scooter blocking the sidewalk
101576 report_3722938.jpg 1 NEGATIVE 32.68899358 -117.0584723 I tripped on a stupid scooter
Einführung in AWS Boto mit Python

Endzählung!

Nur Zeilen auswählen mit Scooter-Bild und negativer Stimmung

pickups = df[((df.img_scooter == 1) & (df.sentiment == 'NEGATIVE'))]

num_pickups = len(pickups)

332 Scooter!

Einführung in AWS Boto mit Python

Lass uns üben!

Einführung in AWS Boto mit Python

Preparing Video For Download...