小编ali*_*ali的帖子

pandas to_json() 多余的反斜杠

我有一个包含电影数据的“.csv”文件,我正在尝试将其重新格式化为 JSON 文件以在 MongoDB 中使用它。所以我将该 csv 文件加载到 pandas DataFrame 中,然后使用 to_json 方法将其写回。DataFrame 中的一行如下所示:

In [43]: result.iloc[0]
Out[43]: 
title                                                      Avatar
release_date                                                 2009
cast            [{"cast_id": 242, "character": "Jake Sully", "...
crew            [{"credit_id": "52fe48009251416c750aca23", "de...
Name: 0, dtype: object
Run Code Online (Sandbox Code Playgroud)

但是当 pandas 写回来时,它就变成了这样:

{   "title":"Avatar",
    "release_date":"2009",
    "cast":"[{\"cast_id\": 242, \"character\": \"Jake Sully\", \"credit_id\": \"5602a8a7c3a3685532001c9a\", \"gender\": 2,...]",
    "crew":"[{\"credit_id\": \"52fe48009251416c750aca23\", \"department\": \"Editing\", \"gender\": 0, \"id\": 1721,...]"
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,“cast”和“crew”是列表,它们有大量多余的反斜杠。这些反斜杠出现在 MongoDB 集合中,导致无法从这两个字段中提取数据。

\"除了替换为之外,如何解决这个问题"

PS1:这就是我将 DataFrame 保存为 JSON 的方法:

result.to_json('result.json', orient='records', lines=True)
Run Code Online (Sandbox Code Playgroud)

更新 1:显然 pandas 做得很好,问题是由原始 csv …

python json pandas

7
推荐指数
2
解决办法
8036
查看次数

是否可以使用评估指标(如 NDCG)作为损失函数?

我正在研究一个名为DPR的信息检索模型,它基本上是一个神经网络(2 个 BERT),根据给定的查询对文档进行排名。目前,该模型以二进制方式(文档是否相关)进行训练,并使用负对数似然(NLL)损失。我想改变这种二元行为并创建一个可以处理分级相关性的模型(例如 3 个等级:相关、某种程度上相关、不相关)。我必须更改损失函数,因为目前我只能为每个查询分配 1 个正目标(DPR 使用 pytorch NLLLoss),而这不是我需要的。

我想知道是否可以使用像 NDCG(标准化贴现累积增益)这样的评估指标来计算损失。我的意思是,损失函数的全部意义在于告诉我们我们的预测有多偏离,而 NDCG 也在做同样的事情。

那么,我可以使用这样的指标来代替损失函数并进行一些修改吗?对于 NDCG,我认为从 1 (1 - NDCG_score) 中减去结果可能是一个很好的损失函数。真的吗?

致以最诚挚的问候,阿里。

evaluation information-retrieval ranking neural-network loss-function

3
推荐指数
1
解决办法
2402
查看次数