Commit 4e9a13feb8101796a90203ac6287a2f0f627883b

Authored by Jean-François Rey
1 parent 70bd4b2df1
Exists in master

update

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

main_tools/ScoringRes.sh
1 #!/bin/bash 1 #!/bin/bash
2 2
3 ##################################################### 3 #####################################################
4 # File : ScoringRes.sh # 4 # File : ScoringRes.sh #
5 # Brief : Score result using SRT file # 5 # Brief : Score result using SRT file #
6 # Author : Jean-François Rey # 6 # Author : Jean-François Rey #
7 # Version : 1.0 # 7 # Version : 1.0 #
8 # Date : 11/07/13 # 8 # Date : 11/07/13 #
9 ##################################################### 9 #####################################################
10 10
11 echo "### ScoringRes.sh ###" 11 echo "### ScoringRes.sh ###"
12 12
13 # Check OTMEDIA_HOME env var 13 # Check OTMEDIA_HOME env var
14 if [ -z ${OTMEDIA_HOME} ] 14 if [ -z ${OTMEDIA_HOME} ]
15 then 15 then
16 OTMEDIA_HOME=$(dirname $(dirname $(readlink -e $0))) 16 OTMEDIA_HOME=$(dirname $(dirname $(readlink -e $0)))
17 export OTMEDIA_HOME=$OTMEDIA_HOME 17 export OTMEDIA_HOME=$OTMEDIA_HOME
18 fi 18 fi
19 19
20 # where is ScoringRes.sh 20 # where is ScoringRes.sh
21 MAIN_SCRIPT_PATH=$OTMEDIA_HOME/main_tools 21 MAIN_SCRIPT_PATH=$OTMEDIA_HOME/main_tools
22 22
23 # Scripts Path 23 # Scripts Path
24 SCRIPT_PATH=$OTMEDIA_HOME/tools/scripts 24 SCRIPT_PATH=$OTMEDIA_HOME/tools/scripts
25 25
26 # Include scripts 26 # Include scripts
27 . $SCRIPT_PATH"/Tools.sh" 27 . $SCRIPT_PATH"/Tools.sh"
28 28
29 # where is ScoringRes.cfg 29 # where is ScoringRes.cfg
30 SCORINGRES_CONFIG_FILE=$OTMEDIA_HOME"/cfg/ScoringRes.cfg" 30 SCORINGRES_CONFIG_FILE=$OTMEDIA_HOME"/cfg/ScoringRes.cfg"
31 if [ -e $SCORINGRES_CONFIG_FILE ] 31 if [ -e $SCORINGRES_CONFIG_FILE ]
32 then 32 then
33 . $SCORINGRES_CONFIG_FILE 33 . $SCORINGRES_CONFIG_FILE
34 else 34 else
35 echo "ERROR : Can't find configuration file $SCORINGRES_CONFIG_FILE" >&2 35 echo "ERROR : Can't find configuration file $SCORINGRES_CONFIG_FILE" >&2
36 exit 1 36 exit 1
37 fi 37 fi
38 38
39 #---------------# 39 #---------------#
40 # Parse Options # 40 # Parse Options #
41 #---------------# 41 #---------------#
42 while getopts ":hDv:" opt 42 while getopts ":hDv:" opt
43 do 43 do
44 case $opt in 44 case $opt in
45 h) 45 h)
46 echo -e "$0 [OPTIONS] <PASS_DIRECTORY>\n" 46 echo -e "$0 [OPTIONS] <PASS_DIRECTORY>\n"
47 echo -e "\t Options:" 47 echo -e "\t Options:"
48 echo -e "\t\t-h :\tprint this message" 48 echo -e "\t\t-h :\tprint this message"
49 echo -e "\t\t-D :\tDEBUG mode on" 49 echo -e "\t\t-D :\tDEBUG mode on"
50 echo -e "\t\t-v l :\tVerbose mode, l=(1|2|3) level mode" 50 echo -e "\t\t-v l :\tVerbose mode, l=(1|2|3) level mode"
51 exit 1 51 exit 1
52 ;; 52 ;;
53 D) 53 D)
54 DEBUG=1 54 DEBUG=1
55 ;; 55 ;;
56 v) 56 v)
57 VERBOSE=$OPTARG 57 VERBOSE=$OPTARG
58 ;; 58 ;;
59 :) 59 :)
60 echo "Option -$OPTARG requires an argument." >&2 60 echo "Option -$OPTARG requires an argument." >&2
61 exit 1 61 exit 1
62 ;; 62 ;;
63 \?) 63 \?)
64 echo "BAD USAGE : unknow opton -$OPTARG" 64 echo "BAD USAGE : unknow opton -$OPTARG"
65 #exit 1 65 #exit 1
66 ;; 66 ;;
67 esac 67 esac
68 68
69 done 69 done
70 70
71 # mode debug enable 71 # mode debug enable
72 if [ $DEBUG -eq 1 ] 72 if [ $DEBUG -eq 1 ]
73 then 73 then
74 set -x 74 set -x
75 echo -e "## Mode DEBUG ON ##" 75 echo -e "## Mode DEBUG ON ##"
76 fi 76 fi
77 77
78 # mode verbose enable 78 # mode verbose enable
79 if [ $VERBOSE -gt 0 ]; then echo -e "## Verbose level : $VERBOSE ##" ; fi 79 if [ $VERBOSE -gt 0 ]; then echo -e "## Verbose level : $VERBOSE ##" ; fi
80 80
81 # Check USAGE by arguments number 81 # Check USAGE by arguments number
82 if [ $(($#-($OPTIND-1))) -ne 1 ] 82 if [ $(($#-($OPTIND-1))) -ne 1 ]
83 then 83 then
84 echo "BAD USAGE : SecondPass.sh [OPTIONS] <PASS_DIR>" 84 echo "BAD USAGE : SecondPass.sh [OPTIONS] <PASS_DIR>"
85 echo "$0 -h for more info" 85 echo "$0 -h for more info"
86 exit 1 86 exit 1
87 fi 87 fi
88 88
89 shift $((OPTIND-1)) 89 shift $((OPTIND-1))
90 # check Pass directory - First argument 90 # check Pass directory - First argument
91 if [ -e $1 ] && [ -d $1 ] 91 if [ -e $1 ] && [ -d $1 ]
92 then 92 then
93 PASS_DIR=$(readlink -e $1) 93 PASS_DIR=$(readlink -e $1)
94 else 94 else
95 print_error "can't find $1 directory" 95 print_error "can't find $1 directory"
96 exit 1 96 exit 1
97 fi 97 fi
98 98
99 #-------------# 99 #-------------#
100 # GLOBAL VARS # 100 # GLOBAL VARS #
101 #-------------# 101 #-------------#
102 BASENAME=$(basename $PASS_DIR) 102 BASENAME=$(basename $PASS_DIR)
103 SCORING_DIR=$PASS_DIR/scoring 103 SCORING_DIR=$PASS_DIR/scoring
104 LOGFILE="$PASS_DIR/info_scoring.log" 104 LOGFILE="$PASS_DIR/info_scoring.log"
105 ERRORFILE="$PASS_DIR/error_scoring.log" 105 ERRORFILE="$PASS_DIR/error_scoring.log"
106 106
107 print_info "[${BASENAME}] => ScoringRes start | $(date +'%d/%m/%y %H:%M:%S')" 1 107 print_info "[${BASENAME}] => ScoringRes start | $(date +'%d/%m/%y %H:%M:%S')" 1
108 108
109 #------------------# 109 #------------------#
110 # Create WORKSPACE # 110 # Create WORKSPACE #
111 #------------------# 111 #------------------#
112 112
113 # Lock directory 113 # Lock directory
114 if [ -e $PASS_DIR/*.lock ] 114 if [ -e $PASS_DIR/*.lock ]
115 then 115 then
116 print_warn "[${BASENAME}] Directory is locked -> exit" 2; 116 print_warn "[${BASENAME}] Directory is locked -> exit" 2;
117 exit 1 117 exit 1
118 fi 118 fi
119 119
120 rm -r $SCORING_DIR > /dev/null 2>&1 120 rm -r $SCORING_DIR > /dev/null 2>&1
121 mkdir -p $SCORING_DIR 121 mkdir -p $SCORING_DIR
122 print_info "Make directory $SCORING_DIR" 1 122 print_info "Make directory $SCORING_DIR" 1
123 123
124 if [ ! -e $PASS_DIR/$BASENAME.SRT ] 124 if [ ! -e $PASS_DIR/$BASENAME.SRT ]
125 then 125 then
126 print_warn "[${BASENAME}] No SRT file -> exit" 2 126 print_warn "[${BASENAME}] No SRT file -> exit" 2
127 exit 0; 127 exit 0;
128 else 128 else
129 SRT_FILE=$PASS_DIR/$BASENAME.SRT 129 SRT_FILE=$PASS_DIR/$BASENAME.SRT
130 print_info "[${BASENAME}] SRT file : $BASENAME.SRT" 1 130 print_info "[${BASENAME}] SRT file : $BASENAME.SRT" 1
131 fi 131 fi
132 132
133 if [ ! -e $PASS_DIR/$BASENAME.1pass.ctm ] && [ ! -e $PASS_DIR/$BASENAME.2pass.ctm ] && [ ! -e $PASS_DIR/$BASENAME.3pass.ctm ] && [ ! -e $PASS_DIR/$BASENAME.allpass.ctm ] 133 if [ ! -e $PASS_DIR/$BASENAME.1pass.ctm ] && [ ! -e $PASS_DIR/$BASENAME.2pass.ctm ] && [ ! -e $PASS_DIR/$BASENAME.3pass.ctm ] && [ ! -e $PASS_DIR/$BASENAME.allpass.ctm ]
134 then 134 then
135 print_error "[${BASENAME}] No CTM files -> exit\n"; 135 print_error "[${BASENAME}] No CTM files -> exit\n";
136 exit 1; 136 exit 1;
137 fi 137 fi
138 138
139 print_info "[${BASENAME}] Create stm file from SRT" 1 139 print_info "[${BASENAME}] Create stm file from SRT" 1
140 i=$((-3)) 140 i=$((-3))
141 while read line 141 while read line
142 do 142 do
143 i=$(($i + 1)); 143 i=$(($i + 1));
144 if [ $i -eq 4 ] 144 if [ $i -eq 4 ]
145 then 145 then
146 echo " $line" 146 echo " $line"
147 i=$((0)); 147 i=$((0));
148 fi 148 fi
149 done < $SRT_FILE > $SCORING_DIR/$BASENAME.tmp.txt 149 done < $SRT_FILE > $SCORING_DIR/$BASENAME.tmp.txt
150 150
151 cat $SCORING_DIR/$BASENAME.tmp.txt | sed -e "s|\n| |g" | $SCRIPT_PATH/CleanFilter.sh | $SCRIPT_PATH/ApplyCorrectionRules.pl ${LEXICON}.regex | $SCRIPT_PATH/BdlexUC.pl $RULES/basic -t | sed -e "s|<s>||g" | sed -e "s|</s>||g" | sed -e "s|\n+| |g" > $SCORING_DIR/$BASENAME.tmp2.txt 151 cat $SCORING_DIR/$BASENAME.tmp.txt | sed -e "s|\n| |g" | $SCRIPT_PATH/CleanFilter.sh | $SCRIPT_PATH/ApplyCorrectionRules.pl ${LEXICON}.regex | $SCRIPT_PATH/BdlexUC.pl $RULES/basic -t | sed -e "s|<s>||g" | sed -e "s|</s>||g" | sed -e "s|\n+| |g" > $SCORING_DIR/$BASENAME.tmp2.txt
152 #cat $SCORING_DIR/$BASENAME.tmp.txt | sed -e "s|\n| |g" | $SCRIPT_PATH/BdlexUC.pl $RULES/basic -t | sed -f $RULES/preprocess.regex | sed -f $RULES/lastprocess.regex | sed -e "s|<s>||g" | sed -e "s|</s>||g" | sed -e "s|\n+| |g" > $SCORING_DIR/$BASENAME.tmp2.txt 152 #cat $SCORING_DIR/$BASENAME.tmp.txt | sed -e "s|\n| |g" | $SCRIPT_PATH/BdlexUC.pl $RULES/basic -t | sed -f $RULES/preprocess.regex | sed -f $RULES/lastprocess.regex | sed -e "s|<s>||g" | sed -e "s|</s>||g" | sed -e "s|\n+| |g" > $SCORING_DIR/$BASENAME.tmp2.txt
153 153
154 $SCRIPT_PATH/srt2stm.pl $SCORING_DIR/$BASENAME.tmp2.txt > "$SCORING_DIR/$BASENAME.stm" 154 $SCRIPT_PATH/srt2stm.pl $SCORING_DIR/$BASENAME.tmp2.txt > "$SCORING_DIR/$BASENAME.stm"
155 155
156 export LIA_TAGG_LANG="french" 156 export LIA_TAGG_LANG="french"
157 export LIA_TAGG="$OTMEDIA_HOME/tools/lia_ltbox/lia_tagg/" 157 export LIA_TAGG="$OTMEDIA_HOME/tools/lia_ltbox/lia_tagg/"
158 export LIA_NE="$OTMEDIA_HOME/tools/lia_ltbox/lia_ne_v2.2/" 158 export LIA_NE="$OTMEDIA_HOME/tools/lia_ltbox/lia_ne_v2.2/"
159 cat $SCORING_DIR/$BASENAME.tmp2.txt | $OTMEDIA_HOME/tools/lia_ltbox/lia_ne_v2.2/script/lia_ne_tagg_txt > $SCORING_DIR/$BASENAME.tmp2.tag 159 cat $SCORING_DIR/$BASENAME.tmp2.txt | $SCRIPT_PATH/BdlexUC.pl $RULES/basic -f | iconv -t ISO-8859-1 -f UTF-8 | $OTMEDIA_HOME/tools/lia_ltbox/lia_ne_v2.2/script/lia_ne_tagg_txt > $SCORING_DIR/$BASENAME.tmp2.tag
160 160
161 rm $SCORING_DIR/$BASENAME.tmp.txt $SCORING_DIR/$BASENAME.tmp2.txt 161 rm $SCORING_DIR/$BASENAME.tmp.txt $SCORING_DIR/$BASENAME.tmp2.txt
162 162
163 print_info "Scoring using sclite" 1 163 print_info "Scoring using sclite" 1
164 for ctmfile in $(ls $PASS_DIR/*.ctm) 164 for ctmfile in $(ls $PASS_DIR/*.ctm)
165 do 165 do
166 cp $ctmfile $SCORING_DIR/ 166 cp $ctmfile $SCORING_DIR/
167 print_info "$BIN_PATH/sclite -D -F -r $SCORING_DIR/$BASENAME.stm stm -h $SCORING_DIR/$(basename $ctmfile) ctm -o all" 3 167 print_info "$BIN_PATH/sclite -D -F -r $SCORING_DIR/$BASENAME.stm stm -h $SCORING_DIR/$(basename $ctmfile) ctm -o all" 3
168 $BIN_PATH/sclite -D -F -r $SCORING_DIR/$BASENAME.stm stm -h $SCORING_DIR/$(basename $ctmfile) ctm -o all 168 $BIN_PATH/sclite -D -F -r $SCORING_DIR/$BASENAME.stm stm -h $SCORING_DIR/$(basename $ctmfile) ctm -o all
169 done 169 done
170 170
171 print_info "[${BASENAME}] <= ScoringRes End | $(date +'%d/%m/%y %H:%M:%S')" 1 171 print_info "[${BASENAME}] <= ScoringRes End | $(date +'%d/%m/%y %H:%M:%S')" 1
172 172
173 173
174 174