Web Page Recommender

No algorithm description given

This algorithm provides page recommendations for a domain. For a detailed guide on how to use this algorithm, see algorithmia.com/recommends . Table of Contents Introduction Examples Credits Introduction It takes as input a url and a required string. Only urls whose source contains the required string will be considered as recommendations. Note that the page source itself is inspected, not just the user-readable text. Examples include long UUIDs embedded in the page's javascript, or simply the empty string "" to consider every page. Get Recommendations maintains a permanent algorithm collection (see the documentation ). When a url is sent to it, it checks to see if any url from the same domain has ever been sent. If not, the domain is explored, for 200 urls or 2 minutes, whichever comes first, using  /web/BreadthFirstSiteMap  and filtering for urls containing the required string. These urls are processed into recommendations as described below. It also takes an additional third integer parameter, which dictates how many months in the past (relative to a given page) will be considered for recommendation. For example, if the parameter is 24, no page that is more than 24 months older than a given page will be recommended. Note however that recommendations are always being updated as new pages are added, and for any given page, anything published more recently than it is eligible as a recommendation assuming some nonzero similarity. If this parameter is not supplied or is equal to -1, all pages will be considered. For each explored domain, the algorithm maintains a word count summary for each url and for the domain as a whole. For every new url in an existing domain, it scrapes the url for content using /web/AnalyzeURL , processes this into word statistics, and generates keywords for each url using   /nlp/KeywordsForDocumentSet , and generates recommendations from these keywords using  /nlp/KeywordSetSimilarity .  All recommendations are stored in a table, and any time the algorithm is queried with a url that is in this table, it returns the corresponding recommendations. Thus, the first call to a domain takes a few minutes and a call with a novel url takes up to a few seconds, but any subsequent call with a url returns very quickly. Input: (Required): Webpage URL. (Required): Cache string. (Used as a unique identifier for caching) (Required): Max age of recommended pages in months. Output: A list of recommended page objects. (With URL, title, summary & thumbnail) Examples Example 1. Parameter 1: Example Geekwire article URL. Parameter 2: Required string for article. Parameter 3: Max age of 12 months. [
] Output: {
 "recs": [
 "url": "http://www.geekwire.com/2015/meet-the-tiny-seattle-startup-helping-twitter-solve-its-diversity-problems-one-job-posting-at-a-time/",
 "title": "Meet the tiny Seattle startup helping Twitter solve its diversity problems, one job posting at a time",
 "summary": "Twitter raised the bar for the conversation around diversity in the technology industry on Friday, not just releasing its own women and minority statistics",
 "thumbnail": "http://cdn.geekwire.com/wp-content/uploads/2015/08/Screen-Shot-2015-08-28-at-2.53.23-PM-300x127.png"
 "url": "http://www.geekwire.com/2015/data-visualization-giant-tableau-opens-new-office-in-china/",
 "title": "Data visualization giant Tableau opens new office in China",
 "summary": "Tableau Software is growing fast, and now the Seattle-based maker of data visualization software is planting its flag in the most populous country in the w",
 "thumbnail": "http://cdn.geekwire.com/wp-content/uploads/2015/08/Screen-Shot-2015-08-19-at-8.28.19-AM.png"
} Credits This algorithm is built on top of the following algorithms:  web/BreadthFirstSiteMap ,  web/AnalyzeURL ,  nlp/KeywordsForDocumentSet  &  nlp/KeywordSetSimilarity .

(no tags)

Cost Breakdown

2 cr
royalty per call
1 cr
usage per second
avg duration
This algorithm has permission to call other algorithms which may incur separate royalty and usage costs.

Cost Calculator

API call duration (sec)
API calls
Estimated cost
per calls
for large volume discounts
For additional details on how pricing works, see Algorithmia pricing.

Internet access

This algorithm has Internet access. This is necessary for algorithms that rely on external services, however it also implies that this algorithm is able to send your input data outside of the Algorithmia platform.

Calls other algorithms

This algorithm has permission to call other algorithms. This allows an algorithm to compose sophisticated functionality using other algorithms as building blocks, however it also carries the potential of incurring additional royalty and usage costs from any algorithm that it calls.

To understand more about how algorithm permissions work, see the permissions documentation.

1. Type your input

2. See the result

Running algorithm...

3. Use this algorithm

curl -X POST -d '{{input | formatInput:"curl"}}' -H 'Content-Type: application/json' -H 'Authorization: Simple YOUR_API_KEY' https://api.algorithmia.com/v1/algo/web/WebPageRecommender/0.1.40
View cURL Docs
algo auth
algo run algo://web/WebPageRecommender/0.1.40 -d '{{input | formatInput:"cli"}}'
View CLI Docs
import (
  algorithmia "github.com/algorithmiaio/algorithmia-go"

input := {{input | formatInput:"go"}}

var client = algorithmia.NewClient("YOUR_API_KEY", "")
algo, _ := client.Algo("algo://web/WebPageRecommender/0.1.40")
resp, _ := algo.Pipe(input)
response := resp.(*algorithmia.AlgoResponse)
View Go Docs
import com.algorithmia.*;
import com.algorithmia.algo.*;

String input = "{{input | formatInput:"java"}}";
AlgorithmiaClient client = Algorithmia.client("YOUR_API_KEY");
Algorithm algo = client.algo("algo://web/WebPageRecommender/0.1.40");
AlgoResponse result = algo.pipeJson(input);
View Java Docs
import com.algorithmia._
import com.algorithmia.algo._

val input = {{input | formatInput:"scala"}}
val client = Algorithmia.client("YOUR_API_KEY")
val algo = client.algo("algo://web/WebPageRecommender/0.1.40")
val result = algo.pipeJson(input)
View Scala Docs
var input = {{input | formatInput:"javascript"}};
           .then(function(output) {
View Javascript Docs
var input = {{input | formatInput:"javascript"}};
           .then(function(response) {
View NodeJS Docs
import Algorithmia

input = {{input | formatInput:"python"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('web/WebPageRecommender/0.1.40')
print algo.pipe(input)
View Python Docs

input <- {{input | formatInput:"r"}}
client <- getAlgorithmiaClient("YOUR_API_KEY")
algo <- client$algo("web/WebPageRecommender/0.1.40")
result <- algo$pipe(input)$result
View R Docs
require 'algorithmia'

input = {{input | formatInput:"ruby"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('web/WebPageRecommender/0.1.40')
puts algo.pipe(input).result
View Ruby Docs
use algorithmia::*;

let input = {{input | formatInput:"rust"}};
let client = Algorithmia::client("YOUR_API_KEY");
let algo = client.algo("web/WebPageRecommender/0.1.40");
let response = algo.pipe(input);
View Rust Docs
import Algorithmia

let input = "{{input | formatInput:"swift"}}";
let client = Algorithmia.client(simpleKey: "YOUR_API_KEY")
let algo = client.algo(algoUri: "web/WebPageRecommender/0.1.40") { resp, error in
View Swift Docs
  • {{comment.username}}