我正在尝试使用doc2vec进行文本分类,但是在导入之后,当我试图在一个函数中使用它时,它显示doc2vec in not defined。请帮助我确定应该安装哪些库才能使用doc2vec。
这里我有两个列,分别叫做Action(文本或句子)和Category(实际标签)。
from gensim.models import Doc2Vec
import gensim
from gensim.models.doc2vec import TaggedDocument
def label_sentences(corpus, label_type):
labeled = []
for i, v in enumerate(corpus):
label = label_type + '_' + str(i)
labeled.append(doc2vec.TaggedDocument(v.split(), [label]))
return labeled
X_train, X_test, y_train, y_test = train_test_split(df.Action, df.Category, random_state=0, test_size=0.3)
X_train = label_sentences(X_train, 'Train')
Error
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-66-d20e5f21684d> in <module>
----> 1 X_train = label_sentences(X_train, 'Train')
<ipython-input-53-bca3c695cfb6> in label_sentences(corpus, label_type)
8 for i, v in enumerate(corpus):
9 label = label_type + '_' + str(i)
---> 10 labeled.append(doc2vec.TaggedDocument(v.split(), [label]))
11 return labeled
NameError: name 'doc2vec' is not defined发布于 2020-05-29 01:49:00
您导入了TaggedDocument而不是doc2vec,但您以labeled.append(doc2vec.TaggedDocument(v.split(), [label]))的方式使用了它
因此只需直接使用TaggedDocument,或者如果不需要,只需导入doc2vec from gensim.models import doc2vec即可
发布于 2020-05-29 01:46:33
def label_sentences(corpus, label_type):
labeled = []
for i, v in enumerate(corpus):
label = label_type + '_' + str(i)
labeled.append(TaggedDocument(v.split(), [label]))
return labeled发布于 2020-05-29 01:59:21
从gensim.models导入标签或标签(TaggedDocument(v.split(),labeled.append))
工作正常
https://stackoverflow.com/questions/62071147
复制相似问题