nltk文件下载以及word_tokenize运行问题解决

本文详细介绍如何使用Anaconda或pip安装NLTK自然语言处理库,包括nltk_data下载及配置流程,通过示例代码展示如何利用NLTK进行词法分析,实现简单的聊天机器人功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nltk_data下载包
链接:https://pan.baidu.com/s/1K2PxZn6_-EULGDwY9YnClg
提取码:u4w2

使用anaconda打开Prompt
在这里插入图片描述
如果没有anaconda可以直接使用win+r打开命令提示符,输入cmd进行命令提示框操作。
anaconda和pip安装应该都可以,我是使用anaconda安装的。
打开命令提示框输入以下代码即可快速下载nltk

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ nltk

下载之后要接着下载nltk_data下载包才能使用nltk,下载包在文章开头有链接
打开创建的环境,输入python
在这里插入图片描述
python输入之后再输入下面代码

import nltk
from nltk.book import *

在这里插入图片描述
会出现以上安装目录,将nltk_data下载包放到任意目录下即可,目录下要将文件夹命名为nltk_data,然后讲nltk_data压缩包放到该文件夹下解压。
接着要将nltk_data下tokenizers里的punkt解压,如果不解压word_tokenize运行就会出现问题在这里插入图片描述
最后我们来测试一下代码

from nltk import word_tokenize
import random

# 打招呼
greetings = ['hola', 'hello', 'hi', 'Hi', 'hey!','hey']
# 回复打招呼
random_greeting = random.choice(greetings)

# 对于“假期”的话题关键词
question = ['break','holiday','vacation','weekend']
# 回复假期话题
responses = ['It was nice! I went to Paris',"Sadly, I just stayed at home"]
# 随机选一个回
random_response = random.choice(responses)



# 机器人跑起来
while True:
    userInput = input(">>> ")
    # 清理一下输入,看看都有哪些词
    cleaned_input = word_tokenize(userInput)
    # 这里,我们比较一下关键词,确定他属于哪个问题
    if  not set(cleaned_input).isdisjoint(greetings):
        print(random_greeting)
    elif not set(cleaned_input).isdisjoint(question):
        print(random_response)
    # 除非你说“拜拜”
    elif userInput == 'bye':
        break
    else:
        print("I did not understand what you said")

能够运行,证明安装成功
在这里插入图片描述

LookupError Traceback (most recent call last) Cell In[23], line 1 ----> 1 tokens= word_tokenize(input_str) File D:\anda install\exe\Lib\site-packages\nltk\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 D:\anda install\exe\Lib\site-packages\nltk\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 :param language: the model name in the Punkt corpus 105 """ --> 106 tokenizer = load(f"tokenizers/punkt/{language}.pickle") 107 return tokenizer.tokenize(text) File D:\anda install\exe\Lib\site-packages\nltk\data.py:750, in load(resource_url, format, cache, verbose, logic_parser, fstruct_reader, encoding) 747 print(f"<<Loading {resource_url}>>") 749 # Load the resource. --> 750 opened_resource = _open(resource_url) 752 if format == "raw": 753 resource_val = opened_resource.read() File D:\anda install\exe\Lib\site-packages\nltk\data.py:876, in _open(resource_url) 873 protocol, path_ = split_resource_url(resource_url) 875 if protocol is None or protocol.lower() == "nltk": --> 876 return find(path_, path + [""]).open() 877 elif protocol.lower() == "file": 878 # urllib might not use mode='rb', so handle this one ourselves: 879 return find(path_, [""]).open() File D:\anda inst
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

advancezhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值