GurgenGulay commited on
Commit
d43ea53
·
verified ·
1 Parent(s): 603416e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -10
app.py CHANGED
@@ -2,42 +2,57 @@ import gradio as gr
2
  from text_analysis import generate_lesson_from_transcript as generate_lesson_from_transcript_logic
3
  from utils import process_large_text
4
  from pdfminer.high_level import extract_text # PDF'den metne dönüştürme
 
 
5
 
6
  def clean_text_for_education(text):
7
- """Metni temizler (örneğin, gereksiz boşlukları kaldırır)"""
8
  return text.strip()
9
 
10
  def pdf_to_text(pdf_path):
11
- """PDF'i metne dönüştürür ve temizler"""
12
- extracted_text = extract_text(pdf_path.name) # .name kullanmak yerine, dosya yolunu alacak şekilde düzelt
13
  cleaned_text = clean_text_for_education(extracted_text) # Metni temizle
14
  return cleaned_text
15
 
 
 
 
 
 
 
16
  def generate_lesson(doc_text=None, pdf_file=None):
17
  try:
18
  if pdf_file:
19
  # PDF dosyasından metni al
20
  doc_text = pdf_to_text(pdf_file)
21
 
22
- # Metni daha uygun hale getir
23
- processed_text = process_large_text(doc_text)
 
 
 
 
 
 
 
24
 
25
- # Eğitim materyali oluştur
26
- generated_text = generate_lesson_from_transcript_logic(processed_text)
27
 
28
  # Eğitim materyali olarak bir dosya oluştur
29
  lesson_file_name = "lesson_output.txt"
30
  with open(lesson_file_name, "w") as file:
31
- file.write(generated_text)
32
 
33
  # Metin ve dosya çıktısı döndürüyoruz
34
- return generated_text, lesson_file_name
35
 
36
  except Exception as e:
37
  return f"Error occurred: {str(e)}", None
38
 
39
  gr.Interface(
40
  fn=generate_lesson,
41
- inputs=[gr.Textbox(label="Input Text"), gr.File(label="Upload PDF")],
42
  outputs=[gr.Textbox(), gr.File()],
43
  ).launch()
 
2
  from text_analysis import generate_lesson_from_transcript as generate_lesson_from_transcript_logic
3
  from utils import process_large_text
4
  from pdfminer.high_level import extract_text # PDF'den metne dönüştürme
5
+ import nltk
6
+ from nltk.tokenize import word_tokenize
7
 
8
  def clean_text_for_education(text):
9
+ """Metni temizler (gereksiz boşluklar vb.)"""
10
  return text.strip()
11
 
12
  def pdf_to_text(pdf_path):
13
+ """PDF'den metne dönüştürür ve temizler"""
14
+ extracted_text = extract_text(pdf_path.name) # .name kullanmak yerine dosya yolunu alacak şekilde düzelt
15
  cleaned_text = clean_text_for_education(extracted_text) # Metni temizle
16
  return cleaned_text
17
 
18
+ def chunk_text(text, max_chunk_size=512):
19
+ """Metni belirli bir uzunluğa (token sayısı) göre parçalara ayırır"""
20
+ tokens = word_tokenize(text)
21
+ chunks = [tokens[i:i + max_chunk_size] for i in range(0, len(tokens), max_chunk_size)]
22
+ return [' '.join(chunk) for chunk in chunks]
23
+
24
  def generate_lesson(doc_text=None, pdf_file=None):
25
  try:
26
  if pdf_file:
27
  # PDF dosyasından metni al
28
  doc_text = pdf_to_text(pdf_file)
29
 
30
+ # Metni parçalara ayır
31
+ text_chunks = chunk_text(doc_text)
32
+
33
+ # Eğitim materyali oluşturmak için her bir parça üzerinde işlem yap
34
+ all_generated_text = []
35
+ for chunk in text_chunks:
36
+ processed_text = process_large_text(chunk)
37
+ generated_text = generate_lesson_from_transcript_logic(processed_text)
38
+ all_generated_text.append(generated_text)
39
 
40
+ # Tüm parçaları birleştir
41
+ final_generated_text = '\n'.join(all_generated_text)
42
 
43
  # Eğitim materyali olarak bir dosya oluştur
44
  lesson_file_name = "lesson_output.txt"
45
  with open(lesson_file_name, "w") as file:
46
+ file.write(final_generated_text)
47
 
48
  # Metin ve dosya çıktısı döndürüyoruz
49
+ return final_generated_text, lesson_file_name
50
 
51
  except Exception as e:
52
  return f"Error occurred: {str(e)}", None
53
 
54
  gr.Interface(
55
  fn=generate_lesson,
56
+ inputs=[gr.Textbox(label="Input Text", max_length=1024), gr.File(label="Upload PDF")],
57
  outputs=[gr.Textbox(), gr.File()],
58
  ).launch()