Spaces:
Sleeping
Sleeping
import gradio as gr | |
def auto(name): | |
class TrieNode: | |
def __init__(self): | |
self.children = {} | |
self.is_end_of_word = False | |
class Autocomplete: | |
def __init__(self): | |
self.root = TrieNode() | |
def insert(self, word): | |
node = self.root | |
for char in word: | |
if char not in node.children: | |
node.children[char] = TrieNode() | |
node = node.children[char] | |
node.is_end_of_word = True | |
def autocomplete(self, prefix): | |
node = self.root | |
for char in prefix: | |
if char not in node.children: | |
return [] | |
node = node.children[char] | |
return self._find_completions(node, prefix) | |
def _find_completions(self, node, prefix): | |
completions = [] | |
if node.is_end_of_word: | |
completions.append(prefix) | |
for char, child_node in node.children.items(): | |
completions.extend(self._find_completions(child_node, prefix + char)) | |
return completions | |
def load_words_and_numbers_from_file(file_path): | |
words_and_numbers = [] | |
with open(file_path, "r") as file: | |
for line in file: | |
word_or_number = line.strip().lower() | |
words_and_numbers.append(word_or_number) | |
return words_and_numbers | |
if __name__ == "__main__": | |
# Specify the path to the text file containing words and numbers | |
file_path = "/drugs.txt" | |
# Load words and numbers from the file | |
words_and_numbers = load_words_and_numbers_from_file(file_path) | |
# Create an autocomplete system and insert words and numbers | |
autocomplete_system = Autocomplete() | |
for item in words_and_numbers: | |
autocomplete_system.insert(item) | |
# Input a prefix for autocomplete suggestions | |
# Get autocomplete suggestions | |
suggestions = autocomplete_system.autocomplete(name) | |
# Display suggestions | |
if suggestions: | |
return suggestions | |
else: | |
return "No suggestions found." | |
demo = gr.Interface(fn=auto, inputs="text", outputs="text") | |
demo.launch() |