amirhofo's picture
Upload files
6534adc verified
from packages import *
from preprocess import *
from tokenizer_training import *
'''
Datasets:
https://huggingface.co/datasets/wikimedia/wikipedia
https://huggingface.co/datasets/RohanAiLab/persian_blog
https://huggingface.co/datasets/MahtaFetrat/HomoRich-G2P-Persian
'''
os.system('cls' if os.name == 'nt' else 'clear')
if os.path.exists("merged_dataset.csv"):
dataset= pd.read_csv("merged_dataset.csv")
else: dataset= preprocess_pipeline_fn()
if os.path.exists("Persian_BPE_Tokenizer_30K.json"):
tokenizer= Tokenizer.from_file("Persian_BPE_Tokenizer_30K.json")
else: tokenizer= tokenizer_training_fn(dataset)
# test
test_texts= ["این یک متن آزمایشی برای بررسی عملکرد توکنایزر است.",
"دیروز به کتابخانه رفتم و کتابی درباره تاریخ ایران باستان خواندم.",
"سلام! چطور می‌توانم به سرعت زبان فارسی را یاد بگیرم؟",
"هوای تهران امروز خیلی گرم و آفتابی است، ولی شب خنک می‌شود."]
for i, text in enumerate(test_texts):
encoded_text= tokenizer.encode(text)
print(10 * "--", f" test {i+1}", 10 * "--")
print("text: ", text)
print("tokens: ", encoded_text.tokens)
print("ids: ", encoded_text.ids)
# print("decoded: ", tokenizer.decode(encoded_text.ids))
tokens = tokenizer.decode_batch([[id] for id in encoded_text.ids])
print("decoded:", ' '.join(tokens))
# evaluation criteria
print(70*"-"), print("evaluation"), print(70*"-")
unk_rate, compression_ratio= evaluation_fn(tokenizer, dataset, 100_000)
print(f"unk rate: {unk_rate}%")
print(f"compression ratio: {compression_ratio}")