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)
答案 0 :(得分:0)
我已经解决了i
和j
之间的距离问题。首先,我对数据集中的句子数进行计数,然后根据从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