【问题标题】:Pattern module issues (NLP learning)模式模块问题(NLP学习)
【发布时间】:2019-02-23 13:29:22
【问题描述】:

我一直在通过“Text Analytics with Python”一书学习 NLP 文本分类。需要在虚拟环境中安装几个模块。我使用 Anaconda 环境。我用 Python 3.7 创建了一个空白环境,并安装了所需的 pandas、numpy、nltk、gensim、sklearn ......然后,我必须安装 Pattern。第一个问题是我无法通过 conda 安装 Pattern,因为 Pattern 和 mkl_random 之间存在冲突。

(nlp) D:\Python\Text_classification>conda install -c mickc pattern
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - mkl_random
  - pattern
Use "conda info <package>" to see the dependencies for each package.

不可能删除 mkl_random,因为有相关的软件包:gensim、numpy、scikit-learn 等。我不知道该怎么做,我没有找到适合我的情况下接受的 Pattern 的 conda 安装.然后,我使用 pip 安装了 Pattern。安装成功。可以同时从 conda 和 pip 获取包吗?

我认为第二个问题与第一个问题有关。我从https://github.com/dipanjanS/text-analytics-with-python/tree/master/Old-First-Edition/source_code/Ch04_Text_Classification 下载了本书的示例代码,在 Python 2.x 'print' 函数中添加了括号并运行了 classification.py 程序引发了异常:

Traceback (most recent call last):
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 609, in _read
    raise StopIteration
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "classification.py", line 50, in <module>
    norm_train_corpus = normalize_corpus(train_corpus)
  File "D:\Python\Text_classification\normalization.py", line 96, in normalize_corpus
    text = lemmatize_text(text)
  File "D:\Python\Text_classification\normalization.py", line 67, in lemmatize_text
    pos_tagged_text = pos_tag_text(text)
  File "D:\Python\Text_classification\normalization.py", line 58, in pos_tag_text
    tagged_text = tag(text)
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\en\__init__.py", line 188, in tag
    for sentence in parse(s, tokenize, True, False, False, False, encoding, **kwargs).split():
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\en\__init__.py", line 169, in parse
    return parser.parse(s, *args, **kwargs)
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 1172, in parse
    s[i] = self.find_tags(s[i], **kwargs)
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\en\__init__.py", line 114, in find_tags
    return _Parser.find_tags(self, tokens, **kwargs)
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 1113, in find_tags
    lexicon = kwargs.get("lexicon", self.lexicon or {}),
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 376, in __len__
    return self._lazy("__len__")
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 368, in _lazy
    self.load()
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 625, in load
    dict.update(self, (x.split(" ")[:2] for x in _read(self._path) if len(x.split(" ")) > 1))
  File "C:\Users\PC\Anaconda3\envs\nlp\lib\site-packages\pattern\text\__init__.py", line 625, in <genexpr>
    dict.update(self, (x.split(" ")[:2] for x in _read(self._path) if len(x.split(" ")) > 1))
RuntimeError: generator raised StopIteration

我不明白发生了什么。是因为我使用 pip 安装而引发的异常,还是问题出在书中的错误或不推荐使用的代码中......是否可以在 conda 中安装 Pattern 以及所有其他必要的包。

提前谢谢你!

【问题讨论】:

  • conda info &lt;package&gt; 分别产生了什么?潜在的依赖冲突是什么?
  • 去年我在为 Gensim 安装 Pattern 时遇到了问题,因为它在 pip3 中还不可用。我最终下载了代码的 zip 并手动安装。我认为 Pattern 的 Python3 端口没有完成或正确完成。现在不确定状态。
  • 这里的一些信息可能会对您有所帮助stackoverflow.com/questions/34998210/…
  • 谢谢你。我认为您对 Python 版本和 Pattern 端口是正确的。这本书是为 Python 2.x 编写的,但它已经过时了。

标签: python design-patterns pip nlp anaconda


【解决方案1】:

切换到 Python 3.6 为我解决了这个问题。

如果您使用的是 conda,请先设置环境,并指定您要使用 3.6,并在那里安装您需要的任何包。

conda create --name myenv python=3.6 pandas numpy gensim jupyter 
conda activate myenv

由于某种原因,我不需要直接安装 Pattern。

相关Gensim解释:https://github.com/RaRe-Technologies/gensim/issues/2438

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多