#python #pandas #export-to-csv #svm #tfidfvectorizer
Вопрос:
У меня есть несколько извлеченных файлов .txt во вложенных папках папки. Имя подпапки-это не что иное, как имя извлеченного файла .pdf, файлы .txt-это файлы, содержащие текст с каждой страницы pdf в отдельном текстовом файле.
Пример:
Извлечено: Файл myFile.pdf, содержащий 10 страниц, поэтому он был извлечен в 10 файлов .txt в следующие папки, Папка вывода —> Папка myFile —>> [Папка csv, папка json, папка txtFiles]
мои целевые 10 текстовых файлов находятся в папке «txtFiles», у меня есть 100 таких PDF-файлов и текстовых файлов в 100 папках
Я сделал это, чтобы классифицировать каждую страницу в pdf-документе, используя линейную модель SVM. Теперь у меня есть классифицированные метки для целевых текстовых файлов, полученных из модели ML.
Здесь я пытаюсь создать файл .csv с именем файла .pdf или именем 2-й папки для каждого файла и записать номер страницы и соответствующую метку прогноза в файл .csv.
filename = []
clfLabel = []
for root, dir, files in os.walk(folderPath):
for name in files:
if name endswith((".txt")):
file = os.sep.join([root, name])
with open(file) as textFile:
text = textFile.read()
cleanText = preprocessText(text)
cleanText = [cleanText]
tfidfText = loaded_vectorizer.transform(cleanText)
predicted = svcModelpkl.predict(tfidfText)
prediction = encoder.inverse_transform(predicted)
filename.append(name)
clfLabel.append(prediction)
fileName = pd.DataFrame(filename)
clfLabel = pd.Dataframe(clfLabel)
data = pd.concat(["fileName", "clfLabel"], axis = 1, ignore = index, sort = False)
data.columns = ["fileName", "clfLabel"]
data.to_csv(name ".csv")
здесь я хочу создать отдельный файл .csv для каждого pdf-файла или папки с одинаковым именем с номерами страниц и их прогнозами
в файле myfile.pdf 10 страниц, в другом файле.pdf 15 страниц
Мой файл.csv
pageNum | ДокЛейка |
---|---|
1 | Doc_A |
2 | Doc_B |
3 | Doc_C |
4 | Doc_A |
5 | Doc_C |
6 | Doc_B |
7 | Doc_D |
8 | Doc_C |
9 | Doc_A |
10 | Doc_D |
другой файл.csv и т. Д….
Я новичок в python, пожалуйста, помогите мне в этом
Комментарии:
1. В чем на самом деле проблема? Вы упомянули, что вы пытаетесь сделать, но не упомянули реальное место, где вы застряли. В конечном счете, выполнение нескольких операций чтения -> многократной записи по сути то же самое, что выполнение только одного чтения ->> успешная запись и повторение во всех случаях.
2. Я не знаю, как создать csv-файл с именем папки и распечатать textfile_01.txt номер страницы, который является номером в названии 01 и соответствующей метке прогноза
3. Чтобы получить имя папки, вы можете использовать
Path
объект:from pathlib import Path
. Взгляните на эту ссылку: automatetheboringstuff.com/2e/chapter9 в разделе «Получение частей пути к файлу». Затем просмотрите раздел «Запись в файлы» в той же главе, чтобы добавить необходимую вам информацию. На самом деле, если вы новичок в python, я бы настоятельно рекомендовал взглянуть и на другие главы, там есть много хороших вещей.