首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >torchtext库中的interleave_keys()函数到底做了什么?

torchtext库中的interleave_keys()函数到底做了什么?
EN

Stack Overflow用户
提问于 2020-01-02 21:47:29
回答 1查看 95关注 0票数 1

您可以在torchtext/data/utils.py文件中找到此函数

我已经给出了官方代码和下面的文档

代码语言:javascript
复制
def interleave_keys(a, b):
    """Interleave bits from two sort keys to form a joint sort key.

    Examples that are similar in both of the provided keys will have similar
    values for the key defined by this function. Useful for tasks with two
    text fields like machine translation or natural language inference.
    """
    def interleave(args):
        return ''.join([x for t in zip(*args) for x in t])
    return int(''.join(interleave(format(x, '016b') for x in (a, b))), base=2)

更详细的解释将有助于理解它如何根据给定的两个字符串的相似程度返回整数。

其中使用的format函数是python中常用的内置函数。

EN

回答 1

Stack Overflow用户

发布于 2020-01-02 22:24:20

因此,在分解函数时,我能够弄清楚这个函数在做什么。

format(x, '016b')这段代码将整数(a和b,在我的例子中实际上是句子中的单词数)转换为16位二进制数。

并且interleave函数取出像这样连接它们的二进制表示对(相同位置),

为了便于理解,让我们假设2和11为4位二进制

2的二进制表示为:0 0 1 0

11的二进制表示为:1 0 1 1

因此,这里的输出将是01001101 (01,00,11,01已经合并),当转换为整数时,将得到77

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59564451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档