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

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

在大詞序列中找到前K個(gè)頻繁詞的最有效方法

在大詞序列中找到前K個(gè)頻繁詞的最有效方法

輸入:正整數(shù)K和大文本。實(shí)際上,文本可以被視為單詞序列。因此,我們不必?fù)?dān)心如何將其分解為單詞序列。輸出:文本中最常見(jiàn)的K字。我的想法是這樣的。使用哈希表來(lái)記錄所有單詞的頻率,同時(shí)遍歷整個(gè)單詞序列。在此階段,鍵是“字”,值是“字頻”。這需要O(n)時(shí)間。對(duì)(字,字 - 頻率)對(duì)進(jìn)行排序; 關(guān)鍵是“字頻”。這需要使用正常排序算法的O(n * lg(n))時(shí)間。排序后,我們只取第一個(gè)K字。這需要O(K)時(shí)間??偠灾倳r(shí)間是O(n + n lg(n)+ K),因?yàn)镵肯定小于N,所以它實(shí)際上是O(n lg(n))。我們可以改善這一點(diǎn)。實(shí)際上,我們只想要前K個(gè)詞。換句話說(shuō),頻率對(duì)我們來(lái)說(shuō)并不重要。因此,我們可以使用“部分堆排序”。對(duì)于步驟2)和3),我們不僅僅進(jìn)行排序。相反,我們改變它2')構(gòu)建一堆(word,word-frequency)對(duì),以“word-frequency”為關(guān)鍵。構(gòu)建堆需要花費(fèi)O(n)時(shí)間;3')從堆中提取前K個(gè)單詞。每次提取為O(lg(n))。所以,總時(shí)間是O(k * lg(n))??偠灾?,該解決方案花費(fèi)時(shí)間O(n + k * lg(n))。這只是我的想法。我還沒(méi)有找到改進(jìn)步驟1)的方法。我希望一些信息檢索專家可以對(duì)這個(gè)問(wèn)題有所了解。
查看完整描述

3 回答

?
守候你守候我

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

你不會(huì)比你描述的解決方案獲得更好的運(yùn)行時(shí)間。你必須至少做O(n)工作來(lái)評(píng)估所有的單詞,然后O(k)額外的工作來(lái)找到前k個(gè)術(shù)語(yǔ)。

如果您的問(wèn)題集非常大,則可以使用分布式解決方案,例如map / reduce。n個(gè)映射工作者在每個(gè)文本的1 / n處計(jì)算頻率,并且對(duì)于每個(gè)單詞,將其發(fā)送給基于單詞的散列計(jì)算的m個(gè)reducer工作者中的一個(gè)。然后減速器將計(jì)數(shù)相加。對(duì)減速器輸出的合并排序?qū)槟峁┳盍餍械膯卧~,以便受歡迎。


查看完整回答
反對(duì) 回復(fù) 2019-09-19
  • 3 回答
  • 0 關(guān)注
  • 660 瀏覽
慕課專欄
更多

添加回答

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