iT邦幫忙

0

Python KeyError

不明 2022-10-05 22:49:342470 瀏覽
  • 分享至 

  • xImage

版上的大家好,最近在學習python遇到一點小問題希望大家幫幫忙

sorted_word = sorted(set([word for word in tf]))
tfidf = list()
for word in sorted_word:
    value = tf[word]
    value = [v*idf[word] for v in value]
    tfidf.append(value)

用這個語法的時候會出現

KeyError: '.'

這個錯誤,在第五條
想請問有什麼比較好的解決辦法嗎?

froce iT邦大師 1 級 ‧ 2022-10-06 00:13:10 檢舉
加個if把 . 符號過濾掉啊
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
tryit
iT邦研究生 4 級 ‧ 2022-10-06 01:33:22
最佳解答

老實說你提供的東西不是很完整
我想,tf 跟 idf 都是 Dictionary
而sorted_word存了tf的所有key值
但是在第五行的時候,由於idf並不存在'.'這個key,所以跳出error。
有點像以下這樣吧

tf = {'A':[1,2,3],'B':[1,2,3],'C':[1,2,3],'.':[1,2,3]}
idf = {'A':[1,2,3],'B':[1,2,3],'C':[1,2,3]}
sorted_word = sorted(set([word for word in tf]))
tfidf = list()
for word in sorted_word:
    value = tf[word]
    value = [v*idf[word] for v in value]
    tfidf.append(value)

要嘛,你程式碼稍微改一下改成這樣,加個if檢驗。

tf = {'A':[1,2,3],'B':[1,2,3],'C':[1,2,3],'.':[1,2,3]}
idf = {'A':[1,2,3],'B':[1,2,3],'C':[1,2,3]}
sorted_word = sorted(set([word for word in tf]))
tfidf = list()
for word in sorted_word:
    value = tf[word]
    if word in idf:
        value = [v*idf[word] for v in value]
    tfidf.append(value)

要嘛,改一下你儲存的內容吧

不明 檢舉

好的!謝謝我先去檢查我的資料問題,感謝您的回答

froce iT邦大師 1 級 ‧ 2022-10-06 13:07:17 檢舉

不過很久沒碰了,我碩論也是做相關的。
我記得本來就該把標點符號排除掉。為啥會拿 "." 做TF-IDF...

我要發表回答

立即登入回答