Python 如何正确添加和返回BERT模型的索引

Python 如何正确添加和返回BERT模型的索引,python,Python,我正在使用中的示例代码应用于我的数据。我所做的唯一更改是添加一个“date”列,并将最终输出转换为数据帧。我们首先仅在这一部分更改了示例函数代码,以将索引包括到storage.query中 di, idx = self.indexer.query(emb.reshape(1, -1), k=initial_k) distances = [] neighbors = [] contexts = [] indexes=[]

我正在使用中的示例代码应用于我的数据。我所做的唯一更改是添加一个“date”列,并将最终输出转换为数据帧。我们首先仅在这一部分更改了示例函数代码,以将索引包括到storage.query中

di, idx = self.indexer.query(emb.reshape(1, -1), k=initial_k)
      
        distances = []
        neighbors = []
        contexts = []
        indexes=[] ### change here
     
        for i, index in enumerate(idx.ravel()):
              token = self.all_tokens[index]
              if filter_same_word and (query_word in token or token in query_word): 
                 continue
              distances.append(di.ravel()[i])
              neighbors.append(token)
              contexts.append(self.sentences[self.sentence_ids[index]])
              indexes.append(self.sentences.index(self.sentence_ids[index])) ## change here
              if len(distances) == k:
                 break
              
        return distances, neighbors, contexts, **indexes**
   
当我运行以下代码时:

distances, neighbors, contexts,indexes = storage.query(query_sent='It is an investment bank.', query_word='bank', k=5)
dd = []
date = df["date"]].values.tolist()
for d, w, c , idx in zip(distances, neighbors, contexts,indexes):
    dd.append(
     {'date':date[idx],
       'neigh' : w,
        'score':d,
       'para' : c.strip()})
ad =pd.DataFrame(dd)
我得到以下错误:

尝试将
print(date[idx],idx)
添加到for循环中以更好地理解问题。另外,
print(len(date))
谢谢,print(len(date))=500,print(len(index))=50,print(len(context))=50。似乎更改函数代码不正确。现在更改为index=[],最后是index.append(self.句子.index(self.句子ID[index])。它仍然不起作用。现在错误是ValueError:319不在列表中。你还有其他建议吗。你似乎没有用任何东西填充
句子ID
。迈克!!。你能解释一下吗?我不太明白。