代码之家  ›  专栏  ›  技术社区  ›  SHUBHENDRA KUMAR

如何在必要的预处理后使用nltk文本分析库预测特定文本或文本组

  •  0
  • SHUBHENDRA KUMAR  · 技术社区  · 8 年前

    所有代码都是用python编写的。我有一个python列表,名为“ 语料库 “总共包含2000条评论(+ve和-ve都有评论)。mycode的主要/重要部分是:

    from sklearn.feature_extraction.text import CountVectorizer
    vectorizer = CountVectorizer(max_features=2000, max_df=0.6, min_df=3, stop_words=stopwords.words("english"))
    X = vectorizer.fit_transform(corpus)
    
    from sklearn.feature_extraction.text import TfidfTransformer  
    transformer = TfidfTransformer()
    X = transformer.fit_transform(X)
    
    from sklearn.cross_validation import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=0)
    
    from sklearn.linear_model import LogisticRegression
    logistic_reg = LogisticRegression()
    logistic_reg.fit(X_train, y_train)
    

    现在我想预测一个句子为+ve或-ve('1'或'0')。这句话是

    sample = ["you are a nice person and have a good life"]
    

    我应该如何进行上述预测。(我知道CountVectorizer和TdfidfTransformer的作用是什么,但这有点把我和TdfidfVectorizer搞混了)

    1 回复  |  直到 8 年前
        1
  •  1
  •   outlier    8 年前

    你所取得的成就 CountVectorizer TfidfTranformer 可通过以下方式实现 TfidfVecorizer 单独地

    回答您的问题:

    sample = ["you are a nice person and have a good life"]
    

    这是您要预测的示例数据。这里我在矢量器(CountVectorizer)上使用了变换方法

    Count_sample = vectorizer.transform(sample)
    

    在转换CountVectorier之后,我们必须在transformer(TfidfTranformer)上使用转换方法

    Tfidf_sample = transformer.transform(Count_sample)
    

    完成所有数据转换后,使用 LogisticRegression

    predicted = logistic_reg.predict(Tfidf_sample)
    
    推荐文章