Closed AnnaParla closed 1 year ago
The algorithm is this:
- count all country-specific characters - most frequent determines the language
uk/ru
- if the word from Ukrainian list then
uk
- if the word from Russian list then
ru
- if text is shorter than 50 characters then
uk
- if nothing above then external perl library determines language (if not
uk
orru
thenuk
is used)so:
uk
word: Прошуprobably the list of Ukrainian words needs to be reviewed too:
Now it is clearer :) Yes, the ua list needs to be updated. Can I do it in the file? Or is it better for you if I post an updated list here?
Now it is clearer :) Yes, the ua list needs to be updated. Can I do it in the file? Or is it better for you if I post an updated list here?
create a list here, I will insert them into the script
Frequent ua words: і це ще що як який яка яке якого якому дякую спасибі будь ласка (it is one lexeme in ua) добре хвилина хвилин хвилини хвилинку народний ми ви завершити завершуйте продовжити продовжуйте враховувати врахувати враховано врахована враховані врахуйте передати приймати прийнято хотіти хочете перепрошувати перепрошую вибачатися вибачаюся
Try these pls I will look at the result in an hour or so. Must leave the office now.
Pls delete the word спасибо from the ua list! It should be only on the ru list. In ua, it is спасибі (with the country specific character).
Pls delete секунд from the ua list, because it is homographic in ua and ru
@AnnaParla check the following after language identification is regenerated:
[x] 2020 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2020/ParlaMint-UA_2020-01-14-m0.xml#L299-L300 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2020/ParlaMint-UA_2020-03-03-m1.xml#L917 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2020/ParlaMint-UA_2020-09-04-m0.xml#L98
[x] 2019 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2019/ParlaMint-UA_2019-03-19-m0.xml#L98 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2019/ParlaMint-UA_2019-03-22-m0.xml#L1132 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2019/ParlaMint-UA_2019-06-20-m0.xml#L851-L852 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2019/ParlaMint-UA_2019-06-21-m0.xml#L684 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2019/ParlaMint-UA_2019-12-19-m0.xml#L781
[x] 2018 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2018/ParlaMint-UA_2018-02-09-m0.xml#L490 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2018/ParlaMint-UA_2018-03-16-m0.xml#L420
@AnnaParla check the following after language identification is regenerated:
[x] 2013 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2013/ParlaMint-UA_2013-05-14-m0.xml#L769 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2013/ParlaMint-UA_2013-05-22-m0.xml#L933 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2013/ParlaMint-UA_2013-06-18-m0.xml#L536 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2013/ParlaMint-UA_2013-06-18-m0.xml#L544 https://github.com/ufal/ParlaMint-UA/blob/bf2bcf727f4a3a9feb8d118c18d2cf720eb6c605/03t-tei-text-lang/2013/ParlaMint-UA_2013-06-18-m0.xml#L1015
updated uk list
будь ласка ви вибачатися вибачаюся вибачаюсь вибачте враховувати врахувати враховано врахована враховані врахуйте голово голосування добре дякую завершити завершуйте завершив завершила завершую запрошувати запрошую запрошуйте запросити запросив запросила запросили запрошу ми Микола Князевич народний наступний наступна наступне нема немає пане передати перепрошувати перепрошую приймати прийнято продовжити продовжуйте продовжуй спасибі треба хвилина хвилину хвилин хвилини хвилинку хотіти хочете хто хтось цей ця це цього шановний шановна ще що як який яка яке якого якому яку
updated ru list
администрация администрации Александр Александру Балицкий благодарен благодарна благодарить благодарю благодарите большой большое большая большие большим больше Владимир Владимиру вместе внимание внимания вниманием вопрос вопроса вот всех всем второй вторая второе главное главная главного главному говорите господин госпожа действовать действую деятельность деятельности диалог диалоге диалога договариваться Евгений Евгению ее её если есть еще ещё закончить закончу заканчивайте замечание замечания замечаний замечаниями занять здравствуйте здравствуй и из Иван Ивану или Инна Инне Ирина Ирине их им как когда коллега коллеги коллеге коллегам коллеге коллектив коллективу коллектива конечно Мариуполь Матвиенков Матвиенкову Мелитополь меня мне минута минутой Михаил Михаилу надеяться надеюсь надеемся надейтесь народный народных настаивать Наталья Наталье начать Николай Николаю нужен нужна нужно партия партии передать подать подавать подготовиться подготовились подготовтесь поддержать поддержите поддерживаем поддерживать подтвердить пожалуйста политический политическая понимание понимания пониманием последний последнее последнего предлагать предлагаю председатель Председательствующий применять применяю продолжать продолжает прощение прощения работа работу работать Раиса Раисе регионов регионам Сергей Сергею сессия сессии сказать сказал согласно спасибо сразу также Татьяна Татьяне тебя тебе только тратить уважение уважением уверен уверена Украина Украине фракция фракции фракций фракциях хорошо чтение чтении что Юрий Юрию
eg
https://github.com/ufal/ParlaMint-UA/blob/be98f9a2a211d6b006aaf923bbb0f8d21b87e5f3/03t-tei-text-lang/2013/ParlaMint-UA_2013-06-18-m0.xml#L544
did not change because it contains one letter і
which is in uk:
https://github.com/ufal/ParlaMint-UA/blob/defb834c1e698d12aee8152321107d9ecd5ed81b/Scripts/lang-detect.pl#L308
but no ru specific character:
https://github.com/ufal/ParlaMint-UA/blob/defb834c1e698d12aee8152321107d9ecd5ed81b/Scripts/lang-detect.pl#L309
I can skip character checking if there is a long text and no character (but I am unsure what long text is). or expected frequency of characters can be used: https://www.sttmedia.com/characterfrequency-ukrainian
6.23 %(і) + 0.84 %(ї) + 0.39 %(є) + 0.01 %(ґ) = 7.47 %
https://www.sttmedia.com/characterfrequency-russian
2.36 %(ы) + 0.36 %(э) + 0.02 %(ъ) = 2.74%
I can also normalize counting with expected frequency, which will produce more ru
speeches. Currently, I am just comparing what is more often uk / ru character and ignoring the frequency of characters in the languages.
I have found another Russian-specific character ё
with a relative frequency of 0.2%
Suspicious utterance:
https://github.com/ufal/ParlaMint-UA/blob/714e010392fd1e578e3c0777a9a8055275d6ec63/03t-tei-text-lang/2013/ParlaMint-UA_2013-04-16-m0.xml#L905-L908
the second paragraph seems to be in ru
, but it is marked as uk
because of the last word Дякую
I can implement some word counting - how many words from the ru/uk list is in a paragraph, but it is not a very safe method... or I can mark it as ru
if the ru
words predominate (e.g. there are 3-times more Russian words then Ukrainian)
I have found another Russian-specific character
ё
with a relative frequency of 0.2%
It is a good idea to include this character as well, although it is often replaced with e even in authentic ru texts.
Suspicious utterance:
the second paragraph seems to be in
ru
, but it is marked asuk
because of the last wordДякую
I can implement some word counting - how many words from the ru/uk list is in a paragraph, but it is not a very safe method... or I can mark it asru
if theru
words predominate (e.g. there are 3-times more Russian words then Ukrainian)
Mixed language utterances can be a problem and it would be nice to have a clear pattern of their identification, which will be described in the documentation and elsewhere.
Maybe a ratio of language specific characters based on your statistics makes more sense, since frequencies of the words from the lists can vary a lot. Also, many of these words are more likely to be used in short formulaic utterances. I focused on them in particular because there were many mistakes re language identification in short utterances .
On the other hand, characters do not always help either:
The utterance above is in Ukrainian, except for one word тренировочный (in fact, да is more commonly used in this meaning in ru than in uk, but it is not specifically ru).
Out of the utterances above, most problems were solved but:
[ ] It is in ru, the words что работать вместе are on the list, yet it is labeled as uk https://github.com/ufal/ParlaMint-UA/blob/714e010392fd1e578e3c0777a9a8055275d6ec63/03t-tei-text-lang/2012/ParlaMint-UA_2012-12-13-m0.xml#L938
[ ] This one is in ru except for the first two words. https://github.com/ufal/ParlaMint-UA/blob/714e010392fd1e578e3c0777a9a8055275d6ec63/03t-tei-text-lang/2019/ParlaMint-UA_2019-03-19-m0.xml#L98
[ ] This one is absolutely homographic in ru and uk, although the speaker was likely to pronounce it in uk, because he spoke in uk before. Not sure how to handle this one, but it might be informative wrt how the algorithm works.
This one is in Belarussian but we won't label it as be, right?
I am now using Russian-word list for longer paragraphs up to 100 characters
The latest changes solved some problems but created others: (I looked here: https://github.com/ufal/ParlaMint-UA/commit/d91eba8ffa9e2c6160bd3c6221f883650016e5c1)
Out of 19 changes 10 were needed, 4 wrongly switched uk to ru, 5 were half ru / half uk anyway, so it did not matter.
Newly updated lists are below, when you have time.
updated ru list
администрация администрации Александр Александру Балицкий благодарен благодарна благодарить благодарю благодарите большой большое большая большие большим больше Владимир Владимиру вместе внимание внимания вниманием вопрос вопроса вот всех всем второй вторая второе главное главная главного главному говорите господин госпожа действовать действую деятельность деятельности диалог диалоге диалога договариваться Евгений Евгению его ее её если есть еще ещё закончить закончу заканчивайте замечание замечания замечаний замечаниями занять здравствуйте здравствуй и из Иван Ивану или Инна Инне Ирина Ирине их им как когда коллега коллеги коллеге коллегам коллеге коллектив коллективу коллектива конечно Мариуполь Матвиенков Матвиенкову Мелитополь меня мне минута минутой Михаил Михаилу надеяться надеюсь надеемся надейтесь народный народных настаивать Наталья Наталье начать Николай Николаю нужен нужна нужно партия партии передать подать подавать подготовиться подготовились подготовтесь поддержать поддержите поддерживаем поддерживать подтвердить пожалуйста политический политическая понимание понимания пониманием последний последнее последнего предлагать предлагаю председатель Председательствующий применять применяю продолжать продолжает прощение прощения работа работу работать Раиса Раисе регионов регионам Сергей Сергею сессия сессии сказать сказал согласно спасибо сразу также Татьяна Татьяне тебя только тратить уважение уважением уверен уверена Украина Украине фракция фракции фракций фракциях хорошо чтение чтении что Юрий Юрию
updated uk list
будемо будь ласка ви вибачатися вибачаюся вибачаюсь вибачте визначатися визначитися визначайтеся враховувати врахувати враховано врахована враховані врахуйте голово голосування добре дякую завершити завершуйте завершив завершила завершую запрошувати запрошую запрошуйте запрошував запросити запросив запросила запросили запрошу зараз йти йдемо ми Микола Князевич надати народний наступний наступна наступне наступного нема немає пане передати перепрошувати перепрошую поважати поважаю приймати прийнято продовжити продовжуйте продовжуй просимо спасибі треба хвилина хвилину хвилин хвилини хвилинку хвилиночку хотіти хочете хто хтось цей ця це цього шановний шановна ще що як який яка яке якого якому яку
I have added a limitation of 250 characters for making decisions based on uk
-specific words. For longer automatic tool works better...
All the latest changes are right or can be justified, if they are an uk/ru mix, except for three, which should be in uk.
This one even has uk specific characters and no ru specific words or characters. Why is it labeled in ru? https://github.com/ufal/ParlaMint-UA/blob/d31c9320040f5b1d7520d5056c1b201b6b22927c/03t-tei-text-lang/2016/ParlaMint-UA_2016-12-20-m1.xml#L4811
All I can think of from my end is to add some specific words to the uk list (below), but this process can be potentially endless...
How do we establish the accuracy rate of language identification and what percentage is considered good enough for this type of corpora?
newly updated uk list
будемо буде будь ласка ви вибачатися вибачаюся вибачаюсь вибачте визначатися визначитися визначайтеся враховувати врахувати враховано врахована враховані врахуйте голово голосування добре дякую завершити завершуйте завершив завершила завершую запрошувати запрошую запрошуйте запрошував запросити запросив запросила запросили запрошу зараз йти йдемо ми Микола Князевич надати народний наступний наступна наступне наступного нема немає пане передати перепрошувати перепрошую підтвердити підтвердитися поважати поважаю повернення повернутись повернутися повернуться повертаємось повернемся приймати прийнято продовжити продовжуйте продовжуй просимо спасибі тепер треба хвилина хвилину хвилин хвилини хвилинку хвилиночку хотіти хочете хто хтось цей ця це цього шановний шановна ще що як який яка яке якого якому яку
Closing - new issue for code-switching will be opened
ru utterances are sometimes labeled as uk, e.g. seg xml:id="ParlaMint-UA_2012-12-04-m0.u46.p1" xml:lang="uk" Это не внешнее, это облуживание долга. Это процентные выплаты....
Not sure if it is better to comment on them right in the tei files or list them separately.