Scikit learn 如何正确反变换TFIDF矢量器

Scikit learn 如何正确反变换TFIDF矢量器,scikit-learn,tfidfvectorizer,imblearn,Scikit Learn,Tfidfvectorizer,Imblearn,我试图使用以下代码使用IMBRearn对数据进行过采样 def oversample(df): description = df['DESCRIPTION'] labels = df['LABEL'] vec = TfidfVectorizer( norm='l2', lowercase=True, strip_accents=None, encoding='utf-8', preproc

我试图使用以下代码使用IMBRearn对数据进行过采样

def oversample(df):

    description = df['DESCRIPTION']
    labels = df['LABEL']

    vec = TfidfVectorizer(
        norm='l2',
        lowercase=True,
        strip_accents=None,
        encoding='utf-8',
        preprocessor=None,
        token_pattern=r"(?u)\S\S+")
    desc = vec.fit_transform(description)
    encoder = LabelEncoder()
    encoder.fit(labels)
    labels = encoder.transform(labels)
    over = RandomOverSampler(random_state=0)
    X, y = over.fit_resample(desc, labels)
    oversampled_descriptions = vec.inverse_transform(X)
    label = encoder.inverse_transform(y)
然而,我在文本排序方面遇到了一个问题,在我对数据进行逆变换之后,我以错误的顺序得到了文本。 我怎样才能维持相同的订单?

你不能

反_transform()不会重建回文档-它只返回每个文档拥有的以及在拟合过程中提取的n个g。它只能使用存储在词汇表属性中的信息


您可以在重采样之前将描述索引添加到desc,然后使用它们分配过采样描述。

请提供一个输入数据框示例。你得到了什么输出?你期待什么?