在scikit-learn或nltk中,分类器通常会考虑词频或TF-IDF。
我想在分类时同时考虑词频和句子结构。我有15个类别的问句,每个类别都有一个包含换行符的句子的文本文件。
“城市”类别包含以下句子:
奥巴马出生在哪个城市?
如果我只考虑词频,那么以下句子可能不会被考虑,因为数据集中没有与查询句子匹配的“奥巴马”或“城市”。
1. 哈利出生在哪个地方? 2. 哈利出生在哪个城市?
有没有一种分类器可以同时考虑词频和句子结构?这样在训练后,它也能对具有相似句子结构的输入查询进行分类。
回答:
你可以同时在ngram和unigram上训练tf-idf。在Scikit Learn中,你可以指定ngram_range
来决定考虑的范围:如果你设置为训练到3-gram,你将存储像“在哪个地方”这样的词组合的频率,这对于问句的类型是很有指示性的。