我正在学习NLP并学习使用NLTK和scikit-learn进行文本分类。所以我已经将Unigram存在作为一个功能实现在NLTK的movie_review语料库中。现在我正在尝试实施一份研究论文,他们使用了多种功能:
1. N-Gram Features : Unigram : Presence and Count, Bigram : Presence and Count
2. Stylistic Features : POS_Noun, POS_Adverb, POS_Adjective : Ratios No. of spelling errors : Real-valued feature Length of text : Real-valued feature
由于到目前为止我只实现了一个功能,我现在遇到了问题。我可以单独实现上述所有功能,如:
def find_POS_Noun_feature(document):使用POS_Noun作为特征来对文本进行分类def find_ength_of_text_feature(document):使用#characters作为我的特征等等。然后我可以单独训练多个分类器。
但我需要的是如何将所有这些功能集成到一个分类器中?
请帮忙,我在互联网上搜索但找不到合适的解释。
答案 0 :(得分:1)
将所有功能放在一个字典中,无论其来源或类型如何。只需确保功能名称不同,这样您就不会丢失任何密钥。
如果您已经有单独的函数返回具有不同类型功能的词典,您可以合并这样的结果:
all_features = find_unigram_features(document)
all_features.update(find_bigram_features(document))
all_features.update(find_POS_Noun_feature(document))
etc.
如果您有任何返回单个值的函数(不是dict
),您可以通常的方式更新字典。
all_features["doc_length"] = find_Length_of_text_feature(document)
您训练的特征函数将是合并所有这些特征并返回组合字典的函数。