Я пытаюсь извлечь даты из текста в таких форматах, как с января 2017 года по февраль 2018 года или с января 2018 года по февраль 2018 года . Я использую nltk, и я получаю теги pos каждого предложения. Я хочу извлечь кортеж всех дат с датами в диапазоне дат, таких как январь 2017 г. по февраль 2018 . Как я могу получить соответствующую информацию. В настоящее время я использую сопоставление с шаблоном с регулярным выражением и извлечение предложений с набором слов в нем. Есть ли другой лучший подход и как я могу захватить необходимые кортежи.
Мой код:
res_lines = []
for res in parsed_resume:
try:
text = res['content']
lines = [line.strip() for line in text.split("\n") if len(line) > 0]
lines = [nltk.word_tokenize(line) for line in lines]
lines = [nltk.pos_tag(line) for line in lines]
except(AttributeError) as e:
pass
res_lines.append(lines)
res_lines содержит список всех токенизированных и pos-тегов предложений. Чтобы запечатлеть этот паттерн, я могу захватить пост-теги, где за NNP следует CD за январь (NNP) 2018 (CD).
Пример текста:
JOB DETAILS
FROM TO COMPANY JOB TITLE
AUGUST 2019 OCTOBER 2019 ALMANSOORI PRODUCTION SERVICE, OMAN.
JUNE 2019 JULY 2019 ALMANSOORI PRODUCTION SERVICE, KENYA.
JANUARY 2018 MAY 2019 ALMANSOORI PRODUCTION SERVICE, OMAN.
JUNE 2015 DECEMBER 2017 GAS AND OILFIELD SERVICES COMPANY(GOFSCO)
SEPTEMBER 2010 JUNE 2015 OIL TEST WELL SERVICE LIMITED
Как мне выполнить эту логику c