Error: 'module' object is not callable in Doc2Vec
Error: 'module' object is not callable in Doc2Vec
我正在尝试将 Doc2Vec 方法放入数据框中,其中第一列包含文本,第二列包含标签(作者)。我找到了这篇文章 https://towardsdatascience.com/multi-class-text-classification-with-doc2vec-logistic-regression-9da9947b43f4,它真的很有帮助。但是,我对如何构建模型感到困惑
import tqdm
cores = multiprocessing.cpu_count()
model_dbow = Doc2Vec(dm=0, vector_size=300, negative=5, hs=0, min_count=2, sample=0, workers=cores)
model_dbow.build_vocab([x for x in tqdm(train_tagged.values)])
TypeError: 'module' object is not callable
你能帮我解决这个问题吗?
之前我也有这个代码
train, test = train_test_split(df, test_size=0.3, random_state=42)
import nltk
from nltk.corpus import stopwords
def tokenize_text(text):
tokens = []
for sent in nltk.sent_tokenize(text):
for word in nltk.word_tokenize(sent):
if len(word) < 2:
continue
tokens.append(word.lower())
return tokens
train_tagged = train.apply(
lambda r: TaggedDocument(words=tokenize_text(r['text']), tags=[r.author]), axis=1)
test_tagged = test.apply(
lambda r: TaggedDocument(words=tokenize_text(r['text']), tags=[r.author]), axis=1)
编辑: 如果我从代码中删除 tqdm 是有效的,但我不确定这是否被接受。据我所知,tqdm 是 Python 的一个包,它使您能够立即创建进度条并为您的函数和循环估计 TTC(完成时间),所以我的意思是如果我删除它,输出就没有问题.对吗?
Edit2: 另请参阅此问题 以改进教程的代码。再次感谢@gojomo
我找到了这个
我不确定 Doc2Vec
但是 python 中的这个错误是关于模块名称的
此错误语句 TypeError: 'module' object is not callable 在您对 Class 名称和模块名称感到困惑时引发。问题出在导入行中。您正在导入一个模块,而不是 class。这是因为模块名称和 class 名称具有相同的名称。
如果你在名为 MyClass.py 的文件中有一个 class MyClass,那么你应该写:
from MyClass import MyClass
您正在导入 tqdm
模块而不是实际的 class。
替换import tqdm
和from tqdm import tqdm
我正在尝试将 Doc2Vec 方法放入数据框中,其中第一列包含文本,第二列包含标签(作者)。我找到了这篇文章 https://towardsdatascience.com/multi-class-text-classification-with-doc2vec-logistic-regression-9da9947b43f4,它真的很有帮助。但是,我对如何构建模型感到困惑
import tqdm
cores = multiprocessing.cpu_count()
model_dbow = Doc2Vec(dm=0, vector_size=300, negative=5, hs=0, min_count=2, sample=0, workers=cores)
model_dbow.build_vocab([x for x in tqdm(train_tagged.values)])
TypeError: 'module' object is not callable
你能帮我解决这个问题吗?
之前我也有这个代码
train, test = train_test_split(df, test_size=0.3, random_state=42)
import nltk
from nltk.corpus import stopwords
def tokenize_text(text):
tokens = []
for sent in nltk.sent_tokenize(text):
for word in nltk.word_tokenize(sent):
if len(word) < 2:
continue
tokens.append(word.lower())
return tokens
train_tagged = train.apply(
lambda r: TaggedDocument(words=tokenize_text(r['text']), tags=[r.author]), axis=1)
test_tagged = test.apply(
lambda r: TaggedDocument(words=tokenize_text(r['text']), tags=[r.author]), axis=1)
编辑: 如果我从代码中删除 tqdm 是有效的,但我不确定这是否被接受。据我所知,tqdm 是 Python 的一个包,它使您能够立即创建进度条并为您的函数和循环估计 TTC(完成时间),所以我的意思是如果我删除它,输出就没有问题.对吗?
Edit2: 另请参阅此问题
我找到了这个
我不确定 Doc2Vec
但是 python 中的这个错误是关于模块名称的
此错误语句 TypeError: 'module' object is not callable 在您对 Class 名称和模块名称感到困惑时引发。问题出在导入行中。您正在导入一个模块,而不是 class。这是因为模块名称和 class 名称具有相同的名称。
如果你在名为 MyClass.py 的文件中有一个 class MyClass,那么你应该写:
from MyClass import MyClass
您正在导入 tqdm
模块而不是实际的 class。
替换import tqdm
和from tqdm import tqdm