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