如何通过卡方检验计算文档中的关键项



我想用卡方检验从文档中提取关键术语,因此我尝试了以下方法:

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'

有没有什么方法可以在没有任何标签的情况下使用卡方检验来提取最重要的单词?

卡方统计检验两个变量之间的相关性。因此,对于无监督(无标签(问题中的特征选择,这不是正确的统计数据。

根据您删除功能的目标,您可以在TfidfVectorizer中应用一些功能预处理。您可以设置矢量器的阈值,以丢弃非常常见的单词和非常罕见的单词。例如,将矢量器定义为:

TfidfVectorizer(min_df=0.01, max_df=0.9)

将删除出现在少于1%的文档或超过90%的文档中的单词。

如果您删除不重要特征的目标是显著降低问题的维度以供后续分析,那么您也可能会发现像TruncatedVD这样的降维技术很有用。

相关内容

最新更新