python - 如何为 BERT 模型正确添加和返回索引
问题描述
我正在使用来自 stackoverflow 的示例代码的示例代码来应用于我的数据。我要做的唯一更改是添加一个“日期列并将最终输出转换为数据框。我们首先仅在这部分更改示例函数代码以将索引包含到 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)
解决方案
推荐阅读
- android - 除非滚动到第三个选项卡,否则 Textview 不会在第一个选项卡上更新
- android - 关闭 dialogFragment 时键盘未关闭
- javascript - 如何使用正则表达式创建路由并在nodejs中重定向
- javascript - 如何使用循环使代码在javascript中的特定条件下操作字符串?
- mysql - 如何仅使用一个查询从多个表中获取数据?
- javascript - 不使用 eval() 计算字符串
- python - PyTorch 相当于 Numpy 的 linalg.solve 是什么?
- python - 对站点模块在 python 中的工作方式感到困惑
- mysql - 带有插入部分字段的触发器
- python - Python对元组的排序列表按值反转和按键不反转(两种不同的方式)