在NLTK和Python中创建自定义分类语料库



我遇到了一些问题,这与Python中的正则表达式和CategorizedPlaintextCorpusReader有关。

我想创建一个自定义分类的语料库,并在其上训练一个朴素贝叶斯分类器。我的问题如下:我想有两个类别,"pos"和"neg"。正文件都在一个目录中,main_dir/pos/*.txt ,负文件在单独的目录中,main_dir/neg/*.txt

如何使用CategorizedPlaintextCorpusReader加载和标记 pos 目录中的所有正文件,并对负文件执行相同的操作?

注意:设置与Movie_reviews语料库(~nltk_datacorporamovie_reviews)完全相同。

这是我问题的答案。由于我正在考虑使用两种情况,我认为最好同时涵盖这两种情况,以防将来有人需要答案。如果您与movie_review语料库具有相同的设置 - 多个文件夹以您希望调用标签的相同方式标记,并且包含您可以使用的训练数据。

reader = CategorizedPlaintextCorpusReader('~/MainFolder/', r'.*.txt', cat_pattern=r'(w+)/*')

我正在考虑的另一种方法是将所有内容放在一个文件夹中,并将文件命名为0_neg.txt、0_pos.txt、1_neg.txt等。读者的代码应如下所示:

reader = CategorizedPlaintextCorpusReader('~/MainFolder/', r'.*.txt', cat_pattern=r'd+_(w+).txt')

我希望这将在未来对某人有所帮助。

最新更新