Rumah > Soal Jawab > teks badan
P粉2384338622023-08-16 13:13:46
Pilih konsonan dalam setiap kumpulan untuk menjadi "wakil" kumpulan tersebut. Kemudian, bina peta yang mengumpulkan kata-kata supaya ia menjadi serupa apabila konsonan mereka digantikan dengan konsonan wakil mereka.
Nota penting: Kaedah ini hanya berfungsi apabila kumpulan konsonan membentuk kelas kesetaraan. Khususnya, persamaan konsonan mestilah transitif. Jika 'bp'
相似,'bv'
相似,但'pv'
tidak serupa, kaedah ini tidak memberi kesan.
Berikut ialah kod untuk contoh dalam Python saya membenarkan anda menulis kod JavaScript.
f
ialah pemetaan yang memetakan setiap konsonan kepada konsonan perwakilannya d
ialah peta yang memetakan setiap perkataan yang diwakili kepada senarai perkataan dengan perwakilan ini. bigwordlist = '''dolbar dolpar jumaq txindan txintan txintoq txiqbal txiqfun txiqwek txiqyal txinton txonmiq txoqwul txoqxik xumaq'''.splitlines() consonant_groups = '''zs xj pb td kg'''.splitlines() f = {} for g in consonant_groups: for c in g: f[c] = g[0] print(f) # {'z': 'z', 's': 'z', 'x': 'x', 'j': 'x', 'p': 'p', 'b': 'p', 't': 't', 'd': 't', 'k': 'k', 'g': 'k'} d = {} for word in bigwordlist: key = ''.join(f.get(c, c) for c in word) d.setdefault(key, []).append(word) print(d) # {'tolpar': ['dolbar', 'dolpar'], 'xumaq': ['jumaq', 'xumaq'], 'txintan': ['txindan', 'txintan'], 'txintoq': ['txintoq'], 'txiqpal': ['txiqbal'], 'txiqfun': ['txiqfun'], 'txiqwek': ['txiqwek'], 'txiqyal': ['txiqyal'], 'txinton': ['txinton'], 'txonmiq': ['txonmiq'], 'txoqwul': ['txoqwul'], 'txoqxik': ['txoqxik']}
Akhir sekali, kita dapat melihat perkataan mana yang serupa:
print([g for g in d.values() if len(g) > 1]) # [['dolbar', 'dolpar'], ['jumaq', 'xumaq'], ['txindan', 'txintan']]