首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表错误: TypeError:不可散列的类型:‘Word2Vec’

列表错误: TypeError:不可散列的类型:‘Word2Vec’
EN

Stack Overflow用户
提问于 2021-11-03 08:38:55
回答 1查看 75关注 0票数 0

我现在正在试验肽序列和自然语言处理,并试图使用word2vec嵌入肽序列。这些肽是以长字符串格式出现的(例如:'KCNTATCATQRLANFLVRSSNNLGPVLPPTNVGSNTY'),所以我将这些肽序列拆分成三文法。但是当我尝试嵌入它们时,我一直收到这样的错误:TypeError: unhashable type:'list.'

我不确定如何修复这个错误,因为我不太明白为什么会出现这个错误。我的代码是链接的here,下面是完整的错误输出:

代码语言:javascript
复制
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'

如有任何建议,欢迎光临!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-03 08:53:19

您需要将字符串列表传递给gensim的Word2Vec。在您的代码中,您将kmersdatapos传递给Word2Vec,这是一个字符串列表。例如:

代码语言:javascript
复制
corpus = [["lorem", "ipsum"], ["dolor"], ["sit", "amet"]]

是Word2Vec函数的有效参数。然而,

代码语言:javascript
复制
corpus = [[["lorem", "ipsum"], ["dolor"]], [["sit", "amet"]]] 

无效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69821842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档