2016-09-26 4 views
1

Я начинающий пользователь и озадачен следующей простой проблемой «петли». У меня есть локальный каталог с x количеством файлов (около 500 файлов .txt). Я хотел бы извлечь соответствующие ключевые слова из каждого уникального файла, используя RAKE для Python. Я просмотрел документацию для RAKE; однако предлагаемый код в учебнике содержит ключевые слова для одного документа. Может кто-нибудь, пожалуйста, объясните мне, как зацикливать X-количество файлов, хранящихся в моем локальном каталоге. Вот код из учебника, и он действительно хорошо подходит для одного документа.Извлечение ключевых слов в Python_RAKE

$git clone https://github.com/zelandiya/RAKE-tutorial 

import rake 
import operator 

rake_object = rake.Rake("SmartStoplist.txt", 5, 3, 4) 

sample_file = open("data/docs/fao_test/w2167e.txt", 'r') 
text = sample_file.read() 
keywords = rake_object.run(text) 
print "Keywords:", keywords 
+0

Вот ссылка на Учебник: https://www.airpair.com/nlp/keyword-extraction-tutorial – Panoid

+0

Вам небезразлично определить, какие ключевые слова пришли из какого документа? –

+0

Да, это должно появиться как список ключевых слов, чтобы я мог идентифицировать как документы, так и ключевые слова. – Panoid

ответ

1

Создать список имен файлов вы хотите процесс:

filenames = [ 
    'data/docs/fao_test/w2167e.txt', 
    'some/other/folder/filename.txt', 
    etc... 
] 

Если вы не хотите, чтобы жёстко всех имен, вы можете использовать glob модуль для сбора имен файлов с помощью подстановочных знаков.

Создать словарь для хранения результатов:

results = {} 

Loop через каждый файл, чтение содержимого и сохранение результатов Rake в словаре, введенный по имени файла:

for filename in filenames: 
    with open(filename, 'r') as fp: 
     results[filename] = rake_object.run(fp.read()) 
+0

Спасибо, это работает очень хорошо! – Panoid

Смежные вопросы