Python 多功能集

Python 多功能集,python,nlp,nltk,feature-extraction,text-classification,Python,Nlp,Nltk,Feature Extraction,Text Classification,我正在学习NLP,并学习使用NLTK和scikit学习进行文本分类。因此,我在NLTK的电影评论语料库中实现了Unigram presence功能。现在,我正在尝试实施一篇研究论文,其中他们使用了多种功能: 1. N-Gram Features : Unigram : Presence and Count, Bigram : Presence and Count 2. Stylistic Features : POS_Noun, POS_Adverb, POS_Adjective : Ratio

我正在学习NLP,并学习使用NLTK和scikit学习进行文本分类。因此,我在NLTK的电影评论语料库中实现了Unigram presence功能。现在,我正在尝试实施一篇研究论文,其中他们使用了多种功能:

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_NONU_功能(文档):使用POS_NONU作为功能对文本进行分类def find_text_功能(文档):使用#字符作为我的功能等。然后我可以分别训练多个分类器

但我需要的是如何将所有这些特性集成到单个分类器中


请帮忙,我在互联网上搜索过,但找不到合适的解释。

将所有功能放在一本词典中,无论其来源或类型如何。只需确保功能名称是不同的,这样就不会丢失任何键

如果已经有单独的函数返回具有不同类型功能的词典,则可以如下方式合并结果:

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)

您培训的功能函数将合并所有这些功能并返回组合字典。

那么,您的功能函数返回什么?每个数据点一个1-D阵列?如果是这样,您需要连接所有功能函数的返回值。我的功能函数返回一个字典。我输入nltk.classify.scikitlearn分类器的带标签的数据集是一个元组列表,其中一个部分是dicitonary,第二个是category。因此,对于单图存在:[({w1:True,w2:False…},'pos'),({w1:False,w2:True…},'neg')…]。对于bigrams和POS_名词、文本长度等也一样。这样的所有特征都能输入nltk分类器吗?这就是它的用途。使用它的方式与使用较小词典的方式相同。