You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastText/TorchText加载向量时遇HTTPError 403错误的解决方法

修复urllib.error.HTTPError: 403 Forbidden错误的方案

问题根源

原代码中使用的FastText词向量S3链接https://s3-us-west-1.amazonaws.com/fasttext-vectors/wiki.{}.vec已被官方停用,直接发起请求会被服务器拦截,返回403禁止访问。

具体修复方法

1. 替换为可用的官方词向量地址

FastText官方词向量目前可通过Hugging Face Hub获取,修改url_base为以下地址即可:

import os
# 假设Vectors继承自gensim.models.keyedvectors.KeyedVectors
from gensim.models.keyedvectors import KeyedVectors

class FastText(KeyedVectors):
    # 更新为Hugging Face上的有效地址
    url_base = 'https://huggingface.co/facebook/wiki.{}.vec/resolve/main/wiki.{}.vec'

    def __init__(self, language="en", **kwargs):
        url = self.url_base.format(language, language)
        name = os.path.basename(url)
        super(FastText, self).__init__(name, url=url, **kwargs)

2. 添加请求头伪装(可选)

部分服务器会拦截无标识的请求,可在代码执行前为urllib添加浏览器请求头:

import urllib.request

# 配置请求头,模拟浏览器访问
opener = urllib.request.build_opener()
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36')]
urllib.request.install_opener(opener)

将这段代码放在实例化FastText类之前运行,即可让请求通过服务器的身份校验。

3. 本地加载词向量文件

若上述方法仍存在问题,可手动下载对应语言的词向量文件,修改代码从本地路径加载:

class FastText(KeyedVectors):
    def __init__(self, language="en", **kwargs):
        # 替换为你本地词向量文件的实际路径
        local_file_path = f'/your/local/path/wiki.{language}.vec'
        super(FastText, self).__init__(local_file_path, **kwargs)

内容的提问来源于stack exchange,提问作者user11915177

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:45:28