帮我用python写一个自动提取pdf文件中人名的代码
时间: 2024-04-21 20:22:53 浏览: 115
要自动提取PDF文件中的人名,您可以使用Python中的`PyPDF2`库和正则表达式来实现。以下是一个示例代码:
```python
import PyPDF2
import re
def extract_names_from_pdf(pdf_path):
with open(pdf_path, 'rb') as file:
pdf_reader = PyPDF2.PdfFileReader(file)
num_pages = pdf_reader.getNumPages()
names = set()
for page_num in range(num_pages):
page = pdf_reader.getPage(page_num)
text = page.extract_text()
# 使用正则表达式匹配人名
name_matches = re.findall(r"[A-Z][a-z]+\s[A-Z][a-z]+", text)
names.update(name_matches)
return names
# 提取PDF文件中的人名
pdf_path = '/path/to/your/pdf_file.pdf'
person_names = extract_names_from_pdf(pdf_path)
# 打印提取的人名
for name in person_names:
print(name)
```
在上面的代码中,`extract_names_from_pdf`函数接收一个PDF文件路径作为参数,并使用`PyPDF2`库打开该文件。然后,它遍历PDF的每一页,并使用`extract_text`方法提取文本内容。
接下来,我们使用正则表达式来匹配人名。在示例代码中,我们使用的正则表达式模式是 `[A-Z][a-z]+\s[A-Z][a-z]+`,该模式匹配以大写字母开头的姓氏,后跟一个空格,然后是以大写字母开头的名字。
最后,我们将匹配到的人名存储在一个集合中,以避免重复,并将其作为函数的返回值。
请将 `/path/to/your/pdf_file.pdf` 替换为您要提取人名的实际PDF文件路径。请注意,这只是一个简单示例,可能无法捕获所有可能的人名格式。您可能需要根据实际情况调整正则表达式模式以更好地匹配人名。