我正在尝试提取两个点之间的句子。所有句子中都有 inflam 或 Inflam,这是我的特定词,但我不知道如何实现这一点。
我想要的是“。下面的纤维结缔组织的大部分由慢性炎症细胞的弥散聚集体组成。” 或者 “纤维结缔组织揭示了分散的血管结构和可能的慢性炎症。” 来自一个很长的段落
到目前为止我尝试过的是这个
#@title Extract microscopic-inflammation { form-width: "20%" }
def inflammation1(microscopic_description):
PATTERNS=[
"(?=\.)(.*)(?<=inflamm)",
"(?=inflamm)(.*)(?<=.)",
]
for pattern in PATTERNS:
matches = re.findall(pattern, microscopic_description)
if len(matches) > 0:
break
inflammation1 = ''.join([k for k in matches])
return (inflammation1)
for index, microscopic_description in enumerate(texts):
print(inflammation1(microscopic_description))
print("#"*79, index)
这对我不起作用并且给了我错误。当我分离我的模式并在不同的单元格中运行它们时,它们就会起作用。问题是他们不能一起给我“.”之间的句子。和 ”。”发炎前和发炎后。
import re
string='' # replace with your paragraph
print(re.search(r"\.[\s\w]*\.",string).group()) #will print first matched string
print(re.findall(r"\.[\s\w]*\.",string)) #will print all matched strings
您可以尝试检查文本每个句子中的单词。
for sentence in text.split("."):
if word in sentence:
print(sentence[1:])
在这里,您正是这样做的,如果找到该单词,您将打印该句子,并且开头不带空格。您可以以任何您想要的方式修改它。