Я пытаюсь определить все предложения, содержащие цитаты в тексте в журнальной статье в формате pdf. Я преобразовал .pdf в .txt и хотел найти все предложения, содержащие цитату, возможно, в одном из следующих форматов:
- Смит (1990) заявил, что....
- Было заключено соглашение о... (Смит, 1990).
- Было заключено соглашение о... (апрель 2005 г.; Смит, 1990 г.)
- Смеси вышеперечисленных
Сначала я разбил txt на предложения:
import nltk
from nltk.tokenize import sent_tokenize
ss = sent_tokenize(text)
Получается список type(ss), поэтому я преобразовал список в str, чтобы использовать re findall:
def listtostring(s):
str1 = ' '
return (str1. join(s))
ee = listtostring(ss)
Затем моя идея заключалась в том, чтобы идентифицировать предложения, содержащие четырехзначное число:
import re
for sentence in ee:
zz = re.findall(r'\d{4}', ee)
if zz:
print (zz)
Однако при этом извлекаются только годы, но не предложения, содержащие годы.