Noxus09 commited on
Commit
79afa41
·
1 Parent(s): a322b7b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -75
app.py CHANGED
@@ -1,76 +1,77 @@
1
  import gradio as gr
2
-
3
- def auto(name):
4
- class TrieNode:
5
- def __init__(self):
6
- self.children = {}
7
- self.is_end_of_word = False
8
-
9
-
10
- class Autocomplete:
11
- def __init__(self):
12
- self.root = TrieNode()
13
-
14
- def insert(self, word):
15
- node = self.root
16
- for char in word:
17
- if char not in node.children:
18
- node.children[char] = TrieNode()
19
- node = node.children[char]
20
- node.is_end_of_word = True
21
-
22
- def autocomplete(self, prefix):
23
- node = self.root
24
- for char in prefix:
25
- if char not in node.children:
26
- return []
27
- node = node.children[char]
28
- return self._find_completions(node, prefix)
29
-
30
- def _find_completions(self, node, prefix):
31
- completions = []
32
- if node.is_end_of_word:
33
- completions.append(prefix)
34
- for char, child_node in node.children.items():
35
- completions.extend(self._find_completions(child_node, prefix + char))
36
- return completions
37
-
38
-
39
- def load_words_and_numbers_from_file(file_path):
40
- words_and_numbers = []
41
- with open(file_path, "r") as file:
42
- for line in file:
43
- word_or_number = line.strip().lower()
44
- words_and_numbers.append(word_or_number)
45
- return words_and_numbers
46
-
47
-
48
- if __name__ == "__main__":
49
- # Specify the path to the text file containing words and numbers
50
- file_path = "/drugs.txt"
51
-
52
- # Load words and numbers from the file
53
- words_and_numbers = load_words_and_numbers_from_file(file_path)
54
-
55
- # Create an autocomplete system and insert words and numbers
56
- autocomplete_system = Autocomplete()
57
- for item in words_and_numbers:
58
- autocomplete_system.insert(item)
59
-
60
- # Input a prefix for autocomplete suggestions
61
-
62
-
63
- # Get autocomplete suggestions
64
- suggestions = autocomplete_system.autocomplete(name)
65
-
66
-
67
-
68
- # Display suggestions
69
- if suggestions:
70
- return suggestions
71
- else:
72
- return "No suggestions found."
73
-
74
- demo = gr.Interface(fn=auto, inputs="text", outputs="text")
75
-
76
- demo.launch()
 
 
1
  import gradio as gr
2
+ from typing import List
3
+ import string
4
+
5
+ class TrieNode:
6
+ def __init__(self):
7
+ self.children = {}
8
+ self.is_end_of_word = False
9
+
10
+
11
+ class Autocomplete:
12
+ def __init__(self):
13
+ self.root = TrieNode()
14
+
15
+ def insert(self, word):
16
+ node = self.root
17
+ for char in word:
18
+ if char not in node.children:
19
+ node.children[char] = TrieNode()
20
+ node = node.children[char]
21
+ node.is_end_of_word = True
22
+
23
+ def autocomplete(self, prefix):
24
+ node = self.root
25
+ for char in prefix:
26
+ if char not in node.children:
27
+ return []
28
+ node = node.children[char]
29
+ return self._find_completions(node, prefix)
30
+
31
+ def _find_completions(self, node, prefix):
32
+ completions = []
33
+ if node.is_end_of_word:
34
+ completions.append(prefix)
35
+ for char, child_node in node.children.items():
36
+ completions.extend(self._find_completions(child_node, prefix + char))
37
+ return completions
38
+
39
+
40
+ def preprocess_text_file(file_path):
41
+ words_and_numbers = []
42
+ with open(file_path, "r") as file:
43
+ for line in file:
44
+ word_or_number = line.strip().lower()
45
+ words_and_numbers.append(word_or_number)
46
+ return words_and_numbers
47
+
48
+
49
+ def build_autocomplete_system(file_path):
50
+ autocomplete_system = Autocomplete()
51
+ words_and_numbers = preprocess_text_file(file_path)
52
+ for item in words_and_numbers:
53
+ autocomplete_system.insert(item)
54
+ return autocomplete_system
55
+
56
+
57
+ def autocomplete(prefix):
58
+ prefix = prefix.lower() # Convert input to lowercase
59
+ suggestions = autocomplete_system.autocomplete(prefix)
60
+ return suggestions
61
+
62
+ if __name__ == "__main__":
63
+ # Specify the path to the text file containing words and numbers
64
+ file_path = "/drugs.txt"
65
+
66
+ # Build the autocomplete system
67
+ autocomplete_system = build_autocomplete_system(file_path)
68
+
69
+ # Create a Gradio interface
70
+ iface = gr.Interface(
71
+ fn=autocomplete,
72
+ inputs=gr.inputs.Textbox(),
73
+ outputs=gr.outputs.Textbox(),
74
+ live=True,
75
+ capture_session=True,
76
+ )
77
+ iface.launch()