我是一名 NTLK/Python 初学者,并设法使用 CategorizedPlaintextCorpusReader 加载了我自己的语料库,但我如何实际训练和使用数据进行文本分类?
>>> from nltk.corpus.reader import CategorizedPlaintextCorpusReader
>>> reader = CategorizedPlaintextCorpusReader('/ebs/category', r'.*\.txt', cat_pattern=r'(.*)\.txt')
>>> len(reader.categories())
234
最佳答案
假设您想要一个具有词袋特征的朴素贝叶斯分类器:
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)))
生成的 clf
的 classify
方法可用于任何 FreqDist
词。
(但请注意:从您的 cap_pattern
看来,您的语料库中的每个文件似乎都有样本和一个类别。请检查这是否真的是您想要的。)
关于python - 使用我自己的语料库在 Python NLTK 中进行类别分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818265/