我正尝试用
来迭代此列表
CTCCTC TCCTCT CCTCTC CTCTCC TCTCCC CTCCCA TCCCAA CCCAAA CCAAAC CAAACT
CTGGGC TGGGCC GGGCCA GGCCAA GCCAAT CCAATG CAATGC AATGCC ATGCCT TGCCTG GCCTGC
TGCCAG GCCAGG CCAGGA CAGGAG AGGAGG GGAGGG GAGGGG AGGGGC GGGGCT GGGCTG GGCTGG GCTGGT CTGGTC
TGGTCT GGTCTG GTCTGG TCTGGA CTGGAC TGGACA GGACAC GACACT ACACTA CACTAT
ATTCAG TTCAGC TCAGCC CAGCCA AGCCAG GCCAGT CCAGTC CAGTCA AGTCAA GTCAAC TCAACA CAACAC AACACA
ACACAA CACAAG ACAAGG AGGTGG GGTGGC GTGGCC TGGCCT GGCCTG GCCTGC CCTGCA CTGCAC
TGCACT GCACTC CACTCG ACTCGA CTCGAG TCGAGG CGAGGT GAGGTT AGGTTC GGTTCC
TATATA ATATAC TATACC ATACCT TACCTG ACCTGG CCTGGT CTGGTA TGGTAA GGTAAT GTAATG TAATGG AATGGA
我正在尝试循环读取列表中的每个项目并通过mk_model.vector
进行解析
使用的代码如下
for x in all_seq_sentences[:]:
mk_model.vector(x)
print(x)
通常,mk_model.vector("AGT")
将给出一个与定义dna2vec模型相对应的数组,但是在这里,不是实际执行模型运行,而是将错误抛出为
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-144-77c47b13e98a> in <module>
1 for x in all_seq_sentences[:]:
----> 2 mk_model.vector(x)
3 print(x)
4
~/Desktop/DNA2vec/dna2vec/dna2vec/multi_k_model.py in vector(self, vocab)
35
36 def vector(self, vocab):
---> 37 return self.data[len(vocab)].model[vocab]
38
39 def unitvec(self, vec):
KeyError: 664
在这里期待一些帮助
答案 0 :(得分:0)
上述问题之所以存在问题,是因为for循环将第一行中的所有项目都作为一个项目,这就是.split()
是最佳解决方案的原因。要阅读,请遵循https://python-reference.readthedocs.io/en/latest/docs/str/split.html
工作代码:
for i in all_seq_sentences:
word = i.split()
print(word[0])
,然后实现另一个循环以访问model.vector函数
vec_of_all_seq = []
for sentence in all_seq_sentences:
sentence = sentence.split()
for word in sentence:
vec_of_all_seq.append(mk_model.vector(word))
从model.vector派生的 vector表示形式将保存在名为vec_of_all_seq
的numpy数组中。