因此,在我的數據幀中,我有一列“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 ]+'
特別是,空格字符包含在令牌中,這使得捕獲名稱+姓氏成為一個標記。
檢查正則表達式文檔以了解正則表達式的含義。
qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
我設法做到了這一點
bigram_vectorizer = CountVectorizer(ngram_range=(2, 2), min_df=1) bigram_vectorizer.fit_transform(df['Actors'])
白衣非少年
TA貢獻1155條經驗 獲得超0個贊
可能是一種更具可讀性和直觀性的方法
import re
re_exp = r"\,"
vectorizer = CountVectorizer(tokenizer=lambda text: re.split(re_exp,text))
“科學學習”文檔說
分詞器:可調用,默認=無 覆蓋字符串分詞化步驟,同時保留預處理和 n-gram 生成步驟。僅當分析器 == “單詞”時才適用。
添加回答
舉報
0/150
提交
取消
