Попытка установить корпус для countVectorizer в пакете sklearn - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь загрузить корпус из моего локального диска в python одновременно с помощью для l oop, а затем прочитать каждый текстовый файл и сохранить его для анализа с помощью countVectorizer. Но я получаю только последний файл. Как получить результаты всех файлов, которые будут сохранены для анализа с помощью countVectorizer?

Этот код выводит текст из последнего файла в папке.

folder_path = "folder"

#import and read all files in animal_corpus
for filename in glob.glob(os.path.join(folder_path, '*.txt')):
    with open(filename, 'r') as f: 
        txt = f.read()
        print(txt)
MyList= [txt]

## Create a CountVectorizer object that you can use
MyCV1 = CountVectorizer()
## Call your MyCV1 on the data
DTM1 = MyCV1.fit_transform(MyList)
## get col names
ColNames=MyCV1.get_feature_names()
print(ColNames)

## convert DTM to DF

MyDF1 = pd.DataFrame(DTM1.toarray(), columns=ColNames)
print(MyDF1)

Этот код работает, но не будет работать для огромного корпуса, для которого я его готовлю.

#import and read text files 
f1 = open("folder/animal_1.txt",'r')
f1r = f1.read()
f2 = open("/folder/animal_2.txt",'r')
f2r = f2.read()
f3 = open("/folder/animal_3.txt",'r')
f3r = f3.read()

#reassemble corpus in python
MyCorpus=[f1r, f2r, f3r]

## Create a CountVectorizer object that you can use
MyCV1 = CountVectorizer()
## Call your MyCV1 on the data
DTM1 = MyCV1.fit_transform(MyCorpus)
## get col names
ColNames=MyCV1.get_feature_names()
print(ColNames)

## convert DTM to DF

MyDF2 = pd.DataFrame(DTM1.toarray(), columns=ColNames)
print(MyDF2)

1 Ответ

0 голосов
/ 08 апреля 2020

Я понял это. Просто надо продолжать шлифовать.

MyCorpus=[]
#import and read all files in animal_corpus
for filename in glob.glob(os.path.join(folder_path, '*.txt')):
    with open(filename, 'r') as f: 
        txt = f.read()
        MyCorpus.append(txt)
...