Skip to content

Commit b5efa93

Browse files
issue #53 update publications list and standardize citation format
1 parent cc94c59 commit b5efa93

1 file changed

Lines changed: 90 additions & 11 deletions

File tree

README.md

Lines changed: 90 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7734906.svg)](https://doi.org/10.5281/zenodo.7734906)
22

33
## What is CyrTranslit?
4+
45
A Python package for bi-directional transliteration of Cyrillic script to Latin script and vice versa.
56

67
By default, transliterates for the Serbian language. A language flag can be set in order to transliterate to and from Belarusian, Bulgarian, Greek, Montenegrin, Macedonian, Mongolian, Russian, Serbian, Tajik, and Ukrainian.
@@ -10,9 +11,11 @@ By default, transliterates for the Serbian language. A language flag can be set
1011
**Note:** Development of v1.2.0 is ongoing. Not yet released.
1112

1213
## What is transliteration?
14+
1315
Transliteration is the conversion of a text from one script to another. For instance, a Latin alphabet transliteration of the Serbian phrase _"Мој ховеркрафт је пун јегуља"_ is _"Moj hoverkraft je pun jegulja"_.
1416

1517
## Citation
18+
1619
A citation would be much appreciated if you use CyrTranslit in a research publication:
1720

1821
[Georges Labrèche. (2023). CyrTranslit (v1.1.1). Zenodo. https://doi.org/10.5281/zenodo.7734906](https://doi.org/10.5281/zenodo.7734906)
@@ -36,20 +39,74 @@ BibTex entry:
3639
}
3740
```
3841

39-
## Supporting research
42+
43+
## Advancing research
44+
4045
CyrTranslit is actively used as a reliable tool to advance research! Here's an incomplete list of publications for research projects that have relied on CyrTranslit:
41-
- Ljajić, Adela & Prodanović, Nikola & Medvecki, Darija & Bašaragin, Bojana & Mitrović, Jelena. (2022). "[Topic Modeling Technique on Covid19 Tweets in Serbian](https://www.researchgate.net/publication/364302202_Topic_Modeling_Technique_on_Covid19_Tweets_in_Serbian)," in 12th International Conference on Information Society and Technology (ICIST), Kopaonik, Serbia.
42-
- Mussylmanbay, Meiirgali. (2022). "[Addresses Standardization and Geocoding using Natural Language Processing](https://nur.nu.edu.kz/handle/123456789/6705)," Nazarbayev University, Kazakhstan.
43-
- Jokic, Danka & Stanković, Ranka & Krstev, Cvetana & Šandrih Todorović, Branislava. (2021). "[A Twitter Corpus and Lexicon for Abusive Speech Detection in Serbian](https://drops.dagstuhl.de/opus/volltexte/2021/14549/)," in 3rd Conference on Language, Data and Knowledge (LDK 2021). 10.4230/OASIcs.LDK.2021.13.
44-
- Lakew, Surafel Melaku (2020). "[Thesis Multilingual Neural Machine Translation for Low Resource Languages](https://surafelml.github.io/phd-thesis/)," University of Trento, Italy.
45-
- Filo, Denis. (2020). "[Neuronový strojový překlad pro jazykové páry s malým množstvím trénovacích dat: Low-Resource Neural Machine Translation](https://www.fit.vut.cz/study/thesis/23087/.en)," Brno University of Technology, Brno, Czechia.
46-
- Batanović, Vuk & Nikolic, Bosko. (2019). "[Using Language Technologies to Automate the UNDP Rapid Integrated Assessment Mechanism in Serbian](https://www.researchgate.net/publication/339615659_Using_Language_Technologies_to_Automate_the_UNDP_Rapid_Integrated_Assessment_Mechanism_in_Serbian)," in International Conference on Language Technologies for All: Enabling Linguistic Diversity and Multilingualism Worldwide (LT4All), Paris, France.
47-
- Brown, J. M. M. & Schmidt, Andreas & Wierzba, Marta (Eds.). (2019). "[Of trees and birds: A Festschrift for Gisbert Fanselow](https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/deliver/index/docId/42654/file/of_trees_and_birds.pdf)," Universitätsverlag Potsdam, Potsdam.
48-
- Lakew, Surafel Melaku & Erofeeva, Aliia & Federico, Marcello. (2018). "[Neural Machine Translation into Language Varieties](https://aclanthology.org/W18-6316/)," in 3rd Conference on Machine Translation: Research Papers, Brussels, Belgium.
49-
- Ljajić, Adela & Marovac, Ulfeta. (2018). "[Improving sentiment analysis for twitter data by handling negation rules in the Serbian language](http://www.doiserbia.nb.rs/Article.aspx?ID=1820-02141800013L)," Computer Science and Information Systems. 16. 13-13. 10.2298/CSIS180122013L.
50-
- Жабран, И., Кикоть, А., Гафияк, А., Бородина, Е., & Алёшин, С. (2017). "[Developing Q-Orca site backend using various Python programming language libraries](https://www.moderntechno.de/index.php/meit/article/view/meit07-03-021)," Modern Engineering and Innovative Technologies, 3(07-03), 48–53.
46+
47+
### Text Normalization, Unicode Perturbations & Robustness
48+
49+
- Cooper, Portia, Blanco, Eduardo, and Surdeanu, Mihai. (2025). "[The Lies Characters Tell: Utilizing Large Language Models to Normalize Adversarial Unicode Perturbations](https://aclanthology.org/2025.findings-acl.969.pdf)," *Findings of the Association for Computational Linguistics: ACL 2025*.
50+
51+
- Cooper, Portia, Surdeanu, Mihai, and Blanco, Eduardo. (2023). "[Hiding in Plain Sight: Tweets with Hate Speech Masked by Homoglyphs](https://aclanthology.org/2023.findings-emnlp.192.pdf)," *Findings of the Association for Computational Linguistics: EMNLP 2023*.
52+
53+
54+
### Low-Resource NLP & Machine Translation
55+
56+
- Cvetanović, Aleksa and Tadić, Predrag. (2024). "[Synthetic Dataset Creation and Fine-Tuning of Transformer Models for Question Answering in Serbian](https://arxiv.org/pdf/2404.08617)," arXiv:2404.08617.
57+
58+
- Lakew, Surafel Melaku. (2020). "[Multilingual Neural Machine Translation for Low Resource Languages](https://surafelml.github.io/phd-thesis/)," PhD Thesis, University of Trento.
59+
60+
- Filo, Denis. (2020). "[Neuronový strojový překlad pro jazykové páry s malým množstvím trénovacích dat: Low-Resource Neural Machine Translation](https://www.fit.vut.cz/study/thesis/23087/.en)," Master's Thesis, Brno University of Technology.
61+
62+
- Lakew, Surafel Melaku, Erofeeva, Aliia, and Federico, Marcello. (2018). "[Neural Machine Translation into Language Varieties](https://aclanthology.org/W18-6316/)," *Proceedings of the Third Conference on Machine Translation (WMT 2018)*.
63+
64+
65+
### Serbian Language NLP (Topic Modeling, Sentiment, Lexicons, QA, Abuse Detection)
66+
67+
- Medvecki, Darija, Bašaragin, Bojana, Ljajić, Adela, and Milošević, Nikola. (2024). "[Multilingual transformer and BERTopic for short text topic modeling: The case of Serbian](https://doi.org/10.1007/978-3-031-50755-7_16)," *Lecture Notes in Networks and Systems* 872:159-169, Springer.
68+
69+
- Bogdanović, Miloš, Kocić, Jelena, and Stoimenov, Leonid. (2024). "[SRBerta—A Transformer Language Model for Serbian Cyrillic Legal Texts](https://doi.org/10.3390/info15020074)," *Information* 15(2):74.
70+
71+
- Košprdić, Miloš, Prodanović, Nikola, Ljajić, Adela, Bašaragin, Bojana, and Milošević, Nikola. (2024). "[From Zero to Hero: Harnessing Transformers for Biomedical Named Entity Recognition in Zero- and Few-shot Contexts](https://doi.org/10.1016/j.artmed.2024.102970)," *Artificial Intelligence in Medicine* 157:102970.
72+
73+
- Ljajić, Adela, Prodanović, Nikola, Medvecki, Darija, Bašaragin, Bojana, and Mitrović, Jelena. (2022). "[Uncovering the Reasons Behind COVID-19 Vaccine Hesitancy in Serbia: Sentiment-Based Topic Modeling](https://doi.org/10.2196/42261)," *Journal of Medical Internet Research* 24(11):e42261.
74+
75+
- Ljajić, Adela, Prodanović, Nikola, Medvecki, Darija, Bašaragin, Bojana, and Mitrović, Jelena. (2022). "[Topic Modeling Technique on Covid19 Tweets in Serbian](https://www.researchgate.net/publication/364302202_Topic_Modeling_Technique_on_Covid19_Tweets_in_Serbian)," *Proceedings of the 12th International Conference on Information Society and Technology (ICIST 2022)*.
76+
77+
- Jokic, Danka, Stanković, Ranka, Krstev, Cvetana, and Šandrih Todorović, Branislava. (2021). "[A Twitter Corpus and Lexicon for Abusive Speech Detection in Serbian](https://drops.dagstuhl.de/opus/volltexte/2021/14549/)," *Proceedings of the 3rd Conference on Language, Data and Knowledge (LDK 2021)*.
78+
79+
- Batanović, Vuk and Nikolic, Bosko. (2019). "[Using Language Technologies to Automate the UNDP Rapid Integrated Assessment Mechanism in Serbian](https://www.researchgate.net/publication/339615659_Using_Language_Technologies_to_Automate_the_UNDP_Rapid_Integrated_Assessment_Mechanism_in_Serbian)," *Proceedings of the Conference on Language Technologies for All (LT4All)*.
80+
81+
- Ljajić, Adela and Marovac, Ulfeta. (2018). "[Improving sentiment analysis for twitter data by handling negation rules in the Serbian language](http://www.doiserbia.nb.rs/Article.aspx?ID=1820-02141800013L)," *Computer Science and Information Systems* 16(1):13-33.
82+
83+
84+
### NLP Applications for Society, Government, and Political Analysis
85+
86+
- Paula, Katrin and Scholz, Nele. (2025). "[Where do regimes rally their supporters? The geographical distribution of pro-government mobilization in Russia from February to April 2022](https://www.sciencedirect.com/science/article/pii/S096262982500068X)," *Political Geography* 116:103277.
87+
88+
89+
### Engineering, Software Systems, and Backend Development
90+
91+
- Alyoshin, S.P., Borodina, E.A., Hafiiak, A.M., Zhabran, I.B., and Kikot, A.S. (2019). "[Developing Q-Orca site backend using various Python programming language libraries](https://reposit.nupp.edu.ua/bitstream/PoltNTU/5811/1/ME%26IT_Part%203_P%2048_March%202019_Aleshin_Borodina_Hafiiak_Zhabran_Kikot%20%28pdf.io%29.pdf)," *Modern Engineering and Innovative Technologies* 3(7-3):48-53.
92+
93+
- Жабран, И., Кикоть, А., Гафияк, А., Бородина, Е., and Алёшин, С. (2017). "[Developing Q-Orca site backend using various Python programming language libraries](https://www.moderntechno.de/index.php/meit/article/view/meit07-03-021)," *Modern Engineering and Innovative Technologies* 3(07-03):48-53.
94+
95+
96+
### Proceedings, Collections, and Meta-Documents
97+
98+
- Anonymous. (2021). "[Complete Volume: Proceedings of the 3rd Conference on Language, Data and Knowledge (LDK 2021)](http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2021/14535/pdf/oasics-vol093-ldk2021-complete.pdf)," *OASIcs* Vol. 93.
99+
100+
- Brown, J. M. M., Schmidt, Andreas, and Wierzba, Marta (Eds.). (2019). "[Of trees and birds: A Festschrift for Gisbert Fanselow](https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/deliver/index/docId/42654/file/of_trees_and_birds.pdf)," Universitätsverlag Potsdam.
101+
102+
103+
### Addresses, Geocoding, and NLP
104+
105+
- Mussylmanbay, Meiirgali. (2022). "[Addresses Standardization and Geocoding using Natural Language Processing](https://nur.nu.edu.kz/handle/123456789/6705)," Master's Thesis, Nazarbayev University.
106+
51107

52108
## How do I install this?
109+
53110
CyrTranslit is [hosted in the Python Package Index (PyPI)](https://pypi.python.org/pypi/cyrtranslit) so it can be installed using pip:
54111
```
55112
python3 -m pip install cyrtranslit # latest version
@@ -58,6 +115,7 @@ python3 -m pip install cyrtranslit>=1.2.0 # minimum version
58115
```
59116

60117
## What languages are supported?
118+
61119
CyrTranslit currently supports bi-directional transliteration of Belarusian, Bulgarian, Greek, Montenegrin, Macedonian, Mongolian, Russian, Serbian, Tajik, and Ukrainian.
62120

63121
Language codes are based on ISO 639-1 standards. For Serbian, both `sr` (ISO 639-1 language code) and `rs` (ISO 3166-1 country code) are accepted:
@@ -66,11 +124,15 @@ Language codes are based on ISO 639-1 standards. For Serbian, both `sr` (ISO 639
66124
>>> cyrtranslit.supported()
67125
['bg', 'by', 'el', 'me', 'mk', 'mn', 'rs', 'ru', 'sr', 'tj', 'ua']
68126
```
127+
69128
## How do I use this?
129+
70130
CyrTranslit can be used both programatically and via command line interface.
71131

72132
### Programmatically
133+
73134
#### Belarusian
135+
74136
```python
75137
>>> import cyrtranslit
76138
>>> cyrtranslit.to_latin("Прывітанне, свет!", "by")
@@ -80,6 +142,7 @@ CyrTranslit can be used both programatically and via command line interface.
80142
```
81143

82144
#### Bulgarian
145+
83146
```python
84147
>>> import cyrtranslit
85148
>>> cyrtranslit.to_latin("Съединението прави силата!", "bg")
@@ -89,6 +152,7 @@ CyrTranslit can be used both programatically and via command line interface.
89152
```
90153

91154
#### Greek
155+
92156
```python
93157
>>> import cyrtranslit
94158
>>> cyrtranslit.to_latin("Το χόβερκραφτ μου είναι γεμάτο χέλια", "el")
@@ -98,6 +162,7 @@ CyrTranslit can be used both programatically and via command line interface.
98162
```
99163

100164
#### Montenegrin
165+
101166
```python
102167
>>> import cyrtranslit
103168
>>> cyrtranslit.to_latin("Република", "me")
@@ -107,6 +172,7 @@ CyrTranslit can be used both programatically and via command line interface.
107172
```
108173

109174
#### Macedonian
175+
110176
```python
111177
>>> import cyrtranslit
112178
>>> cyrtranslit.to_latin("Моето летачко возило е полно со јагули", "mk")
@@ -116,6 +182,7 @@ CyrTranslit can be used both programatically and via command line interface.
116182
```
117183

118184
#### Mongolian
185+
119186
```python
120187
>>> import cyrtranslit
121188
>>> cyrtranslit.to_latin("Амрагаа Сүнжидмаагаа гэсээр ирлээ дээ хө-хө-хө", "mn")
@@ -125,6 +192,7 @@ CyrTranslit can be used both programatically and via command line interface.
125192
```
126193

127194
#### Russian
195+
128196
```python
129197
>>> import cyrtranslit
130198
>>> cyrtranslit.to_latin("Моё судно на воздушной подушке полно угрей", "ru")
@@ -134,6 +202,7 @@ CyrTranslit can be used both programatically and via command line interface.
134202
```
135203

136204
#### Serbian
205+
137206
```python
138207
>>> import cyrtranslit
139208
>>> cyrtranslit.to_latin("Мој ховеркрафт је пун јегуља")
@@ -143,6 +212,7 @@ CyrTranslit can be used both programatically and via command line interface.
143212
```
144213

145214
#### Tajik
215+
146216
```python
147217
>>> import cyrtranslit
148218
>>> cyrtranslit.to_latin("Ман мактуб навишта истодам", "tj")
@@ -152,6 +222,7 @@ CyrTranslit can be used both programatically and via command line interface.
152222
```
153223

154224
#### Ukrainian
225+
155226
```python
156227
>>> import cyrtranslit
157228
>>> cyrtranslit.to_latin("Під лежачий камінь вода не тече", "ua")
@@ -188,6 +259,7 @@ CyrTranslit supports Cyrillic characters with grave accents used in Macedonian a
188259
#### Usage Examples
189260

190261
**Default behavior (accents stripped):**
262+
191263
```python
192264
>>> import cyrtranslit
193265
>>> cyrtranslit.to_latin("ѝ је", "mk")
@@ -199,6 +271,7 @@ CyrTranslit supports Cyrillic characters with grave accents used in Macedonian a
199271
```
200272

201273
**With accents preserved:**
274+
202275
```python
203276
>>> import cyrtranslit
204277
>>> cyrtranslit.to_latin("ѝ је", "mk", preserve_accents=True)
@@ -212,6 +285,7 @@ CyrTranslit supports Cyrillic characters with grave accents used in Macedonian a
212285
```
213286

214287
**Command-line usage:**
288+
215289
```bash
216290
# Default (accents stripped)
217291
$ echo "ѝ је" | cyrtranslit -l mk
@@ -223,6 +297,7 @@ $ echo "ѝ је" | cyrtranslit -l mk --preserve-accents
223297
```
224298

225299
## Command Line Interface
300+
226301
Sample command line call to transliterate a Russian text file:
227302
```bash
228303
$ cyrtranslit -l RU -i tests/ru.txt -o tests/output.txt
@@ -241,6 +316,7 @@ $ echo 'Moj hoverkraft je pun jegulja' | cyrtranslit -l sr
241316
```
242317

243318
### File Encodings
319+
244320
By default, input files are expected to be UTF-8. For files with different encodings, use the `-e/--encoding` parameter:
245321

246322
```bash
@@ -262,6 +338,7 @@ Try CyrTranslit by running it directly on the Python command line interface, e.g
262338

263339

264340
## How can I contribute?
341+
265342
Include support for other Cyrillic script alphabets. Follow these steps in order to do so:
266343

267344
1. Create a new transliteration mapping file in the **[mapping/](https://github.com/opendatakosovo/cyrillic-transliteration/blob/master/cyrtranslit/mapping/)** directory (using the language code as the filename, e.g., `xx.py`) and reference to it in the _**[TRANSLIT\_DICT](https://github.com/opendatakosovo/cyrillic-transliteration/blob/master/cyrtranslit/mapping/__init__.py)**_ dictionary in **mapping/\_\_init\_\_.py**. If the language uses accented characters (like Macedonian and Bulgarian), create separate accented dictionaries (e.g., `XX_CYR_TO_LAT_ACCENTED_DICT`) following the pattern in **[mk.py](https://github.com/opendatakosovo/cyrillic-transliteration/blob/master/cyrtranslit/mapping/mk.py)** or **[bg.py](https://github.com/opendatakosovo/cyrillic-transliteration/blob/master/cyrtranslit/mapping/bg.py)**.
@@ -272,10 +349,12 @@ Include support for other Cyrillic script alphabets. Follow these steps in order
272349
6. List yourself as one of the contributors.
273350

274351
Before tagging a release version and deploying to [PyPI](https://pypi.org/):
352+
275353
1. Update the `version` and `download_url` properties in [setup.py](https://github.com/opendatakosovo/cyrillic-transliteration/blob/master/setup.py).
276354
2. [Reserve a Zenodo DOI](https://cassgvp.github.io/github-for-collaborative-documentation/docs/tut/6-Zenodo-integration.html) for the release and update this readme's Zenodo badge and [citation instructions](https://github.com/opendatakosovo/cyrillic-transliteration#citation).
277355

278356
A big thank you to everyone who contributed:
357+
279358
- Bulgarian 🇧🇬: [@Syndamia](https://github.com/Syndamia) and [@Sparkycz](https://github.com/Sparkycz).
280359
- Russian 🇷🇺: [@ratijas](https://github.com/ratijas) and [@rominf](https://github.com/rominf).
281360
- Tajik 🇹🇯: [@diejani](https://github.com/diejani).

0 commit comments

Comments
 (0)