我是这些框架以及 NLP 的新手。我正在遵循一个示例,该示例提供了以下代码片段来计算推文中所有标记的 tf-idf 分数。但是,我不断收到导入错误或未定义 Vectorizer。
代码:
import spacy
from textacy.vsm import Vectorizer
import textacy.vsm
vectorizer = Vectorizer(weighting = 'tfidf')
term_matrix = vectorizer.fit_transform([tok.lemma_ for tok in doc] for doc
in spacy_tweets)
收到的错误:
from textacy.vsm import Vectorizer
ImportError: cannot import name 'Vectorizer
//
import textacy
vectorizer = textacy.Vectorizer(weighting='tfidf')
AttributeError: module 'textacy' has no attribute 'Vectorizer'
//
import textacy
vectorizer = Vectorizer(weighting='tfidf')
NameError: name 'Vectorizer' is not defined
我的环境
operating system: windows 10 64bit
python version: Python 3.6.4 :: Anaconda, Inc.
spacy version: 1.9.0-np111py36_vc14_1 installed
spacy models: en_core_web_sm
textacy version: 0.3.4-py36_0
访问 textacy vectorizer 类的正确导入语句是什么?
最佳答案
使用 conda 时,安装了 textacy 0.3.4 版。此版本没有矢量化器。而是通过 PyPi 项目安装它。
https://pypi.org/project/textacy/
要检查您是否有矢量化器,您可以执行以下操作:
In [1]: import textacy
In [2]: dir(textacy)
Out[2]:
['Corpus',
'Doc',
'TextStats',
'TopicModel',
'Vectorizer',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__path__',
'__spec__',
'__version__',
'about',
'absolute_import',
'cache',
'compat',
'constants',
'corpus',
'data_dir',
'doc',
'extract',
'io',
'load_spacy',
'logger',
'logging',
'network',
'os',
'preprocess',
'preprocess_text',
'spacy_utils',
'text_stats',
'text_utils',
'tm',
'utils',
'viz',
'vsm']
关于python-3.x - 使用 spacy 和 textacy。需要在原始推文语料库中找到 tf-idf 分数,但无法导入文本向量化器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49944599/