我正在尝试根据某些约束找到生成文本块的最佳方法。
我有一个 JSON 结构,如下所示:
{
"id": 1,
"parent_id": null,
"text": "This is level 1, id 1",
"blocks": [
{
"id": 2,
"parent_id": 1,
"text": "This is level 2, id 2",
"blocks": [
{
"id": 3,
"parent_id": 2,
"text": "This is level 3, id 3",
},
{
"id": 4,
"parent_id": 2,
"text": "This is level 3, id 4",
}
]
},
{
"id": 5,
"parent_id": 1,
"text": "This is level 2, id 5",
}
]
}
我正在尝试将多个
text
字段组合成块,同时考虑以下因素:
text
字段,如果这导致块少于 X 个字符(即 50)。对于提供的 JSON 示例,这些是预期的块(和顺序):
chunks = [
["This is level 1, id 1", "This is level 2, id 2"],
["This is level 3, id 3", "This is level 3, id 4"],
["This is level 2, id 5"]
]
请注意,带有
id=5
的元素不会与带有 id=2
的元素放在一起,尽管它们处于相同的深度,因为那样会破坏顺序。组合它们的唯一方法是,如果元素 2、3、4 和 5 的字符之和小于 50。
关于如何使用 Python 实现这个的任何想法?
我试图通过从最深的嵌套元素到根遍历 JSON 树来递归生成文本块,但我没能成功。我还没能得到那个输出。