Python 用于德语文本分类的带词袋的朴素贝叶斯:语料库中的阅读

Python 用于德语文本分类的带词袋的朴素贝叶斯:语料库中的阅读,python,nltk,naivebayes,Python,Nltk,Naivebayes,我想为德语实现一个朴素贝叶斯分类器。我正在使用NLTK,基本上是从NLTK食谱中复制代码。我已经整理了一些语料库。我有一个包含两个子文件夹的文件夹,分别是neg和pos(比如电影评论语料库)。我用的是一袋文字模型 这就是我处理语料库的方式: def bag_of_words(words): return dict([(word, True) for word in words]) def bag_of_words_not_in_set(words, badwords): ret

我想为德语实现一个朴素贝叶斯分类器。我正在使用NLTK,基本上是从NLTK食谱中复制代码。我已经整理了一些语料库。我有一个包含两个子文件夹的文件夹,分别是neg和pos(比如电影评论语料库)。我用的是一袋文字模型

这就是我处理语料库的方式:

def bag_of_words(words):
    return dict([(word, True) for word in words])

def bag_of_words_not_in_set(words, badwords):
    return bag_of_words(set(words) - set(badwords))

def bag_of_words_without_stopwords(words):
    badwords = stopwords.words("german")
    return bag_of_words_not_in_set(words, badwords)

def label_feats_from_corpus(corp, feature_detector=bag_of_words_without_stopwords):
    label_feats = collections.defaultdict(list)
    for label in corp.categories():
        for fileid in corp.fileids(categories=[label]):
            feats = feature_detector(corp.words(fileids=[fileid]))
            label_feats[label].append(feats)
    return label_feats

def label_feats_from_corpus(corp, feature_detector=bag_of_words_without_stopwords):
    label_feats = collections.defaultdict(list)
    for label in corp.categories():
        for fileid in corp.fileids(categories=[label]):
            print (label + " >> " + fieldid)
            feats = feature_detector(corp.words(fileids=[fileid]))
            print(feats)
            label_feats[label].append(feats)
    return label_feats

reader = CategorizedPlaintextCorpusReader('D:/corpus/', r'.*\.txt', cat_pattern=r'(\w+)/*')
为了

我明白了

这意味着特征选择有效,对吗?(不知道它们是否已经是最好的功能)

在这一点上,我感兴趣的是正确阅读语料库,并正确选择单词袋的特征

感谢您的帮助和反馈

print (label + " >> " + fieldid)
print(feats)
neg >> neg/fdfdg.txt
{'autorisierten': True, 'durchführen': True, 'Sicherheit': True, 'Fachwerkstatt': True, 'Arbeiten': True, 'in': True, 'Lassen': True, 'im': True, 'Interesse': True}
neg >> neg/fdffdf.txt
{'Arbeiten': True, 'Fachkenntnisse': True, 'gekennzeichnet': True, 'Verständnis': True, 'technisches': True, 'erfordern': True, 'Symbol': True}
neg >> neg/fgfdgdgdg.txt
{'Arbeiten': True, 'Spezialwerkzeuge': True, 'notwendig': True}
neg >> neg/fgff.txt
{'aussetzen': True, 'niemals': True, 'Flüssigkeiten': True, 'Regen': True, 'Salzwasser': True, 'Feuchtigkeit': True, 'Nässe': True, 'Batterien': True, ').': True}