diff options
| author | Steven Wilson <steven1170@zoho.eu> | 2019-07-01 22:46:58 +0100 |
|---|---|---|
| committer | Steven Wilson <steven1170@zoho.eu> | 2019-07-01 22:46:58 +0100 |
| commit | 7f5906ce35f3d3cb3a6002c9b5c696b7f8c54630 (patch) | |
| tree | 9bd0db6a6a85f9781f595888b02b233bf0582441 | |
| parent | 454bee157664c69f5e102a4615ae21d033e5bc4e (diff) | |
| download | perlweeklychallenge-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.pl | 61 | ||||
| -rw-r--r-- | challenge-015/steven-wilson/perl5/languages.csv | 164 |
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 |
