答案 0 :(得分:2)
PDF文档包含元数据。它包括有关文档及其内容的信息,例如作者姓名,关键字,版权信息。请参阅Adobe doc。
您可以使用PyPDF2提取PDF元数据。请参阅有关the DocumentInformation class的文档。
此信息可能无法填写,并且可能显示为空白。因此,一种可能性是解析文本的开头或结尾,并提取您认为的作者姓名。当然,它不可靠。但是,如果您有书目数据库,可以尝试匹配。
如今,Microsoft Word或Libre Office Writer等编辑总是在元数据中填写作者姓名。导出文档时,它将复制到PDF中。所以,这应该适合你。试一试并告诉我们!
答案 1 :(得分:0)
我预先假设您有办法extract text from a PDF document,所以问题实际上是“我怎样才能从这篇文章中找出作者”。我认为一个简单的解决方案是使用通信电子邮件。以下是一个示例实现:
import difflib
# Some sample text
pdf_text="""SENTIMENT ANALYSIS OF DOCUMENT BASED ON ANNOTATION\n
Archana Shukla\nDepartment of Computer Science and Engineering,
Motilal Nehru National Institute of Technology,
Allahabad\narchana@mnnit.ac.in\nABSTRACT\nI present a tool which
tells the quality of document or its usefulness based on annotations."""
def find_author(some_text):
words = some_text.split(" ")
emails = []
for word in words:
if "@" in word:
emails.append(word)
emails_clean = emails[0].split("\n")
actual_email = [a for a in emails_clean if "@" in a]
actual_email = actual_email[0]
maybe_name = actual_email.split("@")[0]
all_words_lists = [a.split("\n") for a in words]
words = [a for sublist in all_words_lists for a in sublist]
words.remove(actual_email)
return difflib.get_close_matches(maybe_name, words)
在这种情况下,find_author(pdf_text)
会返回['Archana']
。它并不完美,但并非不正确。我认为你可能会以一些聪明的方式扩展它,可能是通过在结果之后得到下一个词或者将这个猜测与元数据结合,或者甚至通过在文档中找到DOI(如果/何时存在)并通过某些API查找它但是,我认为这应该是一个很好的起点。
答案 2 :(得分:-3)
首先,有一些pdf,其中哪些页面是图像。我不知道你是否可以轻松地从图像中提取文本。但是从你提到的pdf链接,我认为可以做到。存在一个名为PyPDF2的包,据我所知,它可以从pdf中提取文本。剩下的就是扫描最后几页并解析作者名称。
有关如何使用所述包here的示例。其中列出的一些代码如下:
import PyPDF2
pdfFileObj = open('meetingminutes.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
disp(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
pageObj.extractText()