句子检测-在第一句中找到两个NP,然后转到下一个句子

时间:2018-09-25 15:13:13

标签: python nltk

我有一个带注释的数据集,首先我使用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

1 个答案:

答案 0 :(得分:0)

听起来像您实际上想要yield而不是return结果。 Return中断功能,而yield一次返回一个项目。也许是这样的:

if all([x in sentence for x in [i_NP, j_NP]]):
    yield sentence

if语句检查所有单词是否都在句子中,如果是,则从函数中产生句子