模式模块问题(NLP学习)



我一直在通过书籍"带有python的文本分析"学习NLP文本分类。它需要在虚拟环境中安装几个模块。我使用Anaconda Env。我使用Python 3.7创建了一个空白的Env,并安装了所需的Pandas,Numpy,NLTK,Gensim,Sklearn ...然后,我必须安装模式。第一个问题是由于模式与MKL_Random之间的冲突,我无法通过Conda安装模式。

(nlp) D:PythonText_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等。我不知道该怎么办。然后,我使用PIP安装了模式。安装成功。可以同时使用Conda和PIP的包装吗?

我认为第二个问题与第一个问题有关。我从https://github.com/dipanjans/text-analytics-with-python/tree/master/master/master/old-first-edition/source_code_code/ch04_text_classification下载了这本书的示例代码。并运行分类该程序提出了一个例外:

Traceback (most recent call last):
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntext__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:PythonText_classificationnormalization.py", line 96, in normalize_corpus
    text = lemmatize_text(text)
  File "D:PythonText_classificationnormalization.py", line 67, in lemmatize_text
    pos_tagged_text = pos_tag_text(text)
  File "D:PythonText_classificationnormalization.py", line 58, in pos_tag_text
    tagged_text = tag(text)
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntexten__init__.py", line 188, in tag
    for sentence in parse(s, tokenize, True, False, False, False, encoding, **kwargs).split():
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntexten__init__.py", line 169, in parse
    return parser.parse(s, *args, **kwargs)
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntext__init__.py", line 1172, in parse
    s[i] = self.find_tags(s[i], **kwargs)
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntexten__init__.py", line 114, in find_tags
    return _Parser.find_tags(self, tokens, **kwargs)
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntext__init__.py", line 1113, in find_tags
    lexicon = kwargs.get("lexicon", self.lexicon or {}),
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntext__init__.py", line 376, in __len__
    return self._lazy("__len__")
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntext__init__.py", line 368, in _lazy
    self.load()
  File "C:UsersPCAnaconda3envsnlplibsite-packagespatterntext__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:UsersPCAnaconda3envsnlplibsite-packagespatterntext__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中安装模式。

预先感谢您!

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

如果您使用的是Conda,请首先设置环境,并指定要使用3.6,然后在此处安装任何包装。

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

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

相关Gensim说明:https://github.com/rare-technologies/gensim/issues/2438

最新更新