Advertisement
haxmeister

Intellexer API in perl

Jan 14th, 2024 (edited)
1,101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 3.89 KB | Source Code | 0 0
  1. package Intellexer::API;
  2.  
  3. use v5.38;
  4. use strict;
  5. use warnings;
  6. use LWP::UserAgent;
  7. use URI;
  8. use Carp;
  9. use JSON;
  10.  
  11. my $json = JSON->new()->pretty(1);
  12. my $ua   = LWP::UserAgent->new();
  13. $ua->default_header(
  14.     "cache-control" => "no-cache" );
  15. # sample request:
  16. # http://api.intellexer.com/[GET/POST method]?apikey={YourAPIKey}&options={options}
  17. # api docs:
  18. # https://esapi.intellexer.com/Home/Help
  19.  
  20. sub new($package, $api_key){
  21.     my $self = {
  22.         'api_key' => $api_key,
  23.         'base'    => 'http://api.intellexer.com/',
  24.     };
  25.  
  26.     return bless $self, $package;
  27. }
  28.  
  29. ## TopicModeling
  30. sub getTopicsFromUrl($self, $url){
  31.     my $uri_obj = $self->_build_url(
  32.         'getTopicsFromUrl?',
  33.         'url'=> $url
  34.         );
  35.     return $self->_react( $ua->get($uri_obj) );
  36.  
  37. }
  38.  
  39. sub getTopicsFromFile($self, $file){
  40.     my $uri_obj = $self->_build_url(
  41.         'getTopicsFromFile?');
  42.  
  43.     return $self->_react(
  44.         $ua->post(
  45.             $uri_obj,
  46.             Content_Type => 'form-data',
  47.             Content => [ file => [$file] ]
  48.         )
  49.     );
  50. }
  51.  
  52. sub getTopicsFromText($self, $text){
  53.     my $uri_obj = $self->_build_url(
  54.         'getTopicsFromText?');
  55.  
  56.     return $self->_react(
  57.         $ua->post(
  58.             $uri_obj,
  59.             Content => $text
  60.         )
  61.     );
  62. }
  63.  
  64. ## Linguistic Processor
  65. sub analyzeText($self, $text, %params){
  66.     my $uri_obj = $self->_build_url(
  67.         'analyzeText?',
  68.         %params
  69.         );
  70.     return $self->_react(
  71.         $ua->post(
  72.             $uri_obj,
  73.             Content => $text
  74.         )
  75.     );
  76. }
  77.  
  78. ## Sentiment Analyzer
  79. sub analyzeSentiments($self, $reviews, %params){
  80.     my $uri_obj = $self->_build_url(
  81.         'analyzeSentiments?',
  82.         %params
  83.         );
  84.  
  85.     return $self->_react(
  86.         $ua->post(
  87.             $uri_obj,
  88.             'Content-Type' => 'application/json',
  89.             Content => $json->encode($reviews)
  90.         )
  91.     );
  92. }
  93.  
  94. sub sentimentAnalyzerOntologies($self){
  95.     my $uri_obj = $self->_build_url('sentimentAnalyzerOntologies?');
  96.     return $self->_react( $ua->get($uri_obj) );
  97. }
  98.  
  99. ## Named Entity Recognizer
  100. sub recognizeNe($self, %params){
  101.     my $uri_obj = $self->_build_url(
  102.         'recognizeNe?',
  103.          %params
  104.         );
  105.     return $self->_react( $ua->get($uri_obj) );
  106. }
  107.  
  108. sub recognizeNeFileContent($self, %params){
  109.     my $uri_obj = $self->_build_url(
  110.         'recognizeNeFileContent?',
  111.         %params
  112.         );
  113.  
  114.     return $self->_react(
  115.         $ua->post(
  116.             $uri_obj,
  117.             Content_Type => 'multipart/form-data',
  118.             Content => [ file => [$params{fileName}] ]
  119.         )
  120.     );
  121. }
  122. sub recognizeNeText($self){}
  123.  
  124. ## Summarizer
  125. sub summarize_get($self){}
  126. sub summarize_post($self){}
  127. sub summarizeText($self){}
  128. sub summarizeFileContent($self){}
  129.  
  130. ## Multi-Document Summarizer
  131. sub multiUrlSummary($self){}
  132.  
  133. ## Comparator
  134. sub compareText($self){}
  135. sub compareUrls($self){}
  136. sub compareUrlwithFile($self){}
  137. sub compareFiles($self){}
  138.  
  139. ## Clusterizer
  140. sub clusterize($self){}
  141. sub clusterizeText($self){}
  142. sub clusterizeFileContent($self){}
  143.  
  144. ## Natural Language Interface
  145. sub convertQueryToBool($self){}
  146.  
  147. ## Preformator
  148. sub supportedDocumentStructures($self){}
  149. sub supportedDocumentTopics($self){}
  150. sub parse($self){}
  151. sub parseFileContent($self){}
  152.  
  153. ## Language Recognizer
  154. sub recognizeLanguage($self){}
  155.  
  156. ## SpellChecker
  157. sub checkTextSpelling($self){}
  158.  
  159. ## Support functions
  160.  
  161. # build a URI object with necessary form data
  162. sub _build_url( $self, $endpoint, %form){
  163.     my $url = URI->new( $self->{base}.$endpoint);
  164.     $form{'apikey'} = $self->{api_key};
  165.     $url->query_form(\%form);
  166.     return $url;
  167. }
  168.  
  169. sub _react($self, $response){
  170.     if ($response->is_success) {
  171.         return $json->decode($response->decoded_content);
  172.     }
  173.     else {
  174.         croak $response->status_line."\n".$response->content;
  175.     }
  176. }
  177.  
  178.  
  179. 1;
  180.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement