第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為包含單詞的列表生成唯一 ID

為包含單詞的列表生成唯一 ID

回首憶惘然 2021-10-12 16:22:22
我有包含單詞對(duì)的列表列表,并想在 id 上描述單詞。Id 應(yīng)該從 0 到 len(set(words))。該列表現(xiàn)在看起來像這樣:[['pluripotent', 'Scharte'], ['Halswirbel', 'pr?ventiv'], ['Kleiber', 'Blauspecht'], ['Kleiber', 'Scheidung'], ['Nillenlutscher', 'Salzstangenlecker']]    結(jié)果應(yīng)該具有相同的格式,但使用 id 代替。例如:[[0, 1], [2, 3], [4, 5], [4, 6], [7, 8]]到目前為止,我有這個(gè),但它沒有給我正確的輸出:def words_to_ids(labels):  vocabulary = []  word_to_id = {}  ids = []  for word1,word2 in labels:      vocabulary.append(word1)      vocabulary.append(word2)  for i, word in enumerate(vocabulary):      word_to_id [word] = i  for word1,word2 in labels:      ids.append([word_to_id [word1], word_to_id [word1]])  print(ids)輸出:[[0, 0], [2, 2], [6, 6], [6, 6], [8, 8]]它在有唯一詞的地方重復(fù) id。
查看完整描述

2 回答

?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

你有兩個(gè)錯(cuò)誤。首先,你有一個(gè)簡(jiǎn)單的錯(cuò)字,在這里:


for word1,word2 in labels:

    ids.append([word_to_id [word1], word_to_id [word1]])

您在那里添加了word1 兩次id 。更正第二個(gè)word1以查找word2。


接下來,您不是在測(cè)試您之前是否見過某個(gè)單詞,因此'Kleiber'您首先為其指定 id 4,然后6在下一次迭代中覆蓋該條目。您需要提供唯一的單詞編號(hào),而不是所有單詞:


counter = 0

for word in vocabulary:

    if word not in word_to_id:

        word_to_id[word] = counter

        counter += 1

或者,vocabulary如果您已經(jīng)列出了該詞,則您根本無法添加該詞。vocabulary順便說一下,您在這里真的不需要單獨(dú)的列表。一個(gè)單獨(dú)的循環(huán)不會(huì)給你買任何東西,所以以下也有效:


word_to_id = {}

counter = 0

for words in labels:

    for word in words:

        word_to_id [word] = counter

        counter += 1

您可以通過使用defaultdict對(duì)象并itertools.count()提供默認(rèn)值來大大簡(jiǎn)化代碼:


from collections import defaultdict

from itertools import count


def words_to_ids(labels):

    word_ids = defaultdict(count().__next__)

    return [[word_ids[w1], word_ids[w2]] for w1, w2 in labels]

count()每次__next__調(diào)用該對(duì)象時(shí),該對(duì)象都會(huì)為您提供系列中的下一個(gè)整數(shù)值,并且defaultdict()每次您嘗試訪問字典中尚不存在的鍵時(shí)都會(huì)調(diào)用該值。它們一起確保每個(gè)唯一單詞的唯一 ID。


查看完整回答
反對(duì) 回復(fù) 2021-10-12
  • 2 回答
  • 0 關(guān)注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)