Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #fichero : stopper.sh
- #autor : Luis Carlos Mateos
- #resumen : Script en Bash que elimina las palabras vacias de un texto que se encuentra entre las etiquetas <TEXT> y </TEXT> dada un fichero con la lista de palabras vacias
- stoplist=/home/lzcarlos/Desktop/acceso/src/preprocesamiento/stoplist
- #creamos el fichero .stop.sgml
- fichStop=`echo $1 | sed -e 's/\.normalized\.sgml/\.stop\.sgml/'`
- #fichStop=test2
- #almacenamos en una variable el listado de palabras que estan entre las etiquetas <TEXT> y </TEXT>
- palabrasBuenas=`grep "<TEXT>" -A 1 $1 | grep -v "<TEXT>"`
- #guardamos el delimitador de linea por defecto
- oldIFS=$IFS
- #establecemos el delimitador de linea a ' '
- IFS=$' '
- #recorremos la lista de palabras del texto
- for word in $(echo $palabrasBuenas) ; do
- #buscamos si la palabra se encuentra en el fichero de stopwords
- isStopword=`grep -w -i "$word" $stoplist`
- #en caso de que se encuentre, almacenamos la eliminamos de la lista de palabras
- if [ $isStopword ]; then
- palabrasBuenas=`echo $palabrasBuenas | sed 's/\<'"${word}"'\>//g'`
- fi
- done
- #echo $palabrasBuenas
- #almacenamos en el fichero de salida las etiquetas previas al texto
- (grep "<TEXT>" -B 20 $1) > $fichStop
- #almacenamos el listado de palabras sin stopwords
- (echo $palabrasBuenas) >> $fichStop
- #almacenamos las etiquetas posteriores al texto
- (grep "</TEXT>" -A 20 $1) >> $fichStop
- #reestablecemos el delimitador de linea al que habia por defecto
- IFS=$oldIFS
Add Comment
Please, Sign In to add comment