0
私はPythonとNLTKを使って、特定の.txtファイルにサブジェクトを割り当てるための基本的なドキュメント分類子を作成しています。PythonとNLTKによる基本的なテキストの分類
私はPythonの新機能ですので、コードは良くないと思いますが、特に問題があります。私は9つの#idを自動的にテキストファイルにアクセスするように変更しました。なぜなら、それらをすべて手動で追加しようとしていたからです。ただし、ファイルのテキストを含む9つの#_featsリストの代わりに、ファイルの名前のみが含まれます。 #idsには、ファイル名とテキストの両方が含まれています。私は問題がdef_wordfeats(単語)であると思うが、私はそれが何であるか分からない。すべてのヘルプは
import os
from nltk import FreqDist
from nltk.classify import NaiveBayesClassifier
from nltk.corpus import stopwords
stopset = list(set(stopwords.words('english')))
1ids = {}
2ids = {}
3ids = {}
4ids = {}
5ids = {}
6ids = {}
7ids = {}
8ids = {}
9ids = {}
path1 = "/Users/myname/Documents/Data Classifier Files/1/"
for name in os.listdir(path1):
if name[-4:] == '.txt':
f = open(path1 + "/" + name, "r")
1ids[name] = f.read()
f.close()
path2 = "/Users/myname/Documents/Data Classifier Files/2/"
for name in os.listdir(path2):
if name[-4:] == '.txt':
f = open(path2 + "/" + name, "r")
2ids[name] = f.read()
f.close()
path3 = "/Users/myname/Documents/Data Classifier Files/3/"
for name in os.listdir(path3):
if name[-4:] == '.txt':
f = open(path3 + "/" + name, "r")
3ids[name] = f.read()
f.close()
path4 = "/Users/myname/Documents/Data Classifier Files/4/"
for name in os.listdir(path4):
if name[-4:] == '.txt':
f = open(path4 + "/" + name, "r")
4ids[name] = f.read()
f.close()
path5 = "/Users/myname/Documents/Data Classifier Files/5/"
for name in os.listdir(path5):
if name[-4:] == '.txt':
f = open(path5 + "/" + name, "r")
5ids[name] = f.read()
f.close()
path6 = "/Users/myname/Documents/Data Classifier Files/6/"
for name in os.listdir(path6):
if name[-4:] == '.txt':
f = open(path6 + "/" + name, "r")
6ids[name] = f.read()
f.close()
path7 = "/Users/myname/Documents/Data Classifier Files/7/"
for name in os.listdir(path7):
if name[-4:] == '.txt':
f = open(path7 + "/" + name, "r")
7ids[name] = f.read()
f.close()
path8 = "/Users/myname/Documents/Data Classifier Files/8/"
for name in os.listdir(path8):
if name[-4:] == '.txt':
f = open(path8 + "/" + name, "r")
8ids[name] = f.read()
f.close()
path9 = "/Users/myname/Documents/Data Classifier Files/9/"
for name in os.listdir(path9):
if name[-4:] == '.txt':
f = open(path9 + "/" + name, "r")
9ids[name] = f.read()
f.close()
def word_feats(words):
return dict([(word, True) for word in words.split() if word not in stopset])
1_feats = [(word_feats(f), '1') for f in 1ids ]
2_feats = [(word_feats(f), "2") for f in 2ids ]
3_feats = [(word_feats(f), '3') for f in 3ids ]
4_feats = [(word_feats(f), '4') for f in 4ids ]
5_feats = [(word_feats(f), '5') for f in 5ids ]
6_feats = [(word_feats(f), '6') for f in 6ids ]
7_feats = [(word_feats(f), '7') for f in 7ids ]
8_feats = [(word_feats(f), '8') for f in 8ids ]
9_feats = [(word_feats(f), '9') for f in 9ids ]
trainfeats = 1_feats + 2_feats + 3_feats + 4_feats + 5_feats + 6_feats + 7_feats + 8_feats + 9_feats
classifier = NaiveBayesClassifier.train(trainfeats)
print classifier.classify(word_feats(""))