aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Wilson <steven1170@zoho.eu>2019-07-01 22:46:58 +0100
committerSteven Wilson <steven1170@zoho.eu>2019-07-01 22:46:58 +0100
commit7f5906ce35f3d3cb3a6002c9b5c696b7f8c54630 (patch)
tree9bd0db6a6a85f9781f595888b02b233bf0582441
parent454bee157664c69f5e102a4615ae21d033e5bc4e (diff)
downloadperlweeklychallenge-club-7f5906ce35f3d3cb3a6002c9b5c696b7f8c54630.tar.gz
perlweeklychallenge-club-7f5906ce35f3d3cb3a6002c9b5c696b7f8c54630.tar.bz2
perlweeklychallenge-club-7f5906ce35f3d3cb3a6002c9b5c696b7f8c54630.zip
add solution ch-3.pl and languages file
-rw-r--r--challenge-015/steven-wilson/perl5/ch-3.pl61
-rw-r--r--challenge-015/steven-wilson/perl5/languages.csv164
2 files changed, 225 insertions, 0 deletions
diff --git a/challenge-015/steven-wilson/perl5/ch-3.pl b/challenge-015/steven-wilson/perl5/ch-3.pl
new file mode 100644
index 0000000000..bb988858ee
--- /dev/null
+++ b/challenge-015/steven-wilson/perl5/ch-3.pl
@@ -0,0 +1,61 @@
+#!/usr/bin/env perl
+# Author: Steven Wilson
+# Date: 2019-07-01
+# Week: 015
+# Challenge: #3
+#
+# Write a script to use Language Detection API. For more information
+# about API, please visit page. The API task is optional but we would
+# love to see your solution.
+# https://detectlanguage.com/
+# e.g. usage: $perl ch-3.pl "HeghluʼmeH QaQ jajvam."
+# output: The following text has been analysed: 'HeghluʼmeH QaQ jajvam.'
+# It was found to be written in Klingon. The confidence
+# value was 18.61 and this is thought to be reliable.
+
+use strict;
+use warnings;
+use feature qw / say /;
+use LWP::UserAgent;
+use JSON::MaybeXS;
+use YAML::XS 'LoadFile';
+
+my $config = LoadFile('detect.yml');
+my $text = $ARGV[0];
+my $api_key = $config->{api_key};
+my $api_url = "https://ws.detectlanguage.com/0.2/detect";
+my $languages_file = 'languages.csv';
+my %languages;
+my %response_data;
+my $language_detected_code;
+my $is_reliable;
+my $confidence;
+
+my $ua = LWP::UserAgent->new();
+$ua->default_header( 'Authorization' => "Bearer " . $api_key );
+$ua->default_header( 'Content-Type' => 'application/json' );
+my $response = $ua->post( $api_url, { q => $text } );
+
+open( my $data, '<', $languages_file )
+ or die "Could not open '$languages_file' $!\n";
+while ( my $line = <$data> ) {
+ chomp $line;
+ my ( $code, $language ) = split ",", $line;
+ $languages{$code} = $language;
+}
+
+%response_data = %{ decode_json( $response->decoded_content ) };
+$language_detected_code = $response_data{"data"}{detections}[0]{language};
+$is_reliable = $response_data{"data"}{detections}[0]{isReliable};
+$confidence = $response_data{"data"}{detections}[0]{confidence};
+
+print "The following text has been analysed: '$text'\n";
+print "It was found to be written in $languages{$language_detected_code}. ";
+print "The confidence value was $confidence and this is thought to be ";
+if ( $is_reliable eq "false" ) {
+ print
+ "unreliable, you may wish to pass more text to get a more reliable identification.\n";
+}
+else {
+ print "reliable.\n";
+}
diff --git a/challenge-015/steven-wilson/perl5/languages.csv b/challenge-015/steven-wilson/perl5/languages.csv
new file mode 100644
index 0000000000..74215481f1
--- /dev/null
+++ b/challenge-015/steven-wilson/perl5/languages.csv
@@ -0,0 +1,164 @@
+aa,Afar
+ab,Abkhazian
+af,Afrikaans
+ak,Akan
+am,Amharic
+ar,Arabic
+as,Assamese
+ay,Aymara
+az,Azerbaijani
+ba,Bashkir
+be,Belarusian
+bg,Bulgarian
+bh,Bihari
+bi,Bislama
+bn,Bengali
+bo,Tibetan
+br,Breton
+bs,Bosnian
+bug,Buginese
+ca,Catalan
+ceb,Cebuano
+chr,Cherokee
+co,Corsican
+crs,Seselwa
+cs,Czech
+cy,Welsh
+da,Danish
+de,German
+dv,Dhivehi
+dz,Dzongkha
+egy,Egyptian
+el,Greek
+en,English
+eo,Esperanto
+es,Spanish
+et,Estonian
+eu,Basque
+fa,Persian
+fi,Finnish
+fj,Fijian
+fo,Faroese
+fr,French
+fy,Frisian
+ga,Irish
+gd,Scots Gaelic
+gl,Galician
+gn,Guarani
+got,Gothic
+gu,Gujarati
+gv,Manx
+ha,Hausa
+haw,Hawaiian
+hi,Hindi
+hmn,Hmong
+hr,Croatian
+ht,Haitian Creole
+hu,Hungarian
+hy,Armenian
+ia,Interlingua
+id,Indonesian
+ie,Interlingue
+ig,Igbo
+ik,Inupiak
+is,Icelandic
+it,Italian
+iu,Inuktitut
+iw,Hebrew
+ja,Japanese
+jw,Javanese
+ka,Georgian
+kha,Khasi
+kk,Kazakh
+kl,Greenlandic
+km,Khmer
+kn,Kannada
+ko,Korean
+ks,Kashmiri
+ku,Kurdish
+ky,Kyrgyz
+la,Latin
+lb,Luxembourgish
+lg,Ganda
+lif,Limbu
+ln,Lingala
+lo,Laothian
+lt,Lithuanian
+lv,Latvian
+mfe,Mauritian Creole
+mg,Malagasy
+mi,Maori
+mk,Macedonian
+ml,Malayalam
+mn,Mongolian
+mr,Marathi
+ms,Malay
+mt,Maltese
+my,Burmese
+na,Nauru
+ne,Nepali
+nl,Dutch
+no,Norwegian
+nr,Ndebele
+nso,Pedi
+ny,Nyanja
+oc,Occitan
+om,Oromo
+or,Oriya
+pa,Punjabi
+pl,Polish
+ps,Pashto
+pt,Portuguese
+qu,Quechua
+rm,Rhaeto Romance
+rn,Rundi
+ro,Romanian
+ru,Russian
+rw,Kinyarwanda
+sa,Sanskrit
+sco,Scots
+sd,Sindhi
+sg,Sango
+si,Sinhalese
+sk,Slovak
+sl,Slovenian
+sm,Samoan
+sn,Shona
+so,Somali
+sq,Albanian
+sr,Serbian
+ss,Siswant
+st,Sesotho
+su,Sundanese
+sv,Swedish
+sw,Swahili
+syr,Syriac
+ta,Tamil
+te,Telugu
+tg,Tajik
+th,Thai
+ti,Tigrinya
+tk,Turkmen
+tl,Tagalog
+tlh,Klingon
+tn,Tswana
+to,Tonga
+tr,Turkish
+ts,Tsonga
+tt,Tatar
+ug,Uighur
+uk,Ukrainian
+ur,Urdu
+uz,Uzbek
+ve,Venda
+vi,Vietnamese
+vo,Volapuk
+war,Waray Philippines
+wo,Wolof
+xh,Xhosa
+yi,Yiddish
+yo,Yoruba
+za,Zhuang
+zh,Chinese Simplified
+zh-Hant,Chinese Traditional
+zu,Zulu