使用更长的 n-gram
到目前为止,您基于每段文本中的单个词构建了特征。这在机器学习模型中通常很有效,但您可能会担心,只看单个词会忽略大量上下文。为了解决这个问题,建模时可以使用 n-gram,它是将连续的 n 个词组合成的序列。例如:
- bigrams:由两个相邻词组成的序列
- trigrams:由三个相邻词组成的序列
在构建数据集时,您可以通过将 ngram_range 参数指定为元组 (n1, n2) 来自动创建这些特征,其中会包含从 n1 到 n2 范围内的所有 n-gram。
本练习是课程的一部分
Python 中的机器学习特征工程
练习说明
- 从
sklearn.feature_extraction.text导入CountVectorizer。 - 实例化
CountVectorizer,仅考虑 trigrams。 - 将向量化器拟合并在一步中应用到
text_clean列。 - 打印向量化器生成的特征名。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import CountVectorizer
from sklearn.feature_extraction.text import ____
# Instantiate a trigram vectorizer
cv_trigram_vec = CountVectorizer(max_features=100,
stop_words='english',
____)
# Fit and apply trigram vectorizer
cv_trigram = ____(speech_df['text_clean'])
# Print the trigram features
print(cv_trigram_vec.____)