Views
No views yet
1from transformers import pipeline, AutoTokenizer, BertForTokenClassification
2
3
4def preprocess(text):
5 noktalama_isaretleri = ['!', '?', '.', ',', '-', ':', ';', "'"]
6 new_text = "".join(
7 [char for char in text if char in noktalama_isaretleri or char.isalnum() or char.isspace()])
8 new_text_Pure = "".join([char for char in text if char.isalnum(
9 ) or char.isspace() or char == "'" or char == "-"])
10 new_text_Pure = new_text_Pure.replace("'", " ").replace("-", " ")
11 new_text = new_text_Pure.replace("I", "ı").lower()
12 return new_text
13
14
15def end2end(sent, capitalization_corr, punc_corr):
16
17 p_sent = preprocess(sent)
18
19 r1 = capitalization_corr(p_sent)
20 r2 = punc_corr(p_sent)
21
22 tokenized_sent = tokenizer.tokenize(p_sent)
23
24 final_sent = ''
25
26 i = 0
27
28 while i < len(tokenized_sent):
29 token = tokenized_sent[i]
30 if r1[i]['entity'] == 'one':
31 token = token.capitalize()
32 elif r1[i]['entity'] == 'cap':
33 token = token.upper()
34 while tokenized_sent[i+1].startswith("##"):
35 token += tokenized_sent[i+1][2:].upper()
36 i += 1
37
38 if r2[i]['entity'] != 'non':
39 token += r2[i]['entity']
40
41 if r2[i]['entity'] != "'":
42 token += ' '
43
44 final_sent += token
45 i += 1
46
47 final_sent = final_sent.replace(' ##', '')
48
49 # print(final_sent)
50
51 return final_sent
52
53
54cap_model = BertForTokenClassification.from_pretrained(
55 "ytu-ce-cosmos/turkish-base-bert-capitalization-correction")
56punc_model = BertForTokenClassification.from_pretrained(
57 "ytu-ce-cosmos/turkish-base-bert-punctuation-correction")
58
59tokenizer = AutoTokenizer.from_pretrained(
60 "turkish-base-bert-capitalization-correction")
61
62
63capitalization_corr = pipeline("ner", model=cap_model, tokenizer=tokenizer)
64punc_corr = pipeline("ner", model=punc_model, tokenizer=tokenizer)
65
66# sent = "toplantı saat 9 da başlayacak ancak çoğu kişi gecikebilir"
67
68sent = """
69geçen hafta sonu arkadaşlarımla birlikte kısa bir tatile çıktık cuma akşamı yola çıktık yolculuk oldukça keyifli geçti cumartesi sabahı otele vardık odalarımıza yerleştikten sonra kahvaltıya indik kahvaltıda birçok seçenek vardı omlet simit taze sıkılmış portakal suyu ve çeşitli peynirler kahvaltıdan sonra sahile gitmeye karar verdik deniz çok sakindi ve hava mükemmeldi denizde yüzdük kumda yürüdük ve güneşlendik öğleden sonra şehri gezmeye çıktık tarihi yerleri ziyaret ettik ve bol bol fotoğraf çektik akşam yemeği için meşhur bir restorana gittik deniz ürünleri gerçekten çok tazeydi yemek sonrası otele döndüğümüzde çok yorgunduk ama tatilin ilk günü harika geçmişti pazar sabahı erken kalkıp bir doğa yürüyüşüne çıktık orman içinde yürümek çok huzur vericiydi dönüş yolunda biraz trafik vardı ama bu güzel tatilin ardından hiçbiri moralimizi bozamazdı eve vardığımızda herkes mutlu ve huzurluydu bir sonraki tatili planlamaya başladık bile
70"""
71
72print(end2end(sent, capitalization_corr, punc_corr))
73# Geçen hafta sonu arkadaşlarımla birlikte kısa bir tatile çıktık. Cuma akşamı yola çıktık. Yolculuk oldukça keyifli geçti. Cumartesi sabahı otele vardık. Odalarımıza yerleştikten sonra kahvaltıya indik. Kahvaltıda birçok seçenek vardı; omlet, simit, taze sıkılmış portakal suyu ve çeşitli peynirler. Kahvaltıdan sonra sahile gitmeye karar verdik. Deniz çok sakindi ve hava mükemmeldi. Denizde yüzdük, kumda yürüdük ve güneşlendik. Öğleden sonra şehri gezmeye çıktık. Tarihi yerleri ziyaret ettik ve bol bol fotoğraf çektik. Akşam yemeği için meşhur bir restorana gittik. Deniz ürünleri gerçekten çok tazeydi. Yemek sonrası otele döndüğümüzde çok yorgunduk ama tatilin ilk günü harika geçmişti. Pazar sabahı erken kalkıp bir doğa yürüyüşüne çıktık. Orman içinde yürümek çok huzur vericiydi. Dönüş yolunda biraz trafik vardı ama bu güzel tatilin ardından hiçbiri moralimizi bozamazdı. Eve vardığımızda herkes mutlu ve huzurluydu. Bir sonraki tatili planlamaya başladık bile.
741@inproceedings{saoud2024scaling,
2 title={Scaling BERT Models for Turkish Automatic Punctuation and Capitalization Correction},
3 author={Saoud, Abdulkader and Alomeyr, Mahmut and Amasyali, Mehmet Fatih and Kesgin, Himmet Toprak},
4 booktitle={2024 Innovations in Intelligent Systems and Applications Conference (ASYU)},
5 pages={1--6},
6 year={2024},
7 organization={IEEE}
8}1@article{kesgin2023developing,
2 title={Developing and Evaluating Tiny to Medium-Sized Turkish BERT Models},
3 author={Kesgin, Himmet Toprak and Yuce, Muzaffer Kaan and Amasyali, Mehmet Fatih},
4 journal={arXiv preprint arXiv:2307.14134},
5 year={2023}
6}