Algorithmia

DubHacks Spotlight: BSO’Meter Fact-Checks the Politicians

image

Algorithmia was on-hand at the second-annual DubHacks hackathon last month, the largest collegiate hackathon in the Pacific Northwest. Over 600 student developers and designers flocked to the University of Washington in Seattle campus to form teams, build projects, and create solutions to real-world problems.

The winner of the Best Use of the Algorithmia Platform was BSO’Meter, an iOS app by Rosie Zou, Jules Mazur, Daniel Tran, Kim Lister, Shaheen Sharifian that used Algorithmia to analyze statements made by politicians for factual correctness. We spoke with Rosie Zou about how their hack came together, inspiration, and what they’re planning to do next.

What was your team’s goal heading into DubHacks?

“Our main goal was really to just make something cool, learn, and have fun. Winning would be great, but to us it was completely optional. We came up with BSO’Meter because of the elections going on both in the U.S. and in Canada, and wanted to make an app that tells the user how much of a political statement is completely BS.

“At that time, we didn’t really plan out which specific frameworks or APIs we were going to use, but we did a lot of research on the necessary work for both frontend and backend, and we knew that we would, at the very least, require some sort of ‘smart’ text analysis.”

image

How did you utilize Algorithmia in BSO’Meter?

“Having worked with many APIs and libraries before, our biggest concern for the backend is that the API might be hard to integrate, or that the API and the app would require different versions of a language. These didn’t prove to be a problem at all when we used Algorithmia.

“The Python Client was very easy to install, and it was my first time calling an API using only five lines of code. We also loved how the output file was a Python string instead of the usual JSON files – no parsing, yay! Shoutouts to the simplicity and conciseness of Algorithmia’s APIs!”

What algorithms did your team use? 

“We used four algorithms: Extract Text, Summarizer, Sentence Detection, and Sentiment Analysis. We wired our frontend and backend together with a web server. The user inputs a URL, we then use Algorithmia’s APIs on the backend to extract the text from the webpage, summarize the text, break down the summary into sentences, and assign each sentence with a sentiment score of 0 to 4 – 0 being very negative and 4 being very positive.

“We then take the average sentiment score of all sentences and use that value along with a Bayesian classification model that we developed, in order to analyze the text more accurately.

“We built the frontend in Xcode, using Swift 2.0, the backend programming was done in Python, and incorporated Algorithmia’s APIs. Our server was built on Tornado.”

What’s next for BSO’Meter?

“BSO’Meter is still largely a work in progress. We were very excited to have come up with a working demo during the hackathon, and we decided to continue the project afterwards. A lot of the features that we want to add to BSO’Meter would be made much easier by using Algorithmia’s APIs, including OCR, speech-to-text, and improvements on our Bayesian classification model.”

Learn More about BSO’Meter:

GeekWire Selects Algorithmia as One of Seattle’s Top 10 Startups

image

We’re honored to be included on this year’s GeekWire Seattle 10. This prestigious list showcases the 10 most promising startups in the Seattle area with world-changing business ideas.

Algorithmia was selected by a panel of judges, which included Geoff Entress (Pioneer Square Labs), Rebecca Lovell (City of Seattle), Julie Sandler (Madrona Venture Group), Mukund Mohan (Microsoft Ventures), and Leonard Garfield (MOHAI).

What they said about Algorithmia:

Quick take: It doesn’t get much geekier than this. Diego Oppenheimer and his team of computer scientists are creating a marketplace for algorithms.

The idea? Spark more algorithms by making them easier for developers to find and use.

“Our goal since day one is to unlock the algorithmic knowledge of the world and make it accessible to anyone, anywhere,” said Oppenheimer, a former Microsoft program manager who met his co-founder, Kenny Daniel, when they were students at Carnegie Mellon.

We’re now tasked with translating our business concept onto a giant, six-foot by six-foot cocktail napkin, which will be unveiled at the GeekWire Gala on Dec. 2nd at MOHAI. Get your tickets here.

About Algorithmia:

Algorithmia enables developers to create tomorrow’s smart applications today. This first-of-its-kind marketplace for algorithms unlocks the building blocks of human intelligence, providing access to world class scientific research and artificial intelligence in five lines of code or less.

Developers can now easily recognize patterns in data, extract visual knowledge, understand audio, classify unstructured data, derive meaning from language, and so much more. Algorithmia is the largest marketplace for algorithms in the world, with more than 14,000 developers leveraging 1,600+ algorithms.

“Data is inherently dumb,” Peter Sondergaard said, senior vice president at Gartner Research. “Data alone is not going to be the catalyst for the next wave of IT-driven innovation. The next digital gold rush will be focused on how you do something with data, not just what you do with it. This is the promise of the algorithm economy.”

We couldn’t agree more.

Five Algorithms Every Web Developer Can Use and Understand [Free eBook]

 

imageThe world of algorithms is as endless as it is fascinating. Working as a programmer encourages you to always pick up new tools and bring them into your applications. Our free eBook, Five Algorithms Every Web Developer Can Use and Understand by Sheldon Kreger, teaches you how to harness the power of algorithms so you can make every app a smart app.Each of the five chapters feature an algorithm available in the Algorithmia API, designed to help developers with limited background in mathematics gain access to these amazing utilities. In this short primer, we cover PageRank, Language Detection, Nudity Detection, Sentiment Analysis, and TF-IDF, and how you could implement it today.

Now you can make prototypes and iterate on your products quicker than ever. Get started making algorithms work for you so you can save time and energy.

Get your free eBook here

Algorithms for the Masses: Learn how to give your app super powers

image

Join Algorithmia on Monday, November 9th at 4pm for a discussion on the power of algorithms at Startup Hall, and how you can build next generation apps using machine learning, natural language processing, computer vision, and more. We’ll discuss how algorithms can power intelligent platforms, and create personal, context-aware interactions you can use to turn dumb data into smart applications. RSVP Here.

Event Details:

  • Price: Free
  • When: Monday, November 9, 2015 from 4:00 PM to 5:30 PM
  • Where: Startup Hall – 1100 Northeast Campus Parkway, #200

About Algorithmia:

Algorithmia is the largest marketplace for algorithms in the world, enabling developers to rapidly build and deploy production-ready, serverless applications in minutes. With Algorithmia you have access to world class algorithms in five lines of code or less. Leverage algorithms to recognize patterns in data, extract visual knowledge, understand audio, classify unstructured data, and derive meaning from language, all via a REST API.

How to Recommend Related Content in Just Three Lines of Code

Recommendation engines are all over the web – you’ll recognize them under the headings such as “More articles like this,” Amazon’s “Customers Who Bought This Item Also Bought,” or even the side bar of related videos on YouTube. Recommender systems help users discover content on your site that they might not have found otherwise and provide a powerful alternative to a search function.

Now you can bring recommendations to your site by harnessing Algorithmia Recommends, a content recommendation tool to suggest more of your own content and increase user engagement. Best of all? Anyone can do it with just three lines of code!

How Simple Is It?

Just plop these three lines of code into your website’s markup, insert your API key, and Algorithmia takes care of the rest.

The Code

<div class="algorithmia-recommends"></div>
<link rel="stylesheet" href="//algorithmia.com/assets/stylesheets/recommends.css">
<script src="//algorithmia.com/assets/javascripts/algorithmia-recommends.js" data-apikey="YOUR_API_KEY_HERE" data-uuid="82990285-9714-6349-c8ee-859414df1692" data-timelimit-months=24></script>

The above code is what you need to put Algorithmia Recommends on any site. The first line is the container, which the recommendations will render into, followed by a CSS stylesheet we’ve included to give it a nice layout. The last line includes the Algorithmia Recommends JavaScript in your page, and gives you a place to put your API key, as well as options for time-limiting the recommendations and a UUID field so that you can specify which pages are in-scope of the recommender.

Give it a try by pasting the code into your markup and replacing the API key, which you can get by signing up here. The first time the recommender is called it will take a few minutes as it crawls your site, and runs the algorithms. After that one-time process recommendations will be nearly instant.

Using WordPress or Drupal?

We’ve got plugins for both (WordPress, Drupal) to make the integration of Algorithmia Recommends even easier!

How The Recommender Works

Algorithmia Recommends uses the Breadth First Site Map web crawler algorithm and powerful natural language processing algorithms Keywords For Document Set and Keyword Set Similarity to find and categorize all the pages on your website in order to help your users find content that’s most relevant to their interests. Implementing a recommender on your site can increase engagement by helping users browse through content that already exists and encouraging them to stay longer on your site.

In addition to being able to specify a freshness constraint so that your users see recently published content, you can even filter out pages that are irrelevant, such as the homepage, about pages, or terms of service. The generated HTML and included CSS are customizable to fit in with your current design.

Try it today with just a few minutes of set up and head on over to the Algorithmia Recommends page to learn more about this powerful, easy-to-use tool!

Supercharging the Command Line: Using Smart Thumbnail to Batch Crop Photos

As much as I love building large, robust software systems and services, I often just want a quick script to solve a particular problem. In those instances I feel most comfortable dropping to the command line. With Algorithmia’s new CLI tool, I can quickly and easily access algorithms for a wide variety of tasks. With the entire Algorithmia marketplace readily available behind the command line interface, now it’s trivial to detect faces, make passport photos, encrypt messages, crawl a domain to build a site map, cheat at LetterPress or Sudoku, and much so more.

Recently I needed to convert a directory of images into thumbnails, with the goal of having each cropped to the same size without losing the focus on the face. While cropping a photo manually isn’t too bad if you just have to do it once, cropping a large set of photos by hand can be extremely time consuming and tedius. Lucikly, Algorithmia offers an algorithm to do just that: Smart Thumbnail.

The Algorithmia way

The Smart Thumbnail algorithm builds on the opencv-based Face Detection algorithm to detect faces and create thumbnails in one fell swoop. I started with this sample set of photos:

image

Combining the Smart Thumbnail algorithm with the Algorithmia CLI client, it’s simple to create a clean script for thumbnailing an entire directory:

#!/bin/bash
for image in $@; do
  echo "Processing $image"
  output_file="smart_thumbs/$(basename ${image%.*}).png"
  algo run opencv/SmartThumbnail -D "$image" -o "$output_file"
done

This short and simple code makes it easy to batch process photos, and the results speak for themselves.

image

As you can see, each image is cropped to the same size, but no one is left with a half a head or their face cut in two. Instead of having to manually crop each photo so that the faces are preserved, I can just run all the photos through the Smart Thumbnail algorithm. Not only is it the intuitive output I was hoping for, but it was also a simple CLI experience with just one clean tool.

One tool, any algorithm

With the Algorithmia CLI I now have a powerful set of algorithms available to me for use across any project or platform. With access to any algorithm in the marketplace, I can now reach for one tool to perform a variety of tasks. Sign up, install the CLI, pick an algorithm, run it with a simple:

algo run <algorithm> -d '<data>'
# or
algo run <algorithm> -D '<file>'

And enjoy your supercharged command line!

Let us @algorithmia know how you plan to use the Algorithmia CLI. Include #SuperchargedCLI and your Algorithmia username for 10,000 free credits.

Learn how to leverage powerful algorithms with Algorithmia and General Assembly Seattle

image

We’ve teamed up with General Assembly to produce a free, two-hour workshop designed to help web developers build brilliant apps using Algorithmia’s powerful platform. 

You’ll learn how to gain access to world class algorithms in five lines of code or less, allowing you to recognize patterns in your data, extract visual knowledge, understand audio, classify unstructured data, and derive meaning from language

If you’re in the Seattle area, and have an interest in giving your app super powers, then join us Wednesday, October 14 at 6:30pm! A basic understanding of APIs, and some Python or JS knowledge is required.

About This Workshop:

RSVP here. 

Wednesday, October 14
6:30 – 8:30 pm PDT

WeWork Seattle
500 Yale Avenue N
Seattle , WA 98109

Who’s Who: Facial Recognition Made Simple

Using machine learning from Algorithmia to train a model to recognize faces

image

Name That Actor is a minimal demo from Algorithmia to show how anyone can use a classic face recognition algorithm. In the box below, enter the URL to a photo of one of the actors from the TV show “Parks and Recreation” or click on one of the example images, which were not used in training the facial recognizer model. The algorithm will run the image input against the model to predict the name of the actor.

How we made it

Because Parks and Rec is a celebrated show (for good reason–we hope you agree!), we decided to use the main cast as the recognition model for the algorithm. To train the model, we used the Train Face Recognizer algorithm with a collection of images of the actors. 

We started by downloading 10 photos from Google Images of each actor playing the main characters:

  • Amy Poehler as Leslie Knope
  • Nick Offerman as Ron Swanson
  • Chris Pratt as Andy Dwyer
  • Aziz Ansari as Tom Haverford
  • Aubrey Plaza as April Ludgate
  • Adam Scott as Ben Wyatt
  • Rashida Jones as Ann Perkins
  • Retta as Donna Meagle
  • Jim O’Heir as Jerry Gergich (or Garry or Larry or…)

Using the Algorithmia API, we uploaded all the images to a data collection. Then we ran the Train Face Recognizer algorithm against the collection, providing the actor’s name for each photo, to train the model against the collection as a dataset. To analyze new images, we call the Recognize Faces algorithm which uses the trained model to predict the name of the actor.

Note: Our method for detecting and recognizing faces works best for frontal face images. Faces at a profile are harder to detect and recognize with the same level of accuracy. It also helps when the faces are reasonably large relative to the size of the image, a modest 1/64 of the size of the image in pixels. Read more about face recognition using Algorithmia here.

Build intelligent serverless apps in minutes with Algorithmia and AWS Lambda

image

Algorithmia’s is pleased to announce a new, built-in AWS Lambda Node.js blueprint, making it easy to call the Algorithmia API in response to events from Amazon Kinesis, Amazon DynamoDB, Amazon S3, and other Amazon web services.

With Algorithmia you have access to the largest marketplace of algorithms in the world in less than five lines of code. Leverage state-of-the-art algorithms to recognize patterns in data, extract visual knowledge, understand audio, classify unstructured data, and derive meaning from language.

AWS Lambda is a service that lets you run code without provisioning or managing servers, making it easy to build applications that respond quickly to new information. Lambda manages the resources for you automatically.

Read the full documentation, including auth and code samples here.

Together, Algorithmia and Lambda make it easy to rapidly build and deploy serverless solutions in minutes. For example, you could combine several algorithms from Algorithmia to:

  • Automatically generate smart thumbnails (using face detection to ensure every thumbnail is perfectly cropped)
  • Take advantage of Algorithmia’s speech-to-text algorithm to transcribe videos uploaded to S3 on the fly
  • You could even leverage a predictive model every time DynamoDB updates

How to Get Started with Algorithmia + AWS Lambda:

  1. Navigate to the AWS Lambda console
  2. Select Create a Lambda function
  3. Type Algorithmia into the filter
  4. Select the Algorithmia blueprint
  5. Setup Auth in your Lambda function using the below guide
  6. Specify your algorithm and input data

Complete documentation here.

Still curious?

Getting Started with the Algorithmia Command Line Interface (CLI)

image

Algorithmia has released a command line interface (CLI)! This new, cross-platform tool allows you to use the command line to call more than 1,600 algorithms from the Algorithmia API.

The official docs can be found in the README on GitHub, but we’ll do a quick walkthrough to get you up and running.

Installation:

Setting up the Algorithmia CLI is easy.

OSX

Download and extract the OSX tarball with this cURL command:

$ curl -L https://github.com/algorithmiaio/algorithmia-cli/releases/download/v1.0.0-beta.2/algorithmia_osx.tar.gz | tar -xz

We recommend putting it within your PATH with the following:

$ sudo mv algo /usr/local/bin/

Windows (64-bit)

First, install OpenSSL for Windows.

Next, download and extract the Windows zip file. We recommend putting it within your PATH.

Looking for instructions for Debian/Ubuntu or Arch installs? Find them on the official README.

Configure the CLI:

Before we can start making calls to the APIs, first we need configure our authentication. Run the command:

$ algo auth

You’ll be prompted to input your API key for a default profile. If you’d like to create more than one profile, simply run algo auth [<profile>] for the same interactive prompt. For more information, see the auth command help with algo auth --help.

Check that your profile is configured by running algo ls.

Usage:

Now that we’re set up, let’s try executing some algorithms! We’re going to start with something simple, the Factor algorithm that takes in integer and returns its prime factors. You can find the details about this algorithm on the description page.

$ algo run kenny/factor -d 19635
[3,5,7,11,17]

Here we see the basic syntax: algo run, followed by the algorithm’s username and algorithm name (kenny/factor), the data options, and finally the input. The response we got back was just the result of the algorithm, but we can also add the option --response-body to see the full JSON response:

$ algo run kenny/factor -d 19635 --response-body
{"result":[3,5,7,11,17],"metadata":{"content_type":"json","duration":0.001427314}}

Run algo run --help to see more command options, including the data input and output options.

The Algorithmia CLI is also great for interacting with the Algorithmia API. You can use the CLI to create and manage your data directories. Let’s say you want to create a new data directory and upload some files-it’s easy with the CLI.

First, create a new data directory:

$ algo mkdir .my/favoritepics

Created directory data://.my/favoritepics

Copy a file from your local directory to the new data directory:

$ algo cp puppies.png data://.my/favoritepics

Uploaded data://.my/favoritepics/puppies.png

When you’ve finished uploading, check that everything you expect is in your data directory:

$ algo ls .my/favoritepics

puppies.png kittens.jpg baby_turtles.jpg

Example:

Algorithmia CLI use of opencv/SmartThumbnail

Help:

Run algo --help for additional usage information and to learn about other command options. Be sure to check out the official README for even more detailed instructions on using the Algorithmia CLI and new release updates!