文本语义分析与维度降维:从毒性检测到PCA应用
1. 基于TF - IDF的毒性检测挑战
在处理包含5000条评论的数据集时,其中650条被标记为有毒评论。在进行复杂的降维操作之前,我们尝试使用熟悉的TF - IDF向量表示来解决分类问题。以下是创建TF - IDF向量的代码:
from sklearn.feature_extraction.text import TfidfVectorizer
import spacy
nlp = spacy.load("en_core_web_sm")
def spacy_tokenize(sentence):
return [token.text for token in nlp(sentence.lower())]
tfidf_model = TfidfVectorizer(tokenizer=spacy_tokenize)
tfidf_docs = tfidf_model.fit_transform(raw_documents=comments.text).toarray()
print(tfidf_docs.shape)
运行上述代码后,spaCy分词器得到了一个包含19169个单词的词汇表。单词数量几乎是评论数量的4倍,是有毒评论数量的近30倍。这意味着模型对于判断评论是否有毒的单词信息并不充足。常见的朴素贝叶斯分类器在词汇量远大于数据集中标记示例数量时效果不佳,因此我们需要尝试其他方法。
2. 线性判别分析(LDA)分类器
LDA是一种快速且直接的模型,所需样本比复杂算法少。其输入为标记数据,在本
超级会员免费看
订阅专栏 解锁全文
1425

被折叠的 条评论
为什么被折叠?



