亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用mincemeat.py“屈服”以鍵為列表的字典

使用mincemeat.py“屈服”以鍵為列表的字典

守候你守候我 2021-03-01 15:17:44
我試圖了解map-reduce的概念,并希望使用mincemeat.py(一個適用于python的開源庫)來實現小型程序。我已經使用映射器和化簡器獲得了一袋單詞的簡單單詞計數。但是,我想實現查找文檔中所有單詞的tf-idf分數。為此,我認為的第一步是獲得類型的字典{[word,docID]->count}。為此,我編寫了以下代碼def mapfn(k, v):    for line in v.splitlines():        for word in line.split():            l = [word.lower(), k]            yield l, 1但是,當我運行該程序時,出現以下錯誤。error: uncaptured python exception, closing channel <__main__.Client connected at 0x8a434ac> (<type 'exceptions.TypeError'>:unhashable type: 'list' [/usr/lib/python2.7/asyncore.py|read|83] [/usr/lib/python2.7/asyncore.py|handle_read_event|444]  [/usr/lib/python2.7/asynchat.py|handle_read|140]  [mincemeat.py|found_terminator|96]  [mincemeat.py|process_command|194]  [mincemeat.py|call_mapfn|171])我的理解是,使用mincemeat.py時,我們無法在map內生成列表,因為該錯誤表明縮小時不期望該列表。我對么?如果我是正確的話,有什么辦法可以做到這一點?或者,我是否需要查看除百果餡以外的其他任何圖書館?
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

我不知道百果餡,但是很顯然,它試圖將列表用作字典或集合的鍵,這是不可能的。與其產生一個列表,不如產生一個元組。(換句話說,更改[word.lower(),k](word.lower(), k)。


查看完整回答
反對 回復 2021-03-26
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號