【发布时间】:2017-08-22 23:03:27
【问题描述】:
我需要向量化不同的标记化字符串集,包括标点符号和特殊字符,如 ?,!,#,/,➧,❤,➽ 或 ✓ - 我正在使用 pandas 和 scikit-learn 来完成该任务,但仅使用 CountVectorize 函数矢量化单词并忽略其他字符。我找到了this,但我没有其他字符的列表并且需要所有这些字符。这是我执行该任务的代码:
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 (default u'(?u)\b\w\w+\b') 正则表达式识别标记——默认情况下,由单个字符组成的单词(例如,'a'、'2')被忽略,将 token_pattern 设置为 '(?u)\b\w+\b' 将包含这些标记
【问题讨论】:
标签: python regex pandas scikit-learn vectorization