我有一个带注释的数据集,首先我使用nltk中的send_tokenizer来检测句子。现在,我必须定义一个功能,例如检查i和j(名词短语)是否都在第一句中并进行一些工作,然后应转到下一个句子,然后再次定义i和j并进行相同的工作。
这是我从数据集中检测到的第一句话:
در
همین
حال
،
<coref coref_coref_class="set_0" coref_mentiontype="ne" markable_scheme="coref" coref_coreftype="ident">
نجیب
الله
خواجه
عمری
،
</coref>
<coref coref_coref_class="set_0" coref_mentiontype="np" markable_scheme="coref" coref_coreftype="ident">
سرپرست
وزارت
تحصیلات
عالی
افغانستان
</coref>
گفت
که
در
سه
ماه
گذشته
در
۳۳
ولایت
کشور
.
现在-如何编写检测到第一句的代码。它检查i和j是否在一个句子中,返回True。然后转到下一个句子。
for sentence in sent_tokenize(text):
print(sentence) # it will print all the sentences
if i_NP ... and j_NP:
return True
答案 0 :(得分:0)
听起来像您实际上想要yield
而不是return
结果。 Return中断功能,而yield一次返回一个项目。也许是这样的:
if all([x in sentence for x in [i_NP, j_NP]]):
yield sentence
if语句检查所有单词是否都在句子中,如果是,则从函数中产生句子