我有一个文件的条款与他们的索引上下文中的两种语言,如这种格式
1. (2- human rights, 10- workers rights)>> (3- droits de l'homme, 7- droit des travailleurs)
2. (2- human rights, 10- workers rights, 19- women rights)>> (5- droits de l'homme, 15- les droits des femmes)
目标是将第一语言(英语)中的每个单词附加到另一语言(法语)中句子中最接近的单词上,因此输出将是
human rights : droits de l'homme
workers rights : droit des travailleurs
human rights : droits de l'homme
women rights : les droits des femmes
这就是评论:人权>;人权法:由于n.2(英语句子中“人权”的位置)与n.3(法语句子中“人权法”的位置)接近,因此与法语列表中的其他数字(在本例中为n.7)相比;同样,“工人权利”也接近于“劳动法”
人权>;人权法:由于n.2(英语句子中“人权”的位置)接近n.5(法语句子中“人权法”的位置),与法语列表中的其他数字(本例中为n.15)相比;同样,“妇女权利”>;“女性权利”:因为n.19接近n.15(与n.10相比)
有人能找到同样的方法得到这个输出吗?你知道吗
尚未完成,但应该会让您开始:
输出:
你需要修正格式,再做一次检查,根据ind和ind-1的ele的绝对差来找到min。你知道吗
要捕捉上一个ind-1元素的绝对差值较小的位置:
因此:
我们得到:
原始代码将输出
2- human rights -> 4- foobar
,因为我们没有考虑前一个元素的绝对差在哪里更小。你知道吗使用您的评论中的数据可以看出区别:
输出:
现在检查前面的元素:
输出:
bisect.bisect
所以对分得到元素应该在有序的数字列表中的哪个位置,所有元素都小于元素左边的位置,这意味着元素大于所有前面的元素。为了根据差值找到最接近的值,我们需要检查前面的元素,因为abs差值可能较小。你知道吗
相关问题 更多 >
编程相关推荐