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

Google Colab安装Parsivar Normalizer失败求助

解决Google Colab中安装Parsivar Normalizer的ImportError问题

问题描述

我在Google Colab中安装Parsivar Normalizer时遇到错误,该错误已出现约两周,此前安装无问题。

安装代码:

!pip install parsivar
from parsivar import Normalizer
my_normalizer = Normalizer()

报错调用栈:

ImportError                               Traceback (most recent call last)
<ipython-input-1-a4ae8568f137> in <cell line: 2>()
      1 get_ipython().system('pip install parsivar')
----> 2 from parsivar import Normalizer
      3 my_normalizer = Normalizer()

7 frames
/usr/local/lib/python3.10/dist-packages/parsivar/__init__.py in <module>
----> 1 from .chunker import FindChunks
      2 from .data_helper import DataHelper
      3 from .dependency import DependencyParser
      4 from .normalizer import Normalizer
      5 from .postagger import POSTagger

/usr/local/lib/python3.10/dist-packages/parsivar/chunker.py in <module>
----> 1 import nltk
      2 
      3 class FindChunks():
      4     def __init__(self):
      5         self.grammar = r"""

/usr/local/lib/python3.10/dist-packages/nltk/__init__.py in <module>
    132 from nltk.grammar import *
    133 from nltk.probability import *
--> 134 from nltk.text import *
    135 from nltk.tree import *
    136 from nltk.util import *

/usr/local/lib/python3.10/dist-packages/nltk/text.py in <module>
     24 from six import text_type
     25 
--> 26 from nltk.lm import MLE
     27 from nltk.lm.preprocessing import padded_everygram_pipeline
     28 from nltk.probability import FreqDist

/usr/local/lib/python3.10/dist-packages/nltk/lm/__init__.py in <module>
    220 """
    221 
--> 222 from nltk.lm.models import (
    223     MLE,
    224     Lidstone,

/usr/local/lib/python3.10/dist-packages/nltk/lm/models.py in <module>
     10 
     11 from nltk import compat
--> 12 from nltk.lm.api import LanguageModel, Smoothing
     13 from nltk.lm.smoothing import KneserNey, WittenBell
     14 

/usr/local/lib/python3.10/dist-packages/nltk/lm/api.py in <module>
     15 from six import add_metaclass
     16 
--> 17 from nltk.lm.counter import NgramCounter
     18 from nltk.lm.util import log_base2
     19 from nltk.lm.vocabulary import Vocabulary

/usr/local/lib/python3.10/dist-packages/nltk/lm/counter.py in <module>
     13 from __future__ import unicode_literals
     14 
--> 15 from collections import Sequence, defaultdict
     16 
     17 from six import string_types

ImportError: cannot import name 'Sequence' from 'collections' (/usr/lib/python3.10/collections/__init__.py)

错误原因

该错误源于Python版本兼容性问题:

  • Google Colab当前默认使用Python 3.10,而Python 3.3+已将Sequence这类抽象基类从collections模块迁移至collections.abc模块;
  • Parsivar依赖的旧版本NLTK仍在代码中从collections导入Sequence,导致在Python 3.10环境下触发ImportError。

解决方案

方案1:升级NLTK到兼容版本

NLTK 3.8及以上版本已修复此导入问题,直接升级即可:

!pip install --upgrade nltk
!pip install parsivar
from parsivar import Normalizer
my_normalizer = Normalizer()

方案2:手动修复NLTK代码(临时方案)

如果升级后仍有问题,可手动修改NLTK的导入逻辑:

  1. 运行以下命令定位NLTK文件路径:
import nltk
print(nltk.__file__)
  1. 找到nltk/lm/counter.py文件,将第15行代码:
from collections import Sequence, defaultdict

修改为:

from collections.abc import Sequence
from collections import defaultdict
  1. 保存后重新运行导入代码。

方案3:指定Parsivar兼容版本

若无需最新版Parsivar,可尝试安装旧版本搭配兼容的NLTK:

!pip install parsivar==0.1.9
!pip install nltk==3.7
from parsivar import Normalizer
my_normalizer = Normalizer()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:07:01