我现在正在试验肽序列和自然语言处理,并试图使用word2vec嵌入肽序列。这些肽是以长字符串格式出现的(例如:'KCNTATCATQRLANFLVRSSNNLGPVLPPTNVGSNTY'),所以我将这些肽序列拆分成三文法。但是当我尝试嵌入它们时,我一直收到这样的错误:TypeError: unhashable type:'list.'
我不确定如何修复这个错误,因为我不太明白为什么会出现这个错误。我的代码是链接的here,下面是完整的错误输出:
TypeError Traceback (most recent call last)
<ipython-input-17-966c68819734> in <module>()
6
7 # embeddings pos
----> 8 w2vpos = Word2Vec(kmersdatapos, size=EMB_DIM,window=5,min_count=5,negative=15,iter=10,workers=multiprocessing.cpu_count())
4 frames
/usr/local/lib/python3.7/dist-packages/gensim/models/word2vec.py in _scan_vocab(self, sentences, progress_per, trim_rule)
1553 )
1554 for word in sentence:
-> 1555 vocab[word] += 1
1556 total_words += len(sentence)
1557
TypeError: unhashable type: 'list'如有任何建议,欢迎光临!
发布于 2021-11-03 08:53:19
您需要将字符串列表传递给gensim的Word2Vec。在您的代码中,您将kmersdatapos传递给Word2Vec,这是一个字符串列表。例如:
corpus = [["lorem", "ipsum"], ["dolor"], ["sit", "amet"]]是Word2Vec函数的有效参数。然而,
corpus = [[["lorem", "ipsum"], ["dolor"]], [["sit", "amet"]]] 无效。
https://stackoverflow.com/questions/69821842
复制相似问题