簡體   English   中英

torchtext 庫中的 interleave_keys() 函數究竟做了什么?

[英]What does the interleave_keys() function in torchtext library do exactly?

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

我已經給出了下面的文檔的官方代碼

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中常用的內置函數

因此,在分解該函數后,我能夠弄清楚該函數在做什么。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM