Guest User

Untitled

a guest
Jul 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #fichero : stopper.sh
  4. #autor : Luis Carlos Mateos
  5. #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
  6.  
  7. stoplist=/home/lzcarlos/Desktop/acceso/src/preprocesamiento/stoplist
  8.  
  9. #creamos el fichero .stop.sgml
  10. fichStop=`echo $1 | sed -e 's/\.normalized\.sgml/\.stop\.sgml/'`
  11. #fichStop=test2
  12.  
  13.  
  14. #almacenamos en una variable el listado de palabras que estan entre las etiquetas <TEXT> y </TEXT>
  15. palabrasBuenas=`grep "<TEXT>" -A 1 $1 | grep -v "<TEXT>"`
  16.  
  17. #guardamos el delimitador de linea por defecto
  18. oldIFS=$IFS
  19.  
  20. #establecemos el delimitador de linea a ' '
  21. IFS=$' '
  22.  
  23. #recorremos la lista de palabras del texto
  24. for word in $(echo $palabrasBuenas) ; do
  25.  
  26. #buscamos si la palabra se encuentra en el fichero de stopwords
  27. isStopword=`grep -w -i "$word" $stoplist`
  28.  
  29. #en caso de que se encuentre, almacenamos la eliminamos de la lista de palabras
  30. if [ $isStopword ]; then
  31.  
  32. palabrasBuenas=`echo $palabrasBuenas | sed 's/\<'"${word}"'\>//g'`
  33. fi
  34. done
  35.  
  36. #echo $palabrasBuenas
  37.  
  38. #almacenamos en el fichero de salida las etiquetas previas al texto
  39. (grep "<TEXT>" -B 20 $1) > $fichStop
  40.  
  41. #almacenamos el listado de palabras sin stopwords
  42. (echo $palabrasBuenas) >> $fichStop
  43.  
  44. #almacenamos las etiquetas posteriores al texto
  45. (grep "</TEXT>" -A 20 $1) >> $fichStop
  46.  
  47. #reestablecemos el delimitador de linea al que habia por defecto
  48. IFS=$oldIFS
Add Comment
Please, Sign In to add comment