#!/usr/bin/perl -w
################################################################
# LWscore.pl : Sinkov's Log-Weight score for Bigrams           #
#--------------------------------------------------------------#
# Compute scores for membership in a language                  #
#   German version                                             #
#                                                              #
# List of texts from STDIN                                     #
# Output: a list of pairs (text, score) where                  #
#   text is the text chunk under test,                         #
#   score is the Bigram-Log-Weight score.                      #
#--------------------------------------------------------------#
# Klaus Pommerening 2014-Jun-02                                #
#                                                              #
# This program is freeware. Use it as you like.                #
# Usual disclaimers apply.                                     #
################################################################

require "auxcrypt.pl";                # Use &to26ger

# Hash table with weights
%sctable = (AA=>0.9,AB=>1.5,AC=>1.4,AD=>1.0,AE=>1.8,AF=>1.2,AG=>1.5,AH=>1.3,AI=>0.7,AJ=>0.0,AK=>0.8,AL=>1.8,AM=>1.4,AN=>2.0,AO=>0.0,AP=>0.6,AQ=>0.0,AR=>1.7,AS=>1.7,AT=>1.7,AU=>1.9,AV=>0.3,AW=>0.5,AX=>0.0,AY=>0.0,AZ=>0.3,
BA=>1.2,BB=>0.0,BC=>0.0,BD=>0.0,BE=>2.0,BF=>0.0,BG=>0.5,BH=>0.0,BI=>1.1,BJ=>0.0,BK=>0.0,BL=>1.0,BM=>0.0,BN=>0.0,BO=>0.9,BP=>0.0,BQ=>0.0,BR=>1.0,BS=>0.8,BT=>0.6,BU=>1.1,BV=>0.0,BW=>0.0,BX=>0.0,BY=>0.0,BZ=>0.0,
CA=>0.3,CB=>0.0,CC=>0.0,CD=>0.3,CE=>0.0,CF=>0.0,CG=>0.0,CH=>2.4,CI=>0.0,CJ=>0.0,CK=>1.1,CL=>0.0,CM=>0.0,CN=>0.0,CO=>0.3,CP=>0.0,CQ=>0.0,CR=>0.0,CS=>0.0,CT=>0.0,CU=>0.0,CV=>0.0,CW=>0.0,CX=>0.0,CY=>0.0,CZ=>0.0,
DA=>1.7,DB=>0.5,DC=>0.0,DD=>1.1,DE=>2.4,DF=>0.5,DG=>0.6,DH=>0.3,DI=>2.0,DJ=>0.0,DK=>0.5,DL=>0.7,DM=>0.6,DN=>0.8,DO=>1.0,DP=>0.5,DQ=>0.0,DR=>1.0,DS=>1.0,DT=>0.8,DU=>1.2,DV=>0.5,DW=>0.6,DX=>0.0,DY=>0.0,DZ=>0.5,
EA=>1.4,EB=>1.7,EC=>1.4,ED=>1.7,EE=>1.4,EF=>1.4,EG=>1.7,EH=>1.8,EI=>2.3,EJ=>0.5,EK=>1.3,EL=>1.8,EM=>1.7,EN=>2.6,EO=>0.8,EP=>1.1,EQ=>0.0,ER=>2.6,ES=>2.1,ET=>1.7,EU=>1.6,EV=>1.1,EW=>1.4,EX=>0.3,EY=>0.0,EZ=>1.0,
FA=>1.3,FB=>0.3,FC=>0.0,FD=>1.0,FE=>1.4,FF=>1.1,FG=>0.5,FH=>0.0,FI=>0.8,FJ=>0.0,FK=>0.0,FL=>0.7,FM=>0.0,FN=>0.3,FO=>1.0,FP=>0.0,FQ=>0.0,FR=>1.3,FS=>0.3,FT=>1.3,FU=>1.4,FV=>0.0,FW=>0.0,FX=>0.0,FY=>0.0,FZ=>0.0,
GA=>1.3,GB=>0.5,GC=>0.0,GD=>1.1,GE=>2.2,GF=>0.3,GG=>0.5,GH=>0.5,GI=>1.3,GJ=>0.0,GK=>0.5,GL=>1.0,GM=>0.5,GN=>0.7,GO=>0.8,GP=>0.0,GQ=>0.0,GR=>1.1,GS=>1.3,GT=>1.3,GU=>1.0,GV=>0.6,GW=>0.5,GX=>0.0,GY=>0.0,GZ=>0.5,
HA=>1.8,HB=>0.6,HC=>0.0,HD=>1.1,HE=>2.0,HF=>0.3,HG=>0.6,HH=>0.5,HI=>1.4,HJ=>0.0,HK=>0.5,HL=>1.4,HM=>1.0,HN=>1.3,HO=>1.3,HP=>0.0,HQ=>0.0,HR=>1.6,HS=>1.0,HT=>1.7,HU=>1.0,HV=>0.6,HW=>1.0,HX=>0.0,HY=>0.0,HZ=>0.5,
IA=>0.8,IB=>0.8,IC=>1.9,ID=>1.3,IE=>2.2,IF=>0.7,IG=>1.6,IH=>1.1,II=>0.0,IJ=>0.0,IK=>1.1,IL=>1.4,IM=>1.4,IN=>2.2,IO=>1.3,IP=>0.3,IQ=>0.0,IR=>1.2,IS=>1.9,IT=>1.9,IU=>0.5,IV=>0.7,IW=>0.0,IX=>0.0,IY=>0.0,IZ=>0.7,
JA=>1.0,JB=>0.0,JC=>0.0,JD=>0.0,JE=>1.0,JF=>0.0,JG=>0.0,JH=>0.0,JI=>0.0,JJ=>0.0,JK=>0.0,JL=>0.0,JM=>0.0,JN=>0.0,JO=>0.3,JP=>0.0,JQ=>0.0,JR=>0.0,JS=>0.0,JT=>0.0,JU=>0.7,JV=>0.0,JW=>0.0,JX=>0.0,JY=>0.0,JZ=>0.0,
KA=>1.4,KB=>0.0,KC=>0.0,KD=>0.3,KE=>1.4,KF=>0.0,KG=>0.0,KH=>0.0,KI=>0.8,KJ=>0.0,KK=>0.0,KL=>1.0,KM=>0.0,KN=>0.0,KO=>1.4,KP=>0.0,KQ=>0.0,KR=>1.1,KS=>0.7,KT=>1.1,KU=>1.0,KV=>0.0,KW=>0.0,KX=>0.0,KY=>0.0,KZ=>0.0,
LA=>1.7,LB=>0.8,LC=>0.3,LD=>1.1,LE=>1.8,LF=>0.7,LG=>0.8,LH=>0.3,LI=>1.8,LJ=>0.0,LK=>0.8,LL=>1.6,LM=>0.5,LN=>0.6,LO=>1.1,LP=>0.3,LQ=>0.0,LR=>0.3,LS=>1.3,LT=>1.4,LU=>1.1,LV=>0.5,LW=>0.3,LX=>0.0,LY=>0.0,LZ=>0.5,
MA=>1.6,MB=>0.8,MC=>0.0,MD=>0.9,ME=>1.7,MF=>0.6,MG=>0.6,MH=>0.5,MI=>1.6,MJ=>0.3,MK=>0.5,ML=>0.6,MM=>1.4,MN=>0.5,MO=>1.2,MP=>0.8,MQ=>0.0,MR=>0.3,MS=>1.0,MT=>0.9,MU=>1.1,MV=>0.6,MW=>0.5,MX=>0.0,MY=>0.0,MZ=>0.3,
NA=>1.8,NB=>1.4,NC=>0.7,ND=>2.3,NE=>2.1,NF=>1.3,NG=>2.0,NH=>1.2,NI=>1.8,NJ=>0.7,NK=>1.4,NL=>1.0,NM=>1.4,NN=>1.6,NO=>1.3,NP=>1.0,NQ=>0.0,NR=>1.0,NS=>1.9,NT=>1.8,NU=>1.5,NV=>1.3,NW=>1.5,NX=>0.0,NY=>0.0,NZ=>1.4,
OA=>0.5,OB=>0.9,OC=>1.2,OD=>0.8,OE=>1.4,OF=>0.8,OG=>0.7,OH=>1.0,OI=>0.0,OJ=>0.0,OK=>0.5,OL=>1.5,OM=>1.2,ON=>1.8,OO=>0.0,OP=>0.8,OQ=>0.0,OR=>1.7,OS=>1.3,OT=>1.0,OU=>0.5,OV=>0.5,OW=>0.8,OX=>0.0,OY=>0.0,OZ=>0.8,
PA=>1.2,PB=>0.0,PC=>0.0,PD=>0.5,PE=>1.0,PF=>0.8,PG=>0.0,PH=>0.3,PI=>0.6,PJ=>0.0,PK=>0.0,PL=>0.6,PM=>0.0,PN=>0.0,PO=>1.0,PP=>0.7,PQ=>0.0,PR=>1.4,PS=>0.0,PT=>0.5,PU=>0.6,PV=>0.0,PW=>0.0,PX=>0.0,PY=>0.0,PZ=>0.0,
QA=>0.0,QB=>0.0,QC=>0.0,QD=>0.0,QE=>0.0,QF=>0.0,QG=>0.0,QH=>0.0,QI=>0.0,QJ=>0.0,QK=>0.0,QL=>0.0,QM=>0.0,QN=>0.0,QO=>0.0,QP=>0.0,QQ=>0.0,QR=>0.0,QS=>0.0,QT=>0.0,QU=>0.3,QV=>0.0,QW=>0.0,QX=>0.0,QY=>0.0,QZ=>0.0,
RA=>1.9,RB=>1.4,RC=>1.0,RD=>1.8,RE=>2.0,RF=>1.3,RG=>1.4,RH=>1.3,RI=>1.7,RJ=>0.6,RK=>1.4,RL=>1.3,RM=>1.3,RN=>1.5,RO=>1.5,RP=>1.0,RQ=>0.0,RR=>1.2,RS=>1.7,RT=>1.7,RU=>1.7,RV=>1.1,RW=>1.2,RX=>0.0,RY=>0.0,RZ=>1.1,
SA=>1.6,SB=>1.0,SC=>1.9,SD=>1.3,SE=>2.0,SF=>0.8,SG=>1.1,SH=>1.0,SI=>1.8,SJ=>0.3,SK=>1.0,SL=>1.0,SM=>1.1,SN=>0.8,SO=>1.4,SP=>1.3,SQ=>0.0,SR=>0.9,SS=>1.9,ST=>2.1,SU=>1.2,SV=>1.0,SW=>1.0,SX=>0.0,SY=>0.3,SZ=>0.8,
TA=>1.8,TB=>0.9,TC=>0.0,TD=>1.4,TE=>2.3,TF=>0.7,TG=>1.0,TH=>1.1,TI=>1.8,TJ=>0.3,TK=>0.6,TL=>1.0,TM=>1.0,TN=>1.0,TO=>1.2,TP=>0.5,TQ=>0.0,TR=>1.5,TS=>1.7,TT=>1.4,TU=>1.4,TV=>0.9,TW=>1.3,TX=>0.0,TY=>0.0,TZ=>1.4,
UA=>0.5,UB=>0.9,UC=>1.2,UD=>0.7,UE=>1.9,UF=>1.4,UG=>0.9,UH=>0.6,UI=>0.3,UJ=>0.0,UK=>0.5,UL=>0.8,UM=>1.3,UN=>2.1,UO=>0.0,UP=>0.7,UQ=>0.0,UR=>1.5,US=>1.7,UT=>1.4,UU=>0.0,UV=>0.5,UW=>0.3,UX=>0.0,UY=>0.0,UZ=>0.0,
VA=>0.5,VB=>0.0,VC=>0.0,VD=>0.0,VE=>1.6,VF=>0.0,VG=>0.0,VH=>0.0,VI=>1.0,VJ=>0.0,VK=>0.0,VL=>0.0,VM=>0.0,VN=>0.0,VO=>1.6,VP=>0.0,VQ=>0.0,VR=>0.0,VS=>0.0,VT=>0.0,VU=>0.0,VV=>0.0,VW=>0.0,VX=>0.0,VY=>0.0,VZ=>0.0,
WA=>1.5,WB=>0.0,WC=>0.0,WD=>0.0,WE=>1.7,WF=>0.0,WG=>0.0,WH=>0.0,WI=>1.6,WJ=>0.0,WK=>0.0,WL=>0.0,WM=>0.0,WN=>0.0,WO=>1.2,WP=>0.0,WQ=>0.0,WR=>0.0,WS=>0.0,WT=>0.0,WU=>1.0,WV=>0.0,WW=>0.0,WX=>0.0,WY=>0.0,WZ=>0.0,
XA=>0.0,XB=>0.0,XC=>0.0,XD=>0.0,XE=>0.0,XF=>0.0,XG=>0.0,XH=>0.0,XI=>0.0,XJ=>0.0,XK=>0.0,XL=>0.0,XM=>0.0,XN=>0.0,XO=>0.0,XP=>0.0,XQ=>0.0,XR=>0.0,XS=>0.0,XT=>0.0,XU=>0.0,XV=>0.0,XW=>0.0,XX=>0.0,XY=>0.0,XZ=>0.0,
YA=>0.0,YB=>0.0,YC=>0.0,YD=>0.0,YE=>0.0,YF=>0.0,YG=>0.0,YH=>0.0,YI=>0.0,YJ=>0.0,YK=>0.0,YL=>0.0,YM=>0.0,YN=>0.0,YO=>0.0,YP=>0.0,YQ=>0.0,YR=>0.0,YS=>0.0,YT=>0.0,YU=>0.0,YV=>0.0,YW=>0.0,YX=>0.0,YY=>0.0,YZ=>0.0,
ZA=>0.6,ZB=>0.0,ZC=>0.0,ZD=>0.0,ZE=>1.4,ZF=>0.0,ZG=>0.0,ZH=>0.0,ZI=>1.0,ZJ=>0.0,ZK=>0.0,ZL=>0.3,ZM=>0.0,ZN=>0.0,ZO=>0.3,ZP=>0.0,ZQ=>0.0,ZR=>0.0,ZS=>0.0,ZT=>0.8,ZU=>1.6,ZV=>0.0,ZW=>1.0,ZX=>0.0,ZY=>0.0,ZZ=>0.0);

while($a = <STDIN>) {
  $testtext = &to26ger($a);
  print $testtext;
  $ll = length($testtext);
  $score = 0;
  for ($i = 1; $i < $ll; $i++) {
    $score += $sctable{substr($testtext, $i-1, 2)};
    }
  printf (" %.1f\n", $score);
  }
