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

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

如何在 Python 中創建詞袋

如何在 Python 中創建詞袋

慕蓋茨4494581 2022-12-06 16:29:59
清理并標記化后的數據框測試。from nltk.tokenize import TweetTokenizertt = TweetTokenizer()test['tokenize'] = test['tweet'].apply(tt.tokenize)print(test)輸出0  congratulations dear friend ... [congratulations, dear, friend]1  happy anniversary be happy  ... [happy, anniversary, be, happy]2  make some sandwich          ...          [make, some, sandwich]我想為我的數據創建一個詞袋。以下給了我錯誤:'list'對象沒有屬性'lower'from sklearn.feature_extraction.text import CountVectorizervectorizer = CountVectorizer()BOW = vectorizer.fit_transform(test['tokenize'])print(BOW.toarray())print(vectorizer.get_feature_names())第二個:AttributeError: 'list' object has no attribute 'split'from collections import Countertest['BOW'] = test['tokenize'].apply(lambda x: Counter(x.split(" ")))print(test['BOW'])你能幫我一個方法或兩個。謝謝!
查看完整描述

2 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

vectorizer.fit_transform將可迭代的 str、unicode 或文件對象作為參數。您已經傳遞了一個可迭代的列表(標記化字符串)。您可以只傳遞原始字符串集,test['tweet']因為 CountVectorizer 會為您進行標記化。


from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()

BOW = vectorizer.fit_transform(test['tweet'])

print(BOW.toarray())

print(vectorizer.get_feature_names())

這應該會給你預期的輸出。


查看完整回答
反對 回復 2022-12-06
?
慕斯王

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

如您的輸出示例所示,test['tokenize']包含單元格中的列表。這些列表是通過按“”拆分從字符串中檢索到的值,因此要使此行test['BOW'] = test['tokenize'].apply(lambda x: Counter(x.split(" ")))正常工作,請嘗試將其更改為test['BOW'] = test['tokenize'].apply(lambda x: Counter(x))



查看完整回答
反對 回復 2022-12-06
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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