Генсим Лемматизация Удалить Постаг б ' - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь лемматизировать документы с помощью следующих кодов. Лемматизация работает. Это производит строку байта. Следовательно, следующая часть кодов выдает ошибку «cant concan byte to str». Затем я изменил токены как str (), как указано в кодах ниже. Вывод кода приведен ниже; (я использую Python 3.7 (64 бит))

AttributeError                            Traceback (most recent call last)
<ipython-input-223-cb505389f802> in <module>
      1 #Build a Vocabulary
----> 2 model.build_vocab(train_demo_corpus)

~\Anaconda3\lib\site-packages\gensim\models\doc2vec.py in build_vocab(self, documents, update, progress_per, keep_raw_vocab, trim_rule, **kwargs)
    727         """
    728         total_words, corpus_count = self.vocabulary.scan_vocab(
--> 729             documents, self.docvecs, progress_per=progress_per, trim_rule=trim_rule)
    730         self.corpus_count = corpus_count
    731         report_values = self.vocabulary.prepare_vocab(

~\Anaconda3\lib\site-packages\gensim\models\doc2vec.py in scan_vocab(self, documents, docvecs, progress_per, trim_rule)
    807         for document_no, document in enumerate(documents):
    808             if not checked_string_types:
--> 809                 if isinstance(document.words, string_types):
    810                     logger.warning(
    811                         "Each 'words' should be a list of words (usually unicode strings). "

AttributeError: 'str' object has no attribute 'words'

вот мой код;

train_demo_corpus = list(lemmat(lee_train_demo_file))

def lemmat(fname, tokens_only=False):
    with smart_open.smart_open(fname, encoding="iso-8859-1") as f:
        for i, line in enumerate(f):
            tokens = gensim.utils.lemmatize(line)
            if tokens_only:
                yield str(tokens)
            else:
                # For training data, add tags
                yield str(gensim.models.doc2vec.TaggedDocument(tokens, [i]))

model = gensim.models.doc2vec.Doc2Vec(vector_size=50, min_count=2, epochs=40)
model.build_vocab(train_demo_corpus)

С уважением,

...