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

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

查找列表中標(biāo)簽關(guān)系的頻率(成對(duì)相關(guān)?)

查找列表中標(biāo)簽關(guān)系的頻率(成對(duì)相關(guān)?)

哈士奇WWW 2021-06-27 16:25:56
我有一些圖像標(biāo)簽列表。我想找出哪些標(biāo)簽似乎相關(guān):l1 = ["cat", "toe", "man"]l2 = ["cat", "toe", "ice"]l3 = ["cat", "hat", "bed"]在這個(gè)(簡(jiǎn)單的)例子中,“cat”和“toe”顯然是相關(guān)的,因?yàn)樗鼈兂霈F(xiàn)了兩次(l1,l2)。如何計(jì)算?結(jié)果如下: cat & toe: 2. 我有一個(gè)線索,我要求“成對(duì)相關(guān)”,但這種分析的資源對(duì)我來(lái)說(shuō)太復(fù)雜了。
查看完整描述

2 回答

?
月關(guān)寶盒

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

您可以使用collections.defaultdictwithfrozenset和itertools.combinations來(lái)形成成對(duì)計(jì)數(shù)的字典。


變化是可能的。例如,您可以使用collections.Counterwith sortedtuple來(lái)代替,但基本上是相同的想法。


from collections import defaultdict

from itertools import combinations


dd = defaultdict(int)


L1 = ["cat", "toe", "man"]

L2 = ["cat", "toe", "ice"]

L3 = ["cat", "hat", "bed"]


for L in [L1, L2, L3]:

    for pair in map(frozenset, (combinations(L, 2))):

        dd[pair] += 1

結(jié)果:


defaultdict(int,

            {frozenset({'cat', 'toe'}): 2,

             frozenset({'cat', 'man'}): 1,

             frozenset({'man', 'toe'}): 1,

             frozenset({'cat', 'ice'}): 1,

             frozenset({'ice', 'toe'}): 1,

             frozenset({'cat', 'hat'}): 1,

             frozenset({'bed', 'cat'}): 1,

             frozenset({'bed', 'hat'}): 1})



查看完整回答
反對(duì) 回復(fù) 2021-06-29
?
拉莫斯之舞

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

另一種選擇是創(chuàng)建一個(gè) DataFrame,其中每個(gè)唯一單詞的指標(biāo)變量作為列:


from itertools import chain

all_tags = set(chain.from_iterable([l1, l2, l3]))

d = pd.DataFrame([{k: 1 if k in l else 0 for k in all_tags} for l in [l1, l2, l3]])

print(d)

#   bed  cat  hat  ice  man  toe

#0    0    1    0    0    1    1

#1    0    1    0    1    0    1

#2    1    1    1    0    0    0

現(xiàn)在您可以轉(zhuǎn)置這個(gè)矩陣并將其與自身點(diǎn)在一起以獲得成對(duì)計(jì)數(shù):


pairwise_counts = d.T.dot(d)

print(pairwise_counts)

#     bed  cat  hat  ice  man  toe

#bed    1    1    1    0    0    0

#cat    1    3    1    1    1    2

#hat    1    1    1    0    0    0

#ice    0    1    0    1    0    1

#man    0    1    0    0    1    1

#toe    0    2    0    1    1    2

該矩陣的對(duì)角線是每個(gè)單詞在您的數(shù)據(jù)中出現(xiàn)的次數(shù)。


如果您想要任何兩個(gè)字符串的成對(duì)計(jì)數(shù),例如"cat"和“ toe”,您可以執(zhí)行以下操作:


print(pairwise_counts.loc["cat", "toe"])

#2

由于這個(gè)矩陣是對(duì)稱的,你會(huì)得到相同的答案:


print(pairwise_counts.loc["toe", "cat"])

#2


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

添加回答

舉報(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)