-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAbbreviations.js
245 lines (242 loc) · 29.4 KB
/
Abbreviations.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
/**
* This script demonstrates how rules should work from the abbreviation spreadsheet: google_ru-RU_Root_Language_.tsv
* https://docs.google.com/spreadsheets/d/1Lo1JcXrQB7SxvNGqdP3VFWcja8IhfBtsLvaNvcj_1co
* TTS Test:
* https://docs.google.com/spreadsheets/d/1R6kM2VhT5IdlkH2yr3Fo0A3LzZSfK5zD5M6dPZ9Dd94
* @customfunction
*/
function Abbreviations(text) {
text = text.replace(/()()Дерябиной/g, 'Деря́бинай'); // row: 2 // Деряби́ной (simplify)
text = text.replace(/()()Либкнехта/g, 'Ли́бкньехта'); // row: 3 // Либкнэ́хта (simplify)
//text = text.replace(/()()(\d+)(К)(-\d+)/g, '$3.кa.$5'); // row: 4 // Prevent TTS from natively expending К to Kalvin
//text = text.replace(/()()(\d+)(Н)(-\d+)/g, '$3.н.$5'); // row: 5 // Prevent TTS from natively expending H to Neuton
//text = text.replace(/()()(\d+)(А)(-\d+)/g, '$3.аа.$5'); // row: 6 // Prevent TTS from natively expending A to amper
text = text.replace(/()()Сивкова/g, 'Сивко́ва'); // row: 7 // Си́вкова (simplify)
text = text.replace(/()()Воровского/g, 'Вар овского'); // row: 8 // Вара́вского
text = text.replace(/()()Лихвинцева/g, 'Льихвьинцева'); // row: 9 // Ле́хвинцева
text = text.replace(/()()[Пп]утепровод/g, 'путеправо́д'); // row: 10 // путепро́вод -> путепроово́д (Росто́кинский путепрово́д)
text = text.replace(/()()Карбышева/g, 'Ка́рбышыва'); // row: 11 // Карбыша́ва (improved pronunciation)
text = text.replace(/()()Одоевский/g, 'Адо́ эвский'); // row: 12 // Одое́вский переулок - not working??? https://youtu.be/-UU8senIuhM - try again now
text = text.replace(/()()обл\./g, 'область'); // row: 13 // обль
text = text.replace(/()()р-н/g, 'район'); // row: 14 // эр эн
text = text.replace(/()()Курчатова/g, 'Курча́атова'); // row: 15 // Ку́рчатова
text = text.replace(/()()Никонова/g, 'Ни́конова'); // row: 16 // Нико́нова
text = text.replace(/()()\bр\./g, 'река'); // row: 17 // эр
//text = text.replace(/()()8 марта/g, 'восьмого марта'); // row: 18 // восемь марта
//text = text.replace(/()()1 мая /g, 'первого мая'); // row: 19 // один мая
text = text.replace(/()()Пастухова/g, 'Пастухо́ва'); // row: 20 // Пасту́хова
text = text.replace(/()()Толмачева/g, 'Толмачо́ва'); // row: 21 // Толма́чева
text = text.replace(/()()Толмачёва/g, 'Толмачо́ва'); // row: 22 // Толма́чева
text = text.replace(/()()Лобачева/g, 'Лобачо́ва'); // row: 23 // Лоба́чева
text = text.replace(/()()Лобачёва/g, 'Лобачо́ва'); // row: 24 // Лоба́чева
text = text.replace(/()()Алабяна/g, 'Алабя́на'); // row: 25 // Ала́бяна
text = text.replace(/()()Вернова/g, 'Верно́ва'); // row: 26 // Ве́рнова
//text = text.replace(/()()Дубна/g, 'Дубна́'); // row: 27 // fixed by Google
text = text.replace(/()()Понтекорво/g, 'Пон текорво'); // row: 28 // Пантекорво
text = text.replace(/()()Кадыкова/g, 'Кады:ко́ва'); // row: 29 // Кады́кова
text = text.replace(/()()Маслюкова/g, 'Масълюко́ва'); // row: 30 // Маслю́кова
text = text.replace(/()()Мархлевского/g, 'Мархле́вскава'); // row: 31 // Махлёвского
text = text.replace(/()()Меньшиковский/g, 'Ме́ньщиковский'); // row: 32 // Меньшико́вский
text = text.replace(/()()Чугуевского/g, 'Чугуйе́вского'); // row: 33 // Чугу́евского
text = text.replace(/()()Мезенцева/g, 'Ме́зенцева'); // row: 34 // Мезе́нцева
text = text.replace(/()()Одоевск/g, 'Адо́ эвск'); // row: 35 // Одоéвское шоссе
text = text.replace(/()()Лежневск/g, 'Ле́жневск'); // row: 36 // Лежне́вская/Лежне́вское
text = text.replace(/()()Бубнова/g, 'Бу́бнава'); // row: 37 // Бубно́ва
text = text.replace(/()()Куконковых/g, 'Куко́нковых'); // row: 38 // Куканко́вых
text = text.replace(/()()Постышева/g, 'По́стышива'); // row: 39 // Постыша́ва
text = text.replace(/()()Ермака/g, 'Ермака́'); // row: 40 // Ерма́ка
text = text.replace(/()()Кохомское/g, 'К о́хамскае:'); // row: 41 // Кахамско́е шоссе
text = text.replace(/()()Багаева/g, 'Бага́эва'); // row: 42 // Багэва
text = text.replace(/()()Красной Армии/g, 'Красной {google:say pause="0.15" /}А́рмии'); // row: 43 // (add pause)
text = text.replace(/()()[Пп]олка/g, 'Полка́'); // row: 44 // По́лка (regexp not working?)
text = text.replace(/()()Страконицкий/g, 'Стракони́цкий'); // row: 45 // СтракОницкий бульвар - we have this
text = text.replace(/()()Рыжкова/g, 'Рыжко́ва'); // row: 46 // улица РЫжкова
text = text.replace(/()()Котловца/g, 'Котлавца́'); // row: 47 // улица КотлОвца.
text = text.replace(/()()Шубиных/g, 'Шу́биных'); // row: 48 // Шуби́ных
text = text.replace(/()()Кожуховск/g, 'Кожу́хавск'); // row: 49 // Ко́жуховскую
text = text.replace(/()()Двинск/g, 'Дви́нск'); // row: 50 // Двинску́ю
text = text.replace(/()()Александровск/g, 'Алекса́ндровск'); // row: 51 // Александро́вскую
text = text.replace(/()()Маштакова/g, 'Маштако́ва'); // row: 52 // Машта́кова
text = text.replace(/()()Войкова/g, ':Войкова'); // row: 53 // Выкова
text = text.replace(/()()Братьев Жабровых/g, 'Братьев Жа́бравых'); // row: 54 // Жабро́вых
text = text.replace(/()()Тишинский/g, 'Тиши́нский'); // row: 55 // Ти́шинский переулок
text = text.replace(/()()Рупасова/g, 'Рупа́сова'); // row: 56 // Ру́пасова
//text = text.replace(/()()Планерн/g, 'Пла́ннирн'); // row: 57 // fixed by Google
text = text.replace(/()()Ростсельмаш/g, 'Рост-сельмаш'); // row: 58 // Росчельмаш
text = text.replace(/()()Болотова/g, 'Бо́латова'); // row: 59 // Боло́това
text = text.replace(/()()Демешковск/g, 'Демешко́вск'); // row: 60 // Деме́шковскую
text = text.replace(/()()Давыдовск/g, 'Давы́дов ск'); // row: 61 // Давыдо́вская/Давыдо́вскую
text = text.replace(/()()Люблинск/g, 'Любли́нск'); // row: 62 // Лю́блинская/Лю́блинскую
text = text.replace(/()()Ядринское/g, 'йа́дринское'); // row: 63 // ядри́нское
text = text.replace(/()()Ловина/g, 'Ло́вина'); // row: 64 // Ловина́
text = text.replace(/()()Косарева/g, ':Ко́сарева'); // row: 65 // Касарева
text = text.replace(/()()Сосневск/g, 'Со́сневск'); // row: 66 // Сосневска́я / Сосне́вскую
text = text.replace(/()()Челышева/g, 'Че́лышева'); // row: 67 // Челыша́ва
text = text.replace(/()()Сарментовой/g, 'Сарме́нтавой'); // row: 68 // Сарменто́вой
text = text.replace(/()()Жиделёва/g, 'Жидельова'); // row: 69 // Жиде́лева
text = text.replace(/()()Кусимовск/g, 'Куси́мовск'); // row: 70 // Кусимо́вский
text = text.replace(/()()Борзова/g, 'Борзо́ва'); // row: 71 // улица маршала бо́рзова
text = text.replace(/()()Меньшениной/g, 'Меньше́ниной'); // row: 72 // Ме́ньшени́ной
text = text.replace(/()()Селигер/g, 'Селиге́р'); // row: 73 // Сели́герскую
text = text.replace(/()()Васильевского острова/g, 'Васи́льевского о́строва'); // row: 74 // Васильёвского острова́
text = text.replace(/()()Волоха/g, 'Во́лоха'); // row: 75 // Воло́ха
text = text.replace(/()()Профи/g, 'Про́фи'); // row: 76 // Профи́
text = text.replace(/()()Огарёва/g, 'Огарьо́ва'); // row: 77 // Ога́рева
text = text.replace(/()()Берша/g, 'Бе́р-ша'); // row: 78 // Берша́
text = text.replace(/()()Тернопольск/g, 'Терно́пальск'); // row: 79 // Тернопо́льскую
text = text.replace(/()()Штахановского/g, 'Штахано́вского'); // row: 80 // Штаха́новского
text = text.replace(/()()В\.\s?О\./g, 'Васи́льевского о́строва'); // row: 81 // abbreviations
text = text.replace(/()()П\.\s?С\./g, 'Петроградской стороны'); // row: 82 // abbreviations
text = text.replace(/()()ЗСД/g, 'За́падный скоростно́й диа́метр'); // row: 83 // abbreviations
text = text.replace(/()()Лапшенкова/g, 'Лапшенко́ва'); // row: 84 // Ла́пшенкова
text = text.replace(/()()Богаткова/g, 'Богатко́ва'); // row: 85 // Бога́ткова
text = text.replace(/()()Кожова/g, 'Кажова'); // row: 86 // Ко́жева
text = text.replace(/()()Беляницы/g, 'Беляни́цы'); // row: 87 // Беля́ницы
text = text.replace(/()()Вараксинский/g, 'Вара́ксинский'); // row: 88 // Варакси́нский
text = text.replace(/()()Козлов/g, 'Козло́в'); // row: 89 // на Ко́злову улицу
text = text.replace(/()()тупик/g, 'тупи́к'); // row: 90 // на ту́пик
text = text.replace(/()()Текучёва/g, 'Текучо́ва'); // row: 91 // Текчева
text = text.replace(/()()Шаранговича/g, 'Шаранго́вича'); // row: 92 // Шара́нговича
text = text.replace(/()()Куйбышев/g, 'Ку́йбышыв'); // row: 93 // Куйбыша́ва, Куйбыша́во
text = text.replace(/()()Кузьмина/g, 'Кузьмина́'); // row: 94 // Кузьми́на
text = text.replace(/()()Баязита/g, ':Баязита'); // row: 95 // на улицу Боязита Бикбая
text = text.replace(/()()Кушнар[её]ва/g, 'Кушнарьо́ва'); // row: 96 // Кушна́рева
text = text.replace(/()()Хрущёва/g, 'Хрущова'); // row: 97 // Хру́щева
text = text.replace(/()()Лобанка/g, 'Лобанка́'); // row: 98 // Лоба́нка
text = text.replace(/()()Обводное/g, 'Обвадно́е'); // row: 99 // Обво́дное
text = text.replace(/()()Обводного/g, 'Обводно́во'); // row: 100 // Обво́дного
text = text.replace(/()()Прошлякова/g, 'Прошляко́ва'); // row: 101 // Прошля́кова
text = text.replace(/()()Транспорт/g, 'Тра́нспорт'); // row: 102 // на Транспртную улицу
text = text.replace(/()()Макаро-/g, 'Макаро '); // row: 103 // Макара́ instead Мака́ро-Петровское
text = text.replace(/()()Карастояновой/g, 'Карастоя́новай'); // row: 104 // Карастояно́вой
text = text.replace(/()()Одоевское/g, 'Одо́эвское'); // row: 105 // wrong: на Одое́вское шоссе
text = text.replace(/()()Одоевскую/g, 'Одо́эвскую'); // row: 106 // wrong: на Одое́вскую улицу
text = text.replace(/()()Blvd/g, 'Boulevard'); // row: 107 // блвд instead Boulevard
text = text.replace(/()()Dr/g, 'Drive'); // row: 108 //
text = text.replace(/()()Степанца/g, 'Степанца́'); // row: 109 // улицу Степа́нца
text = text.replace(/()()Дунина-Марцинкевича/g, 'Ду́нина-Марцинке́вича'); // row: 110 // Дуни́на
text = text.replace(/()()Кнорина/g, 'Кно́рина'); // row: 111 // Кнори́на
text = text.replace(/()()Железня/g, 'Железня́'); // row: 112 // Желе́зня
text = text.replace(/()()Алексин/g, 'Але́ксин'); // row: 113 // Алекси́н
//text = text.replace(/()()на (\d+[AB]*)(, \d+[AB]*)*: на/g, 'номер $3$4: на'); // row: 114 // съезд справа на 0: на М7, шоссе Энтузиастов, Центр
text = text.replace(/()()([АРМН]-?\d+)/g, 'трасса $3'); // row: 115 // wrong say numbers, Р320 say: эр трёхста двадцати, instead эр триста двадцать
text = text.replace(/()()([^\s])\/(\d)/g, '$3;дробь;$4'); // row: 116 // 97/1 say wrong: девяносто семь первых, instead девяносто семь; дробь один
text = text.replace(/()()(\d)к([^\s])/g, '$3;корпус;$4'); // row: 117 // 100к3 = 100;корпус;3
text = text.replace(/()()(\d)([КХ])(-| |$)/g, '$3$4а$5'); // row: 118 // 1К 1Х - Kelvin
text = text.replace(/()()(\d)([АН])(-| |$)/g, '$3;$4$5'); // row: 119 // 1А 1Н - Amper Newton
text = text.replace(/()()(\d)([БВРФ])(-| |$)/g, '$3$4э$5'); // row: 120 // 1Б 1В 1Р 1Ф - Byte Volt Farad
text = text.replace(/()()(\d)([С])(-| |$)/g, '$3э$4$5'); // row: 121 // 1С
text = text.replace(/()()\sна\s+(на|в|к|под|с|от|во|из|по|об|у|о|над|около|при|перед|про|до|без|за|через)\s/g, '; $3 '); // row: 122 // направо на на мост = направо; на мост
text = text.replace(/()()на улицу (.*)/g, 'на улицу: $3'); // row: 123 // improved pronunciation
text = text.replace(/()()\sну\s/g, ' на '); // row: 124 // fix roundabout bug
text = text.replace(/()()(\d)Р(\d)/g, '$3:Р:$4'); // row: 125 // 4Р2 -> 4:Р:2
text = text.replace(/()()\[P\]\$/g, 'Платная парковка'); // row: 126 //
text = text.replace(/()()Ванеева/g, 'Ване́йева'); // row: 127 // say: Ванева
text = text.replace(/()()\bТЦ\b/g, 'торговый центр'); // row: 128 //
text = text.replace(/()()\bТРК\b/g, 'торгово-развлекательный комплекс'); // row: 129 //
text = text.replace(/()()\bРК\b/g, 'развлекательный комплекс'); // row: 130 //
text = text.replace(/()()\bРЦ\b/g, 'развлекательный центр'); // row: 131 //
text = text.replace(/()()\bТК\b/g, 'торговый комплекс'); // row: 132 //
text = text.replace(/()()\bP\b/g, 'парковка'); // row: 133 //
text = text.replace(/()()\bP \(₽\)/g, 'платная парковка'); // row: 134 //
text = text.replace(/()()автостоянка \(₽\)/gi, 'платная автостоянка'); // row: 135 // regex flag: i
text = text.replace(/()()\bТВЦ\b/g, 'торгово-выставочный центр'); // row: 136 //
text = text.replace(/()()Маши/g, 'Ма́ши'); // row: 137 // Маши́ Порываевой
text = text.replace(/()()Чайкиной/g, 'Ча́йкиной'); // row: 138 // Лизы Чайки́ной
text = text.replace(/()()Хоружей/g, 'Хору́жей'); // row: 139 // Веры Хоруже́й
text = text.replace(/()()Мазурова/g, 'Ма́зурова'); // row: 140 // Мазу́рова
text = text.replace(/()()Кохма/g, 'Ко́хма'); // row: 141 // Кохма́
text = text.replace(/()()Казачьи Луга/g, 'Казачьи Лууга́'); // row: 142 // Казачьи Лу́га
text = text.replace(/()()Вересков/g, 'Ве́рескав'); // row: 143 // на Вереско́вую улицу
text = text.replace(/()()Речицкий/g, 'Ре́чицкий'); // row: 144 // Речи́цкий
text = text.replace(/()()\bP \(карман\)/g, 'Парковочный карман'); // row: 145 //
text = text.replace(/()()Жаворонкова/g, 'Жа́варан.кова'); // row: 146 // ЖаворАнкова
text = text.replace(/()()Еремеева/g, 'Ереме́еева'); // row: 147 // Ереме́ва
text = text.replace(/()()Рафиева/g, 'Рафи́ева'); // row: 148 // Ра́фиева
text = text.replace(/()()Жудро/g, 'Жудро́'); // row: 149 // Жу́дра
text = text.replace(/()()Нововиленский/g, 'Новови́линский'); // row: 150 // Нововиле́нский
text = text.replace(/()()Козыревская/g, 'Ко́зыревская'); // row: 151 // Козыре́вская
text = text.replace(/()()Роменская/g, 'Ро́минскаяя'); // row: 152 // Роме́нска
text = text.replace(/()()Кожара/g, 'Ко́жара'); // row: 153 // Кожа́ра
text = text.replace(/()()Берсона/g, 'Бе́рсона'); // row: 154 // Берсо́на
text = text.replace(/()()Шишкова/g, 'Шишко́ва'); // row: 155 // Ши́шкова
text = text.replace(/()()Маши\b/g, 'Ма́ши '); // row: 156 // Маши́
text = text.replace(/()()Жебрунова/g, 'Жебру-но́ва'); // row: 157 // Жебру́нова
text = text.replace(/()()Лукьяновича/g, 'Лукьяно́вича'); // row: 158 // Лукья́новича
text = text.replace(/()()Берута/g, 'Бе́ру-та'); // row: 159 // Беру́та
text = text.replace(/()()Ахтунг/g, 'а́х-тунг'); // row: 160 // ахту́нг
text = text.replace(/()()Полевской/g, 'Полевско́й'); // row: 161 // Полёвской
text = text.replace(/()()Берёзовский/g, 'Берёзэвский'); // row: 162 // Березо́вский - I do not know how to fix it. :-(
text = text.replace(/()()Алабяно/g, 'Алабя́но'); // row: 163 // Ала́бяно-Балтийский тоннель
text = text.replace(/()()(.*)(,|и|по|на|до)\s+(\d+)\s+(([^\s]+\s){0,2})(улица|набережная|дорога|линия|аллея|площадь|просека|автодорога|эстакада|магистраль|дамба|хорда|коса|деревня|переправа|площадка|дорожка|трасса)( |$)/g, '$3$4 $5-я $6$8$9'); // row: 164 // 3 Продольная магистраль -> 3-я Продольная магистраль
text = text.replace(/()()(.*)(,|и|по|на|до)\s+(\d+)\s+(([^\s]+\s){0,2})(проспект|переулок|проезд|тупик|бульвар|тракт|просек|взвоз|спуск|разъезд|переезд|квартал|путепровод|мост|сад|сквер|тоннель|туннель|парк|проток|канал|остров|микрорайон|район|городок|посёлок|поселок|вал|проулок)( |$)/g, '$3$4 $5-й $6$8$9'); // row: 165 // 1 проспект -> 1-й проспект
text = text.replace(/()()(.*)(,|и|по|на|до)\s+(\d+)\s+(([^\s]+\s){0,2})(шоссе|кольцо|село)( |$)/g, '$3$4 $5-е $6$8$9'); // row: 166 // 1 шоссе -> 1-е шоссе
text = text.replace(/()()(\d+)\s(Партсъезда|Съезда|съезда|Спутника|Оврага|\w+ого|\w+ала)( |$)/g, '$3-го $4$5'); // row: 167 // 20 Партсъезда -> 20-го Партсъезда
text = text.replace(/()()(\d+)\s+([^\s]+(?:лка|ель|аза))( |$)/g, '$3-я $4$5'); // row: 168 // 1-я Лесоперевалка, 8-я Щель, 45-я Параллель
text = text.replace(/()()3 Коммунистов/g, 'Трёх Коммунистов'); // row: 169 // Третьих Коммунистов
text = text.replace(/()()Сухоложск/g, 'Сухоло́жск'); // row: 170 // Су́холожская улица
text = text.replace(/()()Вторчермет/g, 'Вто́р-черме́т'); // row: 171 // Втарчермёт
text = text.replace(/()()СКАД/g, 'С[КАД]'); // row: 172 // продолжайте движение 15 минут до СКОД
text = text.replace(/()()(\d)с([^\s])/g, '$3;строение;$4'); // row: 173 // 100с3 = 100;строение;3
text = text.replace(/()()прибытие\s+(к точке|к пункту назначения|к месту:|к)\s+(\d[^\s]*)$/g, 'прибытие к дому номер $4'); // row: 174 // прибытие к пункту назначения 123А -> прибытие к дому номер 123А
text = text.replace(/()()\sдо\s+(на|в|к|под|с|от|во|из|по|об|у|о|над|около|при|перед|про|до|без|за|через)\s/g, '; до поворота $3 '); // row: 175 //
text = text.replace(/()()съезд(.+) на\s+(\d+[AB]*)(, \d+[AB]*)*:/g, 'съезд$3 номер $4$5:'); // row: 176 // -> съезд справа номер 67A: на Трикотажный проезд
text = text.replace(/()()поверните(.+) на\s+(\d+[AB]*)(, \d+[AB]*)*:(.*)/g, 'поверните$3$6 съезд номер $4$5'); // row: 177 // -> поверните направо на Трикотажный проезд; съезд номер 67A
text = text.replace(/()()держитесь(.+) на\s+(\d+[AB]*)(, \d+[AB]*)*:(.+)/g, 'держитесь$3$6 съезд номер $4$5'); // row: 178 // -> держитесь правее на Трикотажный проезд; съезд номер 67A
text = text.replace(/()()продолжайте движение(.+) до\s+(\d+[AB]*)(, \d+[AB]*)*:/g, 'продолжайте движение$3 до съезд номер $4$5:'); // row: 179 // -> продолжайте движение около 20 мин. до съезда номер 67A: на Трикотажный проезд
text = text.replace(/()()на\s+выезд/g, 'в сторону выезда'); // row: 180 //
text = text.replace(/()()Владимир/g, 'Влади́мир'); // row: 181 // до поворота на Владими́р Москву
text = text.replace(/()()(.*)(,|и|по|на|до) ([^,]+\s-\s)/g, '$3$4 автодорога $5'); // row: 182 // Владимир - Москва -> автодорога Владимир - Москва
text = text.replace(/()()(\d+)\s+(([^\s]+\s){0,2})(Дивизии|Бригады|Армии|Интернационал|Пятилетки|Линии|Маевки)( |$)/g, '$3-й $4$6'); // row: 183 // 87-й Гвардейской Дивизии
text = text.replace(/()()(\d+)\s+(([^\s]+\s){0,2})(Ферма|Авеню|Пристань|Рота|Слобода|Пятилетка)( |$)/g, '$3-я $4$6'); // row: 184 // 9-я Рота
text = text.replace(/()()Эриванская улица/g, 'Эрива́нская улица'); // row: 185 //
text = text.replace(/()()(\d+)\s+(Улица|Набережная|Дорога|Линия|Аллея|Площадь|Просека|Автодорога|Эстакада|Магистраль|Дамба|Хорда|Коса|Деревня|Переправа|Площадка|Дорожка|Трасса|Новостройка|Лесоперевалка)( |$)/g, '$3-я $4$5'); // row: 186 // 1 Линия -> 1-я Линия
text = text.replace(/()()(\d+)\s+(Проспект|Переулок|Проезд|Тупик|Бульвар|Тракт|Просек|Взвоз|Спуск|Разъезд|Переезд|Квартал|Путепровод|Мост|Сад|Сквер|Тоннель|Туннель|Парк|Проток|Канал|Остров|Микрорайон|Район|Городок|Посёлок|Поселок|Вал|Проулок|Поляны|Участок|Половины|Поворот)( |$)/g, '$3-й $4$5'); // row: 187 // 1 Проезд -> 1-й Проезд
text = text.replace(/()()Мамина-Сибиряка/g, 'Ма́мина-Сибирика́'); // row: 188 //
text = text.replace(/()()Крауля/g, 'Кра́уля'); // row: 189 //
text = text.replace(/()()Гармашева/g, 'Га́рмашэва'); // row: 190 // Гармаша́ва
text = text.replace(/()()(Проектируемый проезд)\s+(\d+)/g, '$3 № $4'); // row: 191 // Проектируемый проезд №
text = text.replace(/()()Беды/g, 'Беды́'); // row: 192 // улица Леонида Бе́ды
text = text.replace(/()()Нёманская/g, 'Ньо́манская'); // row: 193 // Нема́нская
text = text.replace(/()()Кунцевщина/g, 'Ку́нцевщина'); // row: 194 // Кунцевщи́на
text = text.replace(/()()Казимировская/g, 'Казими́равская'); // row: 195 // Казимировска́я
text = text.replace(/()()Жиновича/g, 'Жино́вича'); // row: 196 // Жина́вича
text = text.replace(/()()Михася Лынькова/g, 'Михася́ Лынько́ва'); // row: 197 // Миха́ся Лы́нькова
text = text.replace(/()()Песина/g, 'Пе́сина'); // row: 198 // Пи́сина
text = text.replace(/()()Воложинская/g, 'Воло́жинская'); // row: 199 // Воложи́нская
text = text.replace(/()()Жебрака/g, 'Жебрака́'); // row: 200 // Жебра́ка
text = text.replace(/()()Зубачёва/g, 'Зубачо́ва'); // row: 201 // переулок Зуба́чева 1-й
text = text.replace(/()()Шамякина/g, 'Шомя́кина'); // row: 202 // улица Ивана Шумяки́на
text = text.replace(/()()Никитина/g, 'Ники́тина'); // row: 203 // Никити́на
text = text.replace(/()()Долгиновский/g, 'Долги́навский'); // row: 204 // Долгино́вский
text = text.replace(/()()Ефросиньи Полоцкой/g, 'Ефроси́ньи́ Полоцкой'); // row: 205 // улица Ефросиньи Полацкой
text = text.replace(/()()Жытневая/g, 'Жи́тнивая'); // row: 206 // Житнева́я
text = text.replace(/()()Бахарова/g, 'Баха́рова'); // row: 207 // Ба́харова
text = text.replace(/()()Пашковская/g, 'Па́шкафская'); // row: 208 // Пашко́вская
text = text.replace(/()()Фатина/g, 'Фа́тина'); // row: 209 // Фати́на
text = text.replace(/()()Гикало/g, 'Гика́ло'); // row: 210 // Ги́кало
text = text.replace(/()()Ратомская/g, 'Ра́тамская'); // row: 211 // Рато́мская
text = text.replace(/()()Павловская/g, 'Па́вловская'); // row: 212 // на Павло́вскую
text = text.replace(/()()Новая Березина/g, 'Новая Березина́'); // row: 213 // Новая Бере́зина
text = text.replace(/()()Габровская/g, 'Га́брав-ская'); // row: 214 // Габро́вская
text = text.replace(/()()Машиностроителей/g, 'Маши́нострои́телей'); // row: 215 // Ма́шиностроителей
text = text.replace(/()()Калиновский/g, 'Кали́навский'); // row: 216 // Калино́вский
text = text.replace(/()()Машиностроения/g, 'Маши́настрое́ния'); // row: 217 // Ма́шинострания
text = text.replace(/()()Старовиленский/g, 'Старови́линский'); // row: 218 // Старовиле́нский
text = text.replace(/()()Кобозева/g, 'Ко́базева'); // row: 219 // Кобо́зава
text = text.replace(/()()Дорошевича/g, 'Дораше́вича'); // row: 220 // Дорошеви́ча
text = text.replace(/()()Уручская/g, ':Уру́тчская'); // row: 221 // ру чи́ская
text = text.replace(/()()Юмашева/g, 'Юма́шива'); // row: 222 // Юмаша́ва
text = text.replace(/()()Цнянская/g, 'Цэня́нская'); // row: 223 // Дня́нска
text = text.replace(/()()Синёва/g, 'Синьо́ва'); // row: 224 // Си́нява
text = text.replace(/()()Машинистов/g, 'Мэшинистов'); // row: 225 // say Ма́шинистов instead Машини́стов
text = text.replace(/()()Червишевский/g, 'Черви́шывский'); // row: 226 // Червише́вский
text = text.replace(/()()Кушелевская/g, 'Ку́шеливская'); // row: 227 // на Кушалевская дорогу
text = text.replace(/()()Матроса Железняка/g, 'МатросаЖелизняка́'); // row: 228 // Желе́зника
text = text.replace(/()()Максидом/g, 'Максидо́м'); // row: 229 // Макси́дом
text = text.replace(/()()Камышовая/g, 'Камэшо́вая'); // row: 230 // Камы́шовая
text = text.replace(/()()Обуховской/g, 'Об-бу́хавской'); // row: 231 // Обухо́вской
text = text.replace(/()()Воткинск/g, 'Во́ткинск'); // row: 232 // поедем по Вотки́нскому шоссе
text = text.replace(/()()\s+ч\s+(\d+)\s+мин\./g, ' ч $3-и минут'); // row: 233 // продолжайте движение около двух часов двадцать минут
return text;
}