[英]Vectorize string including punctuation and special characters
我需要向量化不同的標記化字符串集,包括標點符號和特殊字符,如 ?,!,#,/,➧,❤,➽ 或 ✓ - 我正在使用 pandas 和 scikit-learn 來完成該任務,但 CountVectorize 函數僅向量化單詞和忽略附加字符。 我找到了這個,但我沒有附加字符的列表,需要所有這些字符。 這是我執行該任務的代碼:
def vectorize (dataframe,column_supplement):
v = CountVectorizer(analyzer = "word", encoding='utf-8', max_features = 5000)
x = v.fit_transform(dataframe['string_tokenized'])
df_result = pd.DataFrame(x.todense(), columns=v.get_feature_names())
instances = df_result.values.tolist()
header = list(df_result)
for i in range(len(header)):
header[i] = column_supplement+header[i]
df = pd.DataFrame.from_records(instances, columns=header)
return df
感謝您的幫助和想法!
PS token_pattern (默認 u'(?u)\\b\\w\\w+\\b') 正則表達式識別標記——默認情況下,由單個字符(例如,'a'、'2')組成的單詞被忽略,設置 token_pattern to '(?u)\\b\\w+\\b' 將包含這些標記
您可能會發現 @Venkatachalam 在此 stackoverflow 問題中提供的已接受答案很有幫助。 Sk Learn CountVectorizer:將表情符號保持為單詞
通過使用token_pattern=r'[^\\s+]'
我們將token_pattern
設置為除一個或多個空格之外的任何字符。
因此,以下項目將被視為令牌:
標點符號序列,如!#$
甚至單個標點符號,如*
或.
特殊字符,如表情符號😅。
單字符字母,例如a
, C
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.