python - sentiment - set stopwords words('' spanish ''))
NLTK y Stopwords fallan#lookuperror (4)
Estoy tratando de comenzar un proyecto de análisis de sentimiento y usaré el método de detener palabras. Hice algunas investigaciones y encontré que nltk tiene stopwords pero cuando ejecuto el comando hay un error.
Lo que hago es lo siguiente, para saber cuáles son las palabras que nltk usa (como lo que puede encontrar aquí http://www.nltk.org/book/ch02.html en la sección4.1):
from nltk.corpus import stopwords
stopwords.words(''english'')
Pero cuando presiono Enter obtengo
---------------------------------------------------------------------------
LookupError Traceback (most recent call last)
<ipython-input-6-ff9cd17f22b2> in <module>()
----> 1 stopwords.words(''english'')
C:/Users/Usuario/Anaconda/lib/site-packages/nltk/corpus/util.pyc in __getattr__(self, attr)
66
67 def __getattr__(self, attr):
---> 68 self.__load()
69 # This looks circular, but its not, since __load() changes our
70 # __class__ to something new:
C:/Users/Usuario/Anaconda/lib/site-packages/nltk/corpus/util.pyc in __load(self)
54 except LookupError, e:
55 try: root = nltk.data.find(''corpora/%s'' % zip_name)
---> 56 except LookupError: raise e
57
58 # Load the corpus.
LookupError:
**********************************************************************
Resource ''corpora/stopwords'' not found. Please use the NLTK
Downloader to obtain the resource: >>> nltk.download()
Searched in:
- ''C://Users//Meru/nltk_data''
- ''C://nltk_data''
- ''D://nltk_data''
- ''E://nltk_data''
- ''C://Users//Meru//Anaconda//nltk_data''
- ''C://Users//Meru//Anaconda//lib//nltk_data''
- ''C://Users//Meru//AppData//Roaming//nltk_data''
**********************************************************************
Y, debido a este problema, cosas como esta no se pueden ejecutar correctamente (obteniendo el mismo error):
>>> from nltk.corpus import stopwords
>>> stop = stopwords.words(''english'')
>>> sentence = "this is a foo bar sentence"
>>> print [i for i in sentence.split() if i not in stop]
¿Sabes lo que puede ser un problema? Debo usar palabras en español, ¿me recomiendan otro método? También pensé en usar el paquete Goslate con datasets en inglés
¡Gracias por leer!
PD: uso Ananconda
Intenté desde la terminal de ubuntu y no sé por qué la GUI no apareció según la respuesta de tttthomasssss. Así que seguí el comentario de KLDavenport y funcionó. Aquí está el resumen:
Abra su terminal / línea de comando y escriba python luego
>>> import nltk .>>> nltk.download("stopwords")
Esto almacenará el corpus de palabras vacías bajo nltk_data. Para mi caso fue /home/myusername/nltk_data/corpora/stopwords
.
Si necesita otro corpus, visite los datos nltk y busque el corpus con su ID. Luego use la ID para descargar como lo hicimos con las palabras prohibidas.
Parece que no tienes el corpus de palabras prohibidas en tu computadora.
Debe iniciar el descargador de NLTK y descargar toda la información que necesita.
Abra una consola de Python y haga lo siguiente:
>>> import nltk
>>> nltk.download()
showing info http://nltk.github.com/nltk_data/
En la ventana de GUI que se abre, simplemente presione el botón ''Descargar'' para descargar todos los corpora o vaya a la pestaña ''Corpora'' y solo descargue los que necesita / desea.
Si desea instalar manualmente NLTK Corpus.
1) Vaya a http://www.nltk.org/nltk_data/ y descargue su archivo NLTK Corpus deseado.
2) Ahora, en un shell de Python, compruebe el valor de nltk.data.path
3) Elija una de las rutas que existen en su máquina y descomprima los archivos de datos en el subdirectorio corpora interno.
4) Ahora puede importar los datos de nltk.corpos import stopwords
Referencia: https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9
import nltk
nltk.download()
Haga clic en el botón de descarga cuando se le solicite la guía. Funcionó para mí. ( nltk.download(''stopwords'')
no funciona para mí)