Synteza mowy III: Finał
20.07.2010 - Krzysztof Kercz
akcenty.pyPokaż/ukryj kod źródłowy
O wykrywaniu miejsca sylaby akcentowanej w słowie pisaliśmy w drugiej części cyklu (a dokładniej: tutaj), te rozważania pozwoliły nam stworzyć powyższy moduł. Główna funkcja - akcent(word) - bierze słowo i określa, która sylaba powinna być w nim zaakcentowana. Schemat działania jest prosty. sprawdzamy najpierw (przy pomocy wyrażeń regularnych), czy słowo nie jest czasownikiem w trybie przypuszczającym (np. zrobilibyście - akcent na czwartą sylabę od końca) bądź w czasie przeszłym liczby mnogiej (np. zrobiliście - akcent na trzecią sylabę). Wyrażenie regularne pozwala nam również wychwycić słowa z partykułą -że (np. zróbże). Następnie sprawdzamy, czy słowo nie należy do grupy wyrazów obcych zakończonych na -yka, -ika. Ale w jaki sposób to robimy? Dysponujemy plikiem akcenty.txt z listą takich słów, który sami sobie wygenerowaliśmy przy pomocy Morfologika (funkcja generate_exception_words(morfologik)). Pisaliśmy o tym w poprzedniej części: wybieramy rzeczowniki, których mianownik (base) ma interesującą nas końcówkę. Powiedzmy jeszcze, co dzieje się w liniach 15-24: Morfologik rozróżnia duże i małe litery, więc dla przykładu wszystkie nazwiska będą tam podane dużą literą - pomijamy takie słowa (bo np. Baryka chcielibyśmy zaakcentować normalnie), zostawiając jednak nazwy kontynentów, krajów itp. (1 ocena) |
Copyright © 2008-2010 Wrocławski Portal Informatyczny
design: rafalpolito.com