Pravein26's picture
update app.py
6b29ff7 verified
raw
history blame contribute delete
No virus
1.07 kB
import streamlit as st
import nltk
from nltk.corpus import treebank
from nltk import PCFG, ViterbiParser
nltk.download('punkt')
nltk.download('all')
# Load the treebank dataset
# nltk.download('treebank')
corpus = treebank.parsed_sents()
# Train a PCFG parser
productions = []
for tree in corpus:
productions += tree.productions()
S = nltk.Nonterminal('S')
grammar = nltk.induce_pcfg(S, productions)
# Initialize the parser with the trained grammar
parser = ViterbiParser(grammar)
def evaluate_parser(sentence):
tokens = nltk.word_tokenize(sentence)
parsed_trees = list(parser.parse(tokens))
if parsed_trees:
parsed_tree = parsed_trees[0]
return parsed_tree
else:
return "Failed to parse the sentence."
# Streamlit UI
st.title("PCFG Parser Evaluation")
# Input text box for entering sentences
sentence = st.text_input("Enter a sentence:", "this is a beautiful")
# Button to trigger parsing
if st.button("Parse"):
parsed_tree = evaluate_parser(sentence)
st.write("Parsed Tree:")
st.write(parsed_tree)