【问题标题】:Using my own corpus for category classification in Python NLTK在 Python NLTK 中使用我自己的语料库进行类别分类
【发布时间】:2012-02-07 17:59:19
【问题描述】:

我是 NTLK/Python 初学者,并设法使用 CategorizedPlaintextCorpusReader 加载我自己的语料库,但我如何实际训练和使用数据进行文本分类?

>>> from nltk.corpus.reader import CategorizedPlaintextCorpusReader
>>> reader = CategorizedPlaintextCorpusReader('/ebs/category', r'.*\.txt', cat_pattern=r'(.*)\.txt')
>>> len(reader.categories())
234

【问题讨论】:

标签: python nlp machine-learning nltk corpus


【解决方案1】:

假设您想要一个具有词袋特征的朴素贝叶斯分类器:

from nltk import FreqDist
from nltk.classify.naivebayes import NaiveBayesClassifier

def make_training_data(rdr):
    for c in rdr.categories():
        for f in rdr.fileids(c):
            yield FreqDist(rdr.words(fileids=[f])), c

clf = NaiveBayesClassifier.train(list(make_training_data(reader)))

生成的clfclassify 方法可用于任何FreqDist 字词。

(但请注意:从您的cap_pattern 看来,您的语料库中的每个文件都有样本一个类别。请检查这是否真的是您想要的。)

【讨论】:

    猜你喜欢
    • 2015-05-30
    • 2014-02-02
    • 1970-01-01
    • 2018-04-07
    • 2015-07-03
    • 1970-01-01
    • 2012-05-14
    • 2018-04-22
    • 1970-01-01
    相关资源
    最近更新 更多