微信关注,获取更多

如何使用正则表达式提取中英文混合语句中的关键词

你是否曾经遇到过需要从中英文混合的文本中提取关键词的情况?这个问题似乎比较复杂,但是通过合适的正则表达式规则,你可以轻松解决这个问题。在本文中,我将向你介绍如何构建正则表达式规则,以从中英文混合语句中提取关键词。

开始之前的故事

在某个工作场景中,你需要处理本科毕业生的毕业论文,将其中的关键词提取出来,并填充到Excel表格中。学生的关键词信息通常位于PDF文档的摘要部分,这些关键词可能包含中英文混合的文本,关键词之间用空格分隔,关键词后面有时带有冒号,有时没有。此外,每个学生的关键词数量可能不同,最多不超过6个,并且关键词的结束应该是换行符(\n)。

使用Python中的正则表达式

为了提取这些关键词,我们可以使用Python中的正则表达式库re。下面是一个示例代码,演示了如何使用正则表达式来提取关键词:

import re

text = "关键词:Python 多线程 目标检测 Python Flask 框架"

# 构建正则表达式规则
pattern = r'关键词[::]?\s*([^:\n]+)(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?\s*\n'

# 使用正则表达式进行匹配
matches = re.search(pattern, text)

if matches:
    # 提取关键词
    keywords = [match.strip() for match in matches.groups() if match]
    print(keywords)
else:
    print("未匹配到关键词")

这段代码首先构建了一个正则表达式规则pattern,用于匹配关键词。然后,使用re.search()函数在文本text中查找匹配项。如果找到匹配项,就提取关键词并打印出来。

自动获取PDF文档中的关键词

现在你知道如何使用正则表达式提取关键词了,但如何自动获取PDF文档中的文本并应用这个正则表达式呢?下面是一个简单的步骤:

  1. 使用Python的PDF库(如PyPDF2)打开PDF文档并提取文本内容。
  2. 针对每个文档中的摘要部分,应用之前定义的正则表达式规则来提取关键词。
  3. 将提取出的关键词填充到Excel表格中。

下面是一个伪代码示例,展示了如何实现这些步骤:

import re
import PyPDF2
import openpyxl

# 打开PDF文档
pdf_file = open("论文.pdf", "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# 创建Excel工作簿
workbook = openpyxl.Workbook()
worksheet = workbook.active

# 定义正则表达式规则
pattern = r'关键词[::]?\s*([^:\n]+)(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?(?:[::]\s*([^:\n]+))?\s*\n'

# 遍历每一页的摘要
for page_num in range(pdf_reader.numPages):
    page = pdf_reader.getPage(page_num)
    page_text = page.extractText()

    # 使用正则表达式提取关键词
    matches = re.search(pattern, page_text)
    if matches:
        keywords = [match.strip() for match in matches.groups() if match]

        # 将关键词填充到Excel表格中
        worksheet.append(keywords)

# 保存Excel文件
workbook.save("关键词.xlsx")

# 关闭PDF文件
pdf_file.close()

这个伪代码示例展示了如何自动获取PDF文档中的关键词并将其填充到Excel表格中。你可以根据自己的实际需求来调整代码,以适应不同的情况。

结论

通过构建适当的正则表达式规则,你可以轻松地从中英文混合语句中提取关键词。这在处理毕业论文或其他文档时非常有用,可以提高工作效率。希望本文对你有所帮助,祝你在处理文本数据时顺利如意!

未经允许不得转载:大神网 » 如何使用正则表达式提取中英文混合语句中的关键词

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏