It depends on how you define words.
If words are separated by one or more spaces, you can do:
tr -s '[:blank:]' '[\n*]' < file |
while IFS= read -r word; do
: echo "$word" here
done
If words are sequences of characters contains A-Z, a-z and _:
tr -cs '[A'A-Za-z_]'z_' '[\n*]' < file | ...
On historical System V systems, you need to use square brackets [A-Za-z_].