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

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

預期的字符串或類似字節的對象錯誤

預期的字符串或類似字節的對象錯誤

慕工程0101907 2021-09-11 10:17:32
 from nltk import word_tokenize, sent_tokenize text = data.loc[:, "text"] tokenizer = word_tokenize((text)) print(tokenizer)我正在嘗試在數據集的特定列上執行單詞標記器,并且我已經切出該列并將其傳遞到 word_tokenizer 對象中,但是當我嘗試打印單詞時,我得到“預期的字符串或類似字節的對象錯誤”。
查看完整描述

1 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

讓我們假設這個 dataframe


data = pd.DataFrame({'text':['some thing', 'word', 'some more text']})

然后當你運行你的腳本時,你應該得到一個錯誤,因為你傳遞的是一個系列而不是一個字符串......


text = data.loc[:, "text"]

tokenizer = word_tokenize(text)

print(tokenizer)

類型錯誤:預期的字符串或類似字節的對象


word_tokenize 將接受字符串,這就是為什么word_tokenize('some text')會起作用。所以你需要遍歷你的系列:


text = data.loc[:, "text"]

tokenizer = [word_tokenize(text[i]) for i in range(len(text))]

print(tokenizer)


[['some', 'thing'], ['word'], ['some', 'more', 'text']]

如果您仍然遇到類型錯誤,那么很可能不是每個值data['text']都是字符串?,F在讓我們假設這個數據框:


data = pd.DataFrame({'text':['some thing', 'word', 'some more text', 1]})

這個數據幀進行列表解析會無法正常工作,因為你正在試圖通過一個int在word_tokenize


但是,如果您將所有內容更改為字符串,它應該可以工作:


data = pd.DataFrame({'text':['some thing', 'word', 'some more text', 1]})

data['text'] = data['text'].astype(str)


text = data.loc[:, "text"]

tokenizer = [word_tokenize(text[i]) for i in range(len(text))]

print(tokenizer)


[['some', 'thing'], ['word'], ['some', 'more', 'text'], ['1']]

你檢查你的類型 print([type(text[i]) for i in range(len(text))])


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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