我想用卡方检验从文档中提取关键术语,因此我尝试了以下方法:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_selection import SelectKBest, chi2
Texts=["should schools have uniform","schools discipline","legalize marriage","marriage culture"]
vectorizer = TfidfVectorizer()
term_doc=vectorizer.fit_transform(Texts)
ch2 = SelectKBest(chi2, "all")
X_train = ch2.fit_transform(term_doc)
print (ch2.scores_)
vectorizer.get_feature_names()
但是,我没有标签,当我运行上面的代码时,我得到了:
TypeError: fit() missing 1 required positional argument: 'y'
有没有办法使用卡方检验来提取最重要的单词,而不需要任何标签?
发布于 2018-07-29 01:07:40
卡方统计检验两个变量之间的相关性。因此,在无监督(无标签)问题中,这不是用于特征选择的正确统计数据。
根据删除功能的目标,您可以在TfidfVectorizer中应用一些功能预处理。您可以设置向量化器的阈值,以丢弃非常常见的单词和非常罕见的单词。例如,将向量化器定义为:
TfidfVectorizer(min_df=0.01, max_df=0.9)
将删除不到1%的文档或超过90%的文档中出现的单词。
如果您删除不重要特征的目标是为后续分析显著降低问题的维度,您可能还会发现像TruncatedSVD这样的降维技术非常有用。
https://stackoverflow.com/questions/51571488
复制相似问题