I was trying to run some nltk functions on the UCI spam message dataset but ran into this problem of word_tokenize not working even after downloading dependencies. import nltk nltk.download('punkt') from nltk.tokenize import word_tokenize df['text'].apply(lambda x: len(nltk.word_tokenize(x))) following is the error: { "name": "LookupError", "message": " ********************************************************************** Resource punkt_tab not found. Please use the NLTK Downloader to obtain the resource: >>> import nltk >>> nltk.download('punkt_tab') For more information see: https://www.nltk.org/data.html Attempted to load tokenizers/punkt_tab/english/ Searched in: - 'C:\\\\Users\\\\user/nltk_data' - 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\\\ ltk_data' - 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\\\\share\\\ ltk_data' - 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\\\\lib\\\ ltk_data' - 'C:\\\\Users\\\\user\\\AppData\\\\Roaming\\\ ltk_data' - 'C:\\\ ltk_data' - 'D:\\\ ltk_data' - 'E:\\\ ltk_data' ********************************************************************** ", "stack": "--------------------------------------------------------------------------- LookupError Traceback (most recent call last) Cell In[1024], line 3 1 #finding no. of words ----> 3 df['text'].apply(lambda x: len(nltk.word_tokenize(x))) File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\series.py:4915, in Series.apply(self, func, convert_dtype, args, by_row, **kwargs) 4780 def apply( 4781 self, 4782 func: AggFuncType, (...) 4787 **kwargs, 4788 ) -> DataFrame | Series: 4789 \"\"\" 4790 Invoke function on values of Series. 4791 (...) 4906 dtype: float64 4907 \"\"\" 4908 return SeriesApply( 4909 self, 4910 func, 4911 convert_dtype=convert_dtype, 4912 by_row=by_row, 4913 args=args, 4914 kwargs=kwargs, -> 4915 ).apply() File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\apply.py:1427, in SeriesApply.apply(self) 1424 return self.apply_compat() 1426 # self.func is Callable -> 1427 return self.apply_standard() File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\apply.py:1507, in SeriesApply.apply_standard(self) 1501 # row-wise access 1502 # apply doesn't have a `na_action` keyword and for backward compat reasons 1503 # we need to give `na_action=\"ignore\"` for categorical data. 1504 # TODO: remove the `na_action=\"ignore\"` when that default has been changed in 1505 # Categorical (GH51645). 1506 action = \"ignore\" if isinstance(obj.dtype, CategoricalDtype) else None -> 1507 mapped = obj._map_values( 1508 mapper=curried, na_action=action, convert=self.convert_dtype 1509 ) 1511 if len(mapped) and isinstance(mapped[0], ABCSeries): 1512 # GH#43986 Need to do list(mapped) in order to get treated as nested 1513 # See also GH#25959 regarding EA support 1514 return obj._constructor_expanddim(list(mapped), index=obj.index) File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\base.py:921, in IndexOpsMixin._map_values(self, mapper, na_action, convert) 918 if isinstance(arr, ExtensionArray): 919 return arr.map(mapper, na_action=na_action) --> 921 return algorithms.map_array(arr, mapper, na_action=na_action, convert=convert) File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\pandas\\core\\algorithms.py:1743, in map_array(arr, mapper, na_action, convert) 1741 values = arr.astype(object, copy=False) 1742 if na_action is None: -> 1743 return lib.map_infer(values, mapper, convert=convert) 1744 else: 1745 return lib.map_infer_mask( 1746 values, mapper, mask=isna(values).view(np.uint8), convert=convert 1747 ) File lib.pyx:2972, in pandas._libs.lib.map_infer() Cell In[1024], line 3, in <lambda>(x) 1 #finding no. of words ----> 3 df['text'].apply(lambda x: len(nltk.word_tokenize(x))) File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\ ltk\\tokenize\\__init__.py:129, in word_tokenize(text, language, preserve_line) 114 def word_tokenize(text, language=\"english\", preserve_line=False): 115 \"\"\" 116 Return a tokenized copy of *text*, 117 using NLTK's recommended word tokenizer (...) 127 :type preserve_line: bool 128 \"\"\" --> 129 sentences = [text] if preserve_line else sent_tokenize(text, language) 130 return [ 131 token for sent in sentences for token in _treebank_word_tokenizer.tokenize(sent) 132 ] File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\ ltk\\tokenize\\__init__.py:106, in sent_tokenize(text, language) 96 def sent_tokenize(text, language=\"english\"): 97 \"\"\" 98 Return a sentence-tokenized copy of *text*, 99 using NLTK's recommended sentence tokenizer (...) 104 aram language: the model name in the Punkt corpus 105 \"\"\" --> 106 tokenizer = PunktTokenizer(language) 107 return tokenizer.tokenize(text) File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\ ltk\\tokenize\\punkt.py:1744, in PunktTokenizer.__init__(self, lang) 1742 def __init__(self, lang=\"english\"): 1743 PunktSentenceTokenizer.__init__(self) -> 1744 self.load_lang(lang) File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\ ltk\\tokenize\\punkt.py:1749, in PunktTokenizer.load_lang(self, lang) 1746 def load_lang(self, lang=\"english\"): 1747 from nltk.data import find -> 1749 lang_dir = find(f\"tokenizers/punkt_tab/{lang}/\") 1750 self._params = load_punkt_params(lang_dir) 1751 self._lang = lang File ~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\ ltk\\data.py:582, in find(resource_name, paths) 580 sep = \"*\" * 70 581 resource_not_found = f\"\ {sep}\ {msg}\ {sep}\ \" --> 582 raise LookupError(resource_not_found) LookupError: ********************************************************************** Resource punkt_tab not found. Please use the NLTK Downloader to obtain the resource: >>> import nltk >>> nltk.download('punkt_tab') For more information see: https://www.nltk.org/data.html Attempted to load tokenizers/punkt_tab/english/ Searched in: - 'C:\\\\Users\\\\user/nltk_data' - 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\\\ ltk_data' - 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\\\\share\\\ ltk_data' - 'C:\\\\Program Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\\\\lib\\\ ltk_data' - 'C:\\\\Users\\\\user\\\\AppData\\\\Roaming\\\ ltk_data' - 'C:\\\ ltk_data' - 'D:\\\ ltk_data' - 'E:\\\ ltk_data' ********************************************************************** " } I tried re installing nltk and try and download a few other dependency files but nothing works. What am I doing wrong? Continue reading...