IDOL OnDemand delivers a rich set of web service APIs to enable developers to create ground-breaking data driven apps.To view complete set of API here
In this tutorial we are going to cover only 3 APIs,
In this tutorial, Find Similar API call from Wikipedia on the phrase 'Hello World'.
OCR Document API : The OCR Document API extracts text from an image that we provide. The API returns the extracted text, along with information about the location of the detected text in the original image.
In this tutorial, OCR Document API will call from the following image: 'http://www.java-made-easy.com/images/hello-world.jpg' and display the extracted text.
Sentiment Analysis API : The Sentiment Analysis API analyzes text to return the sentiment as positive, negative or neutral. It contains a dictionary of positive and negative words of different types, and defines patterns that describe how to combine these words to form positive and negative phrases.
In this tutorial, Sentiment Analysis API call with the text from the Hello World response (i.e reference link ). Display the Sentiment Score along with the Sentiment Rating
Java Application, in web.xml
in test.isp
In servlet HelloWorld.java
in HelloWorld.java, we are using reference global variable and it stores link from the Find Similar API, which will be used for sentiment analysis API,
in Client.java
- Find Similar
- OCR Document
- Sentiment Analysis
In this tutorial, Find Similar API call from Wikipedia on the phrase 'Hello World'.
OCR Document API : The OCR Document API extracts text from an image that we provide. The API returns the extracted text, along with information about the location of the detected text in the original image.
In this tutorial, OCR Document API will call from the following image: 'http://www.java-made-easy.com/images/hello-world.jpg' and display the extracted text.
Sentiment Analysis API : The Sentiment Analysis API analyzes text to return the sentiment as positive, negative or neutral. It contains a dictionary of positive and negative words of different types, and defines patterns that describe how to combine these words to form positive and negative phrases.
In this tutorial, Sentiment Analysis API call with the text from the Hello World response (i.e reference link ). Display the Sentiment Score along with the Sentiment Rating
Java Application, in web.xml
<welcome-file-list>
<welcome-file>test.jsp</welcome-file>
<welcome-file>test.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>findsimilar</servlet-name>
<servlet-class>idol.api.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>findsimilar</servlet-name>
<url-pattern>/findsimilar</url-pattern>
</servlet-mapping>
<div class="section1">
<h3>In this tutorial</h3>
<div class="block">
<img src="images/similar.jpg" alt="" width="40" height="55" />
<h6> <a href="findsimilar?api=api1"> servlet </a> .</h6>
</div>
<div class="block">
<img src="images/ocr.jpg" alt="" width="40" height="55"/>
<h6> <a href="findsimilar?api=api2"> servlet </a> </h6>
</div>
<div class="block">
<img src="images/senti.jpg" alt="" width="40" height="55"/>
<h6> <a href="findsimilar?api=api3"> servlet </a> </h6>
</div>
</div>
String reference = ""; String url3 = "https://api.idolondemand.com/1/api/sync/analyzesentiment/v1?url="+reference+"&apikey=dac630d2-4aed-45b7-8fc7-99fa87858460"; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String url = ""; String url1 = "https://api.idolondemand.com/1/api/sync/findsimilar/v1?text=Hello+World&indexes=wiki_eng&apikey=dac630d2-4aed-45b7-8fc7-99fa87858460"; String url2 = "https://api.idolondemand.com/1/api/sync/ocrdocument/v1?url=http%3A%2F%2Fwww.java-made-easy.com%2Fimages%2Fhello-world.jpg&apikey=dac630d2-4aed-45b7-8fc7-99fa87858460"; String api = request.getParameter("api"); if (api.equalsIgnoreCase("api1")){ url = url1; } else if(api.equalsIgnoreCase("api2")){ url = url2; } else{ url = url3; } Client1 cl1 = new Client1(); String str = cl1.run(url); if (api.equalsIgnoreCase("api1")){ String []a = str.split("reference"); String []b = a[1].split("weight"); reference = b[0].substring(b[0].indexOf("http"), (b[0].indexOf(",",b[0].indexOf("http")))-1 ); url3 = "https://api.idolondemand.com/1/api/sync/analyzesentiment/v1?url="+reference+"&apikey=dac630d2-4aed-45b7-8fc7-99fa87858460"; request.setAttribute("ref", reference); } if (api.equalsIgnoreCase("api2")){ String []a = str.split("text", 3); String []b = a[2].split("left"); str = b[0].substring((b[0].indexOf("="))+1, (b[0].indexOf(",",b[0].indexOf("left")))-1 ); } if (api.equalsIgnoreCase("api3")){ String []a = str.split("aggregate", 3); if (a.length !=1){ str = a[1];} } response.setContentType("text/html"); request.setAttribute("servletName", str); getServletConfig().getServletContext().getRequestDispatcher( "/test2.jsp").forward(request,response); }
in HelloWorld.java, we are using reference global variable and it stores link from the Find Similar API, which will be used for sentiment analysis API,
in Client.java
public String run(String url){ String body = ""; HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); System.out.println("httpget : "+httpget); BasicHttpResponse response = null; try { response = (BasicHttpResponse) httpclient.execute(httpget); StatusLine statusLine = response.getStatusLine(); HttpEntity entity = response.getEntity(); if (entity != null) { body = EntityUtils.toString(entity); } }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { System.out.println("Finally !!!"); } return body; }
<div class="section2"> <h3> API Response is </h3> <div style="height: 227px; overflow:scroll;width:632px"> <pre> <% out.print(request.getAttribute("servletName").toString()); %> </pre> </div>
Output of Sentiment Analysis API
: { "sentiment": "neutral", "score": -0.06540204218347706 } }
No comments:
Post a Comment