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

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

“計數矢量化器()”在空間上而不是在逗號上拆分

“計數矢量化器()”在空間上而不是在逗號上拆分

慕雪6442864 2022-09-27 15:22:03
因此,在我的數據幀中,我有一列“Actors”,其中包含演員的多個“first_name姓氏”。例如:“丹尼斯·克里斯托弗,丹尼斯·奎德,丹尼爾·斯特恩”作為類型“類別”當我使用它時,會將上述組稀疏為6個單詞。我希望該函數不考慮名稱之間的''(空格),而只考慮'',因此在前面的示例中,它將稀疏為3個單詞。CountVectorizer().fit_transform(df['Actors'])vectorizer = CountVectorizer() Actors_f = vectorizer.fit_transform(df.loc[df['Actors'].notna(), 'Actors'])有沒有辦法做到這一點?
查看完整描述

4 回答

?
FFIVE

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

與本問題類似:如何將帶小數或逗號的數字視為計數中的一個單詞計算器,您必須更改用于標記輸入的正則表達式。

文檔所述,默認正則表達式為:

token_pattern='(?u)\b\w\w+\b'

哪些匹配:

(/u)- 統一碼字符

\b- 字邊界(例如空格)

\w- 一個詞

\w+- 連續詞直到...

\b- 另一個單詞邊界(例如字符串的末尾)

你需要的是這個:

 token_pattern='(?u)[a-zA-Z][a-z ]+'

特別是,空格字符包含在令牌中,這使得捕獲名稱+姓氏成為一個標記。

檢查正則表達式文檔以了解正則表達式的含義。


查看完整回答
反對 回復 2022-09-27
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

我設法做到了這一點

bigram_vectorizer = CountVectorizer(ngram_range=(2, 2), min_df=1)
bigram_vectorizer.fit_transform(df['Actors'])


查看完整回答
反對 回復 2022-09-27
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

可能是一種更具可讀性和直觀性的方法


import re

re_exp = r"\,"

vectorizer = CountVectorizer(tokenizer=lambda text: re.split(re_exp,text))

“科學學習”文檔說


分詞器:可調用,默認=無 覆蓋字符串分詞化步驟,同時保留預處理和 n-gram 生成步驟。僅當分析器 == “單詞”時才適用。


查看完整回答
反對 回復 2022-09-27
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

使用下面的分詞器在你的情況下按逗號拆分:

矢量化器 = 計數向量器(分詞器 = lambda x: x.split(','))


查看完整回答
反對 回復 2022-09-27
  • 4 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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