Python 使用自定义ngram列表创建稀疏矩阵?

Python 使用自定义ngram列表创建稀疏矩阵?,python,sparse-matrix,text-classification,n-gram,Python,Sparse Matrix,Text Classification,N Gram,我试图使用单词包为文本分类创建一个稀疏矩阵,但问题是我的代码基于文本本身创建了ngrams。我有一个自定义的ngram列表,我想为它创建稀疏矩阵。如何在Python中实现这一点? 下面是我编写的代码,它自己使用ngram创建稀疏矩阵: vectorizer = CountVectorizer( analyzer = 'word', lowercase = True, stop_words = 'english', max_features = 85 ) corpus_data_features

我试图使用单词包为文本分类创建一个稀疏矩阵,但问题是我的代码基于文本本身创建了ngrams。我有一个自定义的ngram列表,我想为它创建稀疏矩阵。如何在Python中实现这一点? 下面是我编写的代码,它自己使用ngram创建稀疏矩阵:

vectorizer = CountVectorizer(
analyzer = 'word',
lowercase = True,
stop_words = 'english',
max_features = 85
)
corpus_data_features = vectorizer.fit_transform(train_data.Query.tolist())

看看这个答案的后半部分。我认为这也适用于你的情况。@KRKirov谢谢你的链接。这对我有一定的帮助,但由于我们再次在您提到的代码中指定了ngram_范围,它将从我的词汇表中的bi-gram创建额外的unigram,我不希望这样。你能建议一个解决方法吗?如果我只是使用设置为我的_词汇表的词汇表参数(它有一些单字和双字),transform函数不会给出Bigram的结果,即使它存在于文档中。请发布一个示例,说明您的ngram列表和您希望分析的文本是否存在这些ngram,以便生成稀疏矩阵。几个ngram术语和几个文本行就足够了。