Для каждого фрагмента я хочу иметь возможность сохранять значения ограничительной рамки первой и последней строки. в куске. Это сделано для того, чтобы я мог позже выделить конкретный фрагмент в PDF-файле, используя значения ограничивающего прямоугольника фрагмента.
Сейчас я использую другую стратегию фрагментирования, при которой я перебираю каждую строку в странице и отслеживаю количество символов, и как только оно достигает определенного предела символов, я добавляю текст из этого набора строк в новый фрагмент и начинаю процесс заново со следующим фрагментом. Это мой код, делающий то же самое:
Код: Выделить всё
for line in item['lines']:
character_count += len(line['text'])
cumulative_lines.append(line)
if character_count >= character_limit:
chunk_start_bbox = cumulative_lines[0]['boundingBox']
chunk_end_bbox = cumulative_lines[-1]['boundingBox']
chunk_text = "\n".join(line['text'] for line in cumulative_lines)
chunk_metadata = metadata_dict.copy()
chunk_metadata.update({'chunk_start_bbox': chunk_start_bbox, 'chunk_end_bbox': chunk_end_bbox})
chunk_docs.append(Document(page_content=chunk_text, metadata=metadata_dict))
character_count = 0
cumulative_lines = []
Может ли кто-нибудь предложить лучший способ добиться этого? Кроме того, есть ли способ повысить производительность моего кода?
Подробнее здесь: https://stackoverflow.com/questions/785 ... box-values