sklearn tfidf矢量器如果存在n gram,则删除n2和n1 gram

2024-03-28 13:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用sklearn的tfidf矢量器来创建文档特征矩阵和特征项列表。你知道吗

我不想重复n-1和n-2克,如果n-gram已经存在的话。即for an example sentence: The quick brown fox jumps over the fence。你知道吗

我想not include术语'fox' and 'brown fox' if 'quick brown fox' exists.

我的假设是,重复标记会导致特征集的人为扩展,并扭曲其他任务(如聚类)的结果。你知道吗


Tags: 文档an列表forexample矢量矩阵特征
1条回答
网友
1楼 · 发布于 2024-03-28 13:20:39

Sklearn的tfidf矢量器包含一个关键字“ngram\u range”,允许您指定n-grams。你也应该考虑使用“停止词”这个关键词。你知道吗

from sklearn.feature_extraction.text import TfidfVectorizer

corpus = ['The quick brown fox jumps over the fence']
vectorizer = TfidfVectorizer(ngram_range=(3, 3), stop_words='english')
X = vectorizer.fit_transform(corpus)

print(vectorizer.get_feature_names())

一般来说,这取决于你的语料库,你是否要选择单图,双图,三叉图等,为了选择,你需要评估你的算法的性能。例如,使用Roc曲线、信息增益、精度等,看看哪个n-gram产生最佳性能。你知道吗

相关问题 更多 >