如何分割已提取的文本?

How to section text that has been extracted?

我正在尝试找到一种方法来将我已经提取的文本分成两个变量。我在科学文本上使用它,我想提取摘要和文章的其余部分,例如介绍到结论一分为二,就这么抽象剩下的。

我该怎么做?我试过正则表达式,但无法正常工作。下面你可以看到我用过的一些代码。

with pdfplumber.open("") as pdf:
    all_text = '' # new line
    for pdf_page in pdf.pages:
               single_page_text = pdf_page.extract_text()
               #print( single_page_text )

               all_texts = all_text + '\n' + single_page_text
    #print(all_text)

我假设摘要由字符串“Abstract”和“*Correspondence”包含。我正在使用 str.split() 创建一个列表,其中包含“摘要”前后的文本。我拆分列表的第二个元素,创建一个列表,其中包含“*Correspondence”之前的文本和“*Correspondence”之后的文本。第二个列表的第一个元素是摘要。我将除摘要之外的所有内容附加到另一个变量。由于摘要包含在第一页上,因此这仅适用于第一页。使用枚举选择第一页。

import pdfplumber as pdfplumber

with pdfplumber.open("s12865-020-00390-9.pdf") as pdf:
    text_without_abstract = ''
    abstract = ''
    for index, pdf_page in enumerate(pdf.pages):
        if index == 0:
            single_page_text = pdf_page.extract_text()
            split_at_abstract = single_page_text.split("Abstract")
            text_without_abstract += split_at_abstract[0]
            split_at_asterisk_correspondence = split_at_abstract[1].split("*Correspondence")
            abstract = split_at_asterisk_correspondence[0]
            text_without_abstract += split_at_asterisk_correspondence[1]
        else:
            text_without_abstract += pdf_page.extract_text()

注意:此方法非常依赖于文档的字符串内容。如果字符串“Abstract”出现在摘要内部或摘要后的第一个字符串不是“*Correspondence”,它将不起作用。

str.split() : https://docs.python.org/3.8/library/stdtypes.html#str.split