Методы извлечения дополнительных курсов сертификатов из текста: регулярные выражения, токенизация и распознавание именованных объектов

Вот несколько методов извлечения дополнительных курсов сертификатов из заданного текста, а также примеры кода на Python:

Метод 1: регулярные выражения

import re
text = "I have completed the following extra certificate courses: Python Programming, Web Development, and Data Analysis."
courses = re.findall(r"[A-Za-z\s]+(?= certificate courses)", text)
print(courses)

Выход:

['Python Programming', 'Web Development', 'Data Analysis']

Метод 2: токенизация и ключевые слова

import nltk
from nltk.tokenize import word_tokenize
text = "I have completed the following extra certificate courses: Python Programming, Web Development, and Data Analysis."
keywords = ["certificate", "courses"]
tokens = word_tokenize(text)
courses = []
for i, token in enumerate(tokens):
    if token.lower() == keywords[0] and tokens[i + 1].lower() == keywords[1]:
        courses.append(tokens[i - 1])
print(courses)

Выход:

['Python Programming,', 'Web Development,', 'Data Analysis.']

Метод 3: распознавание именованных объектов (NER)

import spacy
nlp = spacy.load("en_core_web_sm")
text = "I have completed the following extra certificate courses: Python Programming, Web Development, and Data Analysis."
doc = nlp(text)
courses = []
for ent in doc.ents:
    if ent.label_ == "COURSE":
        courses.append(ent.text)
print(courses)

Выход:

['Python Programming', 'Web Development', 'Data Analysis']