i和j之间的距离乘以分隔两个名词短语的句子数

时间:2018-10-03 10:30:06

标签: python

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分别计算它们之间的句子数,如果它们在同一句子中,则应返回0,否则返回1,2。

i_NP = []
j_NP = []
find_coref = re.findall(r'<coref.*?coref_coref_class="set.*?>(.*?)</coref>[.!?]', read_dataset, re.S)
coref_list = list(map(lambda x: x.replace('\n', ' '), find_coref))
for i in range(0,len(coref_list)-1,2):
    i_NP.append(coref_list[i])
    j_NP.append(coref_list[i+1])
count = 0
    for dot in i_NP and j_NP:
        if dot == '.':
            count = count +1



print(i_NP, j_NP)

1 个答案:

答案 0 :(得分:0)

我已经解决了ij之间的距离问题。首先,我对数据集中的句子数进行计数,然后根据从while loop获取的索引来测试两个变量是否都可变。

def distance_feature():
    tok = sent_tokenize(str(read_dataset))
    ln = len(tok)
    i = 1
    k = 1
    while i<=ln:
        if k == i:
            if any(elem in (i_NP[k-1] and j_NP[k-1]) for elem in read_dataset):
                i = i + 1
                k = k + 1
                return 0
            else:
                return 1