alexkueck commited on
Commit
34aa9d5
1 Parent(s): 48cb8f5

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +34 -0
utils.py CHANGED
@@ -48,6 +48,11 @@ from PIL import Image, ImageDraw, ImageOps, ImageFont
48
  import base64
49
  from tempfile import NamedTemporaryFile
50
 
 
 
 
 
 
51
  from sklearn.feature_extraction.text import TfidfVectorizer
52
  from sklearn.metrics.pairwise import cosine_similarity
53
  import numpy as np
@@ -126,6 +131,35 @@ def is_response_similar(response, threshold=0.7):
126
  return False
127
  return False
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  ##################################################
130
  #RAG Hilfsfunktionen - Dokumenten bearbeiten für Vektorstore
131
  ##################################################
 
48
  import base64
49
  from tempfile import NamedTemporaryFile
50
 
51
+ import nltk
52
+ from nltk.corpus import stopwords
53
+ from nltk.tokenize import word_tokenize
54
+ from nltk.stem import WordNetLemmatizer
55
+
56
  from sklearn.feature_extraction.text import TfidfVectorizer
57
  from sklearn.metrics.pairwise import cosine_similarity
58
  import numpy as np
 
131
  return False
132
  return False
133
 
134
+
135
+ ##################################################
136
+ #Normalisierung eines Prompts
137
+ ##################################################
138
+ def prompt_normalise (prompt):
139
+ #alles Kleinbuchstaben
140
+ prompt_klein =prompt.lower()
141
+ #Word Tokenisation
142
+ tokens = word_tokenize(prompt_klein)
143
+ #Punktuierung entfernen
144
+ tokens = [word for word in tokens if word.isalnum()]
145
+ # Stop Word Entfernung
146
+ nltk.download('stopwords')
147
+ stop_words = set(stopwords.words('english'))
148
+ tokens = [word for word in tokens if not word in stop_words]
149
+ # 5. Lemmatization - worte gruppieren, die ähnlich sind
150
+ nltk.download('wordnet')
151
+ lemmatizer = WordNetLemmatizer()
152
+ tokens = [lemmatizer.lemmatize(word) for word in tokens]
153
+ # 6. Handling Special Characters (Remove non-alphanumeric characters)
154
+ tokens = [re.sub(r'\W+', '', word) for word in tokens]
155
+ # 7. Spell Check (optional, using a library like pyspellchecker)
156
+ # from spellchecker import SpellChecker
157
+ # spell = SpellChecker()
158
+ # tokens = [spell.correction(word) for word in tokens]
159
+ # Join tokens back to sentence
160
+ normalized_prompt = ' '.join(tokens)
161
+ return normalized_prompt
162
+
163
  ##################################################
164
  #RAG Hilfsfunktionen - Dokumenten bearbeiten für Vektorstore
165
  ##################################################