我尝试使用自己的文档训练语料库。我的文档结构与原始movie_reviews语料库数据的结构相同,因此文件夹'pos'中的1K正文本文件和'neg'文件夹中的1K负文本文件。每个文本文件包含25行推文,这些推文被清理,如:url,用户名,大写字母,删除标点符号。
如何调整此代码以使用我自己的文本数据而不是movie_reviews?
import nltk.classify.util
from nltk.classify import NaiveBayesClassifier
from nltk.corpus import movie_reviews
from collections import defaultdict
import numpy as np
# define the split of % training / % test
SPLIT = 0.8
def word_feats(words):
return dict([(word, True) for word in words])
posids = movie_reviews.fileids('pos')
negids = movie_reviews.fileids('neg')
negfeats = [(word_feats(movie_reviews.words(fileids=[f])), 'neg') for f in negids]
posfeats = [(word_feats(movie_reviews.words(fileids=[f])), 'pos') for f in posids]
cutoff = int(len(posfeats) * SPLIT)
trainfeats = negfeats[:cutoff] + posfeats[:cutoff]
testfeats = negfeats[cutoff:] + posfeats[cutoff:]
print 'Train on %d instances\nTest on %d instances' % (len(trainfeats),len(testfeats))
classifier = NaiveBayesClassifier.train(trainfeats)
print 'Accuracy:', nltk.classify.util.accuracy(classifier, testfeats)
classifier.show_most_informative_features()
答案 0 :(得分:0)
您可以以root用户身份登录,并将目录路径更改为:
console.log('Now you\'ve travelled to: ' + stateData.MA.fullName + "/n" + stateData.MA.motto);
在本文档中,您可以找到使用/usr/local/lib/python2.7/dist-packages/nltk/corpus/__init__.py
加载的已存在的movie_reviews语料库:
LazyCorpusLoader
然后尝试添加类似于此的东西:
movie_reviews = LazyCorpusLoader(
'movie_reviews', CategorizedPlaintextCorpusReader,
r'(?!\.).*\.txt', cat_pattern=r'(neg|pos)/.*')
My_Movie = LazyCorpusLoader(
'My_Movie', CategorizedPlaintextCorpusReader,
r'(?!\.).*\.txt', cat_pattern=r'(neg|pos)/.*')
是您为电影评论创建的名称。
一切都完成后保存并退出。
最后将您的语料库放在My_Movie
目录中,您可以在其中找到nltk
语料库。
尝试执行此操作:
movie_review
希望这会奏效。