Skip to content

Commit 0e3cba3

Browse files
committed
feat: 增加更多难(nàn)的词组,增加了一些姓氏
以及: - 解决「曾经沧/海难/为水」为变成第四声的问题
1 parent e15bc29 commit 0e3cba3

File tree

4 files changed

+91
-32
lines changed

4 files changed

+91
-32
lines changed

Diff for: lib/data/dict2.ts

+62-30
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,6 @@ const DICT2: { [prop: string]: string } = {
229229
只管: 'zhǐ guǎn',
230230
重重: 'chóng chóng',
231231
免得: 'miǎn de',
232-
灾难: 'zāi nàn',
233232
着实: 'zhuó shí',
234233
所得: 'suǒ de',
235234
度假: 'dù jià',
@@ -301,7 +300,6 @@ const DICT2: { [prop: string]: string } = {
301300
地壳: 'dì qiào',
302301
干活: 'gàn huó',
303302
少爷: 'shào ye',
304-
难民: 'nàn mín',
305303
水量: 'shuǐ liàng',
306304
补给: 'bǔ jǐ',
307305
尾巴: 'wěi ba',
@@ -354,9 +352,7 @@ const DICT2: { [prop: string]: string } = {
354352
枕头: 'zhěn tou',
355353
拚命: 'pàn mìng',
356354
社长: 'shè zhǎng',
357-
苦难: 'kǔ nàn',
358355
归还: 'guī huán',
359-
危难: 'wēi nàn',
360356
批量: 'pī liàng',
361357
畜牧: 'xù mù',
362358
点着: 'diǎn zháo',
@@ -583,7 +579,6 @@ const DICT2: { [prop: string]: string } = {
583579
相间: 'xiāng jiàn',
584580
单薄: 'dān bó',
585581
混蛋: 'hún dàn',
586-
发难: 'fā nàn',
587582
贞观: 'zhēn guàn',
588583
附和: 'fù hè',
589584
能耐: 'néng nai',
@@ -613,7 +608,6 @@ const DICT2: { [prop: string]: string } = {
613608
夹攻: 'jiā gōng',
614609
供水: 'gōng shuǐ',
615610
主干: 'zhǔ gàn',
616-
逃难: 'táo nàn',
617611
惩处: 'chéng chǔ',
618612
长相: 'zhǎng xiàng',
619613
公差: 'gōng chāi',
@@ -627,7 +621,6 @@ const DICT2: { [prop: string]: string } = {
627621
纠葛: 'jiū gé',
628622
颠簸: 'diān bǒ',
629623
点中: 'diǎn zhòng',
630-
避难: 'bì nàn',
631624
重创: 'zhòng chuāng',
632625
姥姥: 'lǎo lao',
633626
迷糊: 'mí hu',
@@ -670,7 +663,6 @@ const DICT2: { [prop: string]: string } = {
670663
胆量: 'dǎn liàng',
671664
执着: 'zhí zhuó',
672665
低调: 'dī diào',
673-
责难: 'zé nàn',
674666
闭塞: 'bì sè',
675667
轻薄: 'qīng bó',
676668
得当: 'dé dàng',
@@ -697,7 +689,6 @@ const DICT2: { [prop: string]: string } = {
697689
连累: 'lián lěi',
698690
应得: 'yīng dé',
699691
族长: 'zú zhǎng',
700-
患难: 'huàn nàn',
701692
柜子: 'guì zi',
702693
擂鼓: 'léi gǔ',
703694
眩晕: 'xuàn yùn',
@@ -716,15 +707,13 @@ const DICT2: { [prop: string]: string } = {
716707
古朴: 'gǔ piáo',
717708
打点: 'dǎ dian',
718709
差使: 'chāi shǐ',
719-
磨难: 'mó nàn',
720710
匀称: 'yún chèn',
721711
瘦削: 'shòu xuē',
722712
膏药: 'gāo yao',
723713
吞没: 'tūn mò',
724714
调任: 'diào rèn',
725715
散居: 'sǎn jū',
726716
上头: 'shàng tóu',
727-
大难: 'dà nàn',
728717
风靡: 'fēng mǐ',
729718
放假: 'fàng jià',
730719
估量: 'gū liang',
@@ -753,7 +742,6 @@ const DICT2: { [prop: string]: string } = {
753742
雅致: 'yǎ zhi',
754743
稀薄: 'xī bó',
755744
亏得: 'kuī de',
756-
死难: 'sǐ nàn',
757745
间歇: 'jiàn xiē',
758746
翘首: 'qiáo shǒu',
759747
色调: 'sè diào',
@@ -923,7 +911,6 @@ const DICT2: { [prop: string]: string } = {
923911
自传: 'zì zhuàn',
924912
高调: 'gāo diào',
925913
词曲: 'cí qǔ',
926-
受难: 'shòu nàn',
927914
殷红: 'yān hóng',
928915
要约: 'yāo yuē',
929916
固着: 'gù zhuó',
@@ -939,7 +926,6 @@ const DICT2: { [prop: string]: string } = {
939926
夹角: 'jiā jiǎo',
940927
发髻: 'fà jì',
941928
猛将: 'měng jiàng',
942-
劫难: 'jié nàn',
943929
约摸: 'yuē mo',
944930
拖累: 'tuō lěi',
945931
呢绒: 'ní róng',
@@ -1042,7 +1028,6 @@ const DICT2: { [prop: string]: string } = {
10421028
散曲: 'sǎn qǔ',
10431029
行规: 'háng guī',
10441030
正着: 'zhèng zháo',
1045-
刁难: 'diāo nàn',
10461031
刷子: 'shuā zi',
10471032
丧葬: 'sāng zàng',
10481033
夹带: 'jiā dài',
@@ -1119,7 +1104,6 @@ const DICT2: { [prop: string]: string } = {
11191104
缝合: 'féng hé',
11201105
音量: 'yīn liàng',
11211106
少尉: 'shào wèi',
1122-
殉难: 'xùn nàn',
11231107
冲压: 'chòng yā',
11241108
苍劲: 'cāng jìng',
11251109
厚薄: 'hòu bó',
@@ -1133,7 +1117,6 @@ const DICT2: { [prop: string]: string } = {
11331117
还俗: 'huán sú',
11341118
强横: 'qiáng hèng',
11351119
着数: 'zhāo shù',
1136-
国难: 'guó nàn',
11371120
降顺: 'xiáng shùn',
11381121
挑明: 'tiǎo míng',
11391122
眯缝: 'mī feng',
@@ -1222,12 +1205,10 @@ const DICT2: { [prop: string]: string } = {
12221205
桔梗: 'jié gěng',
12231206
挑逗: 'tiǎo dòu',
12241207
看门: 'kān mén',
1225-
海难: 'hǎi nàn',
12261208
乐歌: 'yuè gē',
12271209
拓片: 'tà piàn',
12281210
挑动: 'tiǎo dòng',
12291211
准将: 'zhǔn jiàng',
1230-
落难: 'luò nàn',
12311212
遒劲: 'qiú jìng',
12321213
磨坊: 'mò fáng',
12331214
逶迤: 'wēi yí',
@@ -1295,7 +1276,6 @@ const DICT2: { [prop: string]: string } = {
12951276
更始: 'gēng shǐ',
12961277
铃铛: 'líng dang',
12971278
披散: 'pī sǎn',
1298-
遭难: 'zāo nàn',
12991279
发还: 'fā huán',
13001280
转轮: 'zhuàn lún',
13011281
横财: 'hèng cái',
@@ -1338,7 +1318,6 @@ const DICT2: { [prop: string]: string } = {
13381318
铺张: 'pū zhāng',
13391319
藤蔓: 'téng wàn',
13401320
薄幸: 'bó xìng',
1341-
非难: 'fēi nàn',
13421321
解数: 'xiè shù',
13431322
褪去: 'tùn qù',
13441323
霰弹: 'xiàn dàn',
@@ -1434,7 +1413,6 @@ const DICT2: { [prop: string]: string } = {
14341413
当差: 'dāng chāi',
14351414
正传: 'zhèng zhuàn',
14361415
并处: 'bìng chǔ',
1437-
空难: 'kōng nàn',
14381416
创面: 'chuāng miàn',
14391417
旦角: 'dàn jué',
14401418
薄礼: 'bó lǐ',
@@ -1448,7 +1426,6 @@ const DICT2: { [prop: string]: string } = {
14481426
闯将: 'chuǎng jiàng',
14491427
几案: 'jī àn',
14501428
姘头: 'pīn tou',
1451-
急难: 'jí nàn',
14521429
差数: 'chā shù',
14531430
散碎: 'sǎn suì',
14541431
壅塞: 'yōng sè',
@@ -1656,7 +1633,6 @@ const DICT2: { [prop: string]: string } = {
16561633
激将: 'jī jiàng',
16571634
更鼓: 'gēng gǔ',
16581635
没药: 'mò yào',
1659-
难友: 'nàn yǒu',
16601636
败兴: 'bài xìng',
16611637
切面: 'qiē miàn',
16621638
散户: 'sǎn hù',
@@ -1753,7 +1729,6 @@ const DICT2: { [prop: string]: string } = {
17531729
打场: 'dǎ cháng',
17541730
云量: 'yún liàng',
17551731
正切: 'zhèng qiē',
1756-
留难: 'liú nàn',
17571732
划拳: 'huá quán',
17581733
划艇: 'huá tǐng',
17591734
评传: 'píng zhuàn',
@@ -1842,7 +1817,6 @@ const DICT2: { [prop: string]: string } = {
18421817
蛤蜊: 'gé lí',
18431818
瓜蔓: 'guā wàn',
18441819
怪相: 'guài xiàng',
1845-
罹难: 'lí nàn',
18461820
临帖: 'lín tiè',
18471821
女红: 'nǚ gōng',
18481822
刨床: 'bào chuáng',
@@ -1925,7 +1899,6 @@ const DICT2: { [prop: string]: string } = {
19251899
大溜: 'dà liù',
19261900
抖搂: 'dǒu lōu',
19271901
飞转: 'fēi zhuàn',
1928-
赴难: 'fù nàn',
19291902
干仗: 'gàn zhàng',
19301903
好胜: 'hào shèng',
19311904
画片: 'huà piān',
@@ -1955,7 +1928,6 @@ const DICT2: { [prop: string]: string } = {
19551928
看押: 'kān yā',
19561929
空转: 'kōng zhuàn',
19571930
量力: 'liàng lì',
1958-
蒙难: 'méng nàn',
19591931
炮烙: 'páo luò',
19601932
赔还: 'péi huán',
19611933
扑扇: 'pū shān',
@@ -1992,7 +1964,6 @@ const DICT2: { [prop: string]: string } = {
19921964
间苗: 'jiàn miáo',
19931965
乐池: 'yuè chí',
19941966
卖相: 'mài xiàng',
1995-
难为: 'nán wéi',
19961967
屏弃: 'bǐng qì',
19971968
铅弹: 'qiān dàn',
19981969
切变: 'qiē biàn',
@@ -2153,7 +2124,7 @@ const DICT2: { [prop: string]: string } = {
21532124
了了: 'liǎo liǎo',
21542125
公了: 'gōng liǎo',
21552126
私了: 'sī liǎo',
2156-
// 一 发音
2127+
// 一字始终为一声的词
21572128
一号: 'yī hào',
21582129
月一: 'yuè yī',
21592130
一一: 'yī yī',
@@ -2177,6 +2148,67 @@ const DICT2: { [prop: string]: string } = {
21772148
一又: 'yī yòu', // 如小数:一又二分之一
21782149
归一: 'guī yī', // 如:归一化、九九归一
21792150
一更: 'yī gēng',
2151+
// TODO: 添加更多为(二声)的词
2152+
为例: 'wéi lì',
2153+
为准: 'wéi zhǔn',
2154+
沧海: 'cāng hǎi', // 加这个词是为了避免匹配成「曾经沧/海难/为水」为变成第四声
2155+
难为: 'nán wéi',
2156+
海难: 'hǎi nàn',
2157+
责难: 'zé nàn',
2158+
患难: 'huàn nàn',
2159+
磨难: 'mó nàn',
2160+
大难: 'dà nàn',
2161+
死难: 'sǐ nàn',
2162+
受难: 'shòu nàn',
2163+
劫难: 'jié nàn',
2164+
刁难: 'diāo nàn',
2165+
殉难: 'xùn nàn',
2166+
国难: 'guó nàn',
2167+
落难: 'luò nàn',
2168+
遭难: 'zāo nàn',
2169+
非难: 'fēi nàn',
2170+
空难: 'kōng nàn',
2171+
急难: 'jí nàn',
2172+
难友: 'nàn yǒu',
2173+
留难: 'liú nàn',
2174+
罹难: 'lí nàn',
2175+
赴难: 'fù nàn',
2176+
蒙难: 'méng nàn',
2177+
灾难: 'zāi nàn',
2178+
难民: 'nàn mín',
2179+
苦难: 'kǔ nàn',
2180+
危难: 'wēi nàn',
2181+
发难: 'fā nàn',
2182+
逃难: 'táo nàn',
2183+
避难: 'bì nàn',
2184+
济难: 'jì nàn',
2185+
矿难: 'kuàng nàn',
2186+
纾难: 'shū nàn',
2187+
被难: 'bèi nàn',
2188+
论难: 'lùn nàn',
2189+
质难: 'zhì nàn',
2190+
蹈难: 'dǎo nàn',
2191+
躲难: 'duǒ nàn',
2192+
辩难: 'biàn nàn',
2193+
造难: 'zào nàn',
2194+
遇难: 'yù nàn',
2195+
问难: 'wèn nàn',
2196+
阻难: 'zǔ nàn',
2197+
难侨: 'nàn qiáo',
2198+
难兄: 'nàn xiōng',
2199+
难属: 'nàn shǔ',
2200+
难弟: 'nàn dì',
2201+
难经: 'nàn jīng',
2202+
难胞: 'nàn bāo',
2203+
八难: 'bā nàn',
2204+
厄难: 'è nàn',
2205+
多难: 'duō nàn',
2206+
安难: 'ān nàn',
2207+
山难: 'shān nàn',
2208+
徇难: 'xùn nàn',
2209+
排难: 'pái nàn',
2210+
攻难: 'gōng nàn',
2211+
木难: 'mù nà',
21802212
};
21812213
export default DICT2;
21822214
export const Pattern2: Pattern[] = Object.keys(DICT2).map((key) => ({

Diff for: lib/data/dict3.ts

+2
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,8 @@ const DICT3: { [prop: string]: string } = {
328328
一更更: 'yì gēng gēng', // 一声声,一更更。
329329
一重山: 'yì chóng shān',
330330
屈戌儿: 'qū qu ér', // https://www.zhihu.com/question/51441924/answer/125861101
331+
难为水: 'nán wéi shuǐ',
332+
难为情: 'nán wéi qíng',
331333
};
332334
export default DICT3;
333335
export const Pattern3: Pattern[] = Object.keys(DICT3).map((key) => ({

Diff for: lib/data/surname.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ const Surnames: { [key: string]: string } = {
6161
东门: 'dōng mén',
6262
西门: 'xī mén',
6363
句龙: 'gōu lóng', // 如宋有句龙如渊,https://baike.baidu.com/item/%E5%8F%A5%E9%BE%99/1160043
64-
毌丘: 'guàn qiū',
64+
毌丘: 'guàn qiū', // 如:三国时期曹魏名将毌丘俭;注意也是一个古地名,在山东省曹县南;要与「毋 wú」姓区分。
6565
: 'zhào',
6666
: 'qián',
6767
: 'sūn',
@@ -475,7 +475,7 @@ const Surnames: { [key: string]: string } = {
475475
: 'yán',
476476
: 'fú',
477477
: 'xiāo',
478-
: 'ōu',
478+
: 'ōu', // https://baike.baidu.com/item/%E5%8C%BA%E5%A7%93/200840
479479
: 'qín',
480480
: 'piáo',
481481
: 'pó', // 如写《定情诗》的汉末诗人繁钦
@@ -489,6 +489,9 @@ const Surnames: { [key: string]: string } = {
489489
: 'shào',
490490
: 'qiè',
491491
: 'sǎ',
492+
: 'nìng', // 如:周代有甯越,现在用作人名时也读四声,比如:张钧甯
493+
: 'lù', // https://baike.baidu.com/item/%E5%85%AD%E5%A7%93/9394114
494+
: 'chuài', // https://baike.baidu.com/item/%E5%95%9C%E5%A7%93/9563772
492495
};
493496

494497
export default Surnames;

Diff for: test/special.test.js

+22
Original file line numberDiff line numberDiff line change
@@ -223,3 +223,25 @@ describe('tone sandhi for “不”', () => {
223223
expect(result).to.be.equal('shuō bu shuō');
224224
});
225225
});
226+
227+
describe('交叉词语测试', () => {
228+
it('[special tone sandhi]难为', () => {
229+
const result = pinyin('难为');
230+
expect(result).to.be.equal('nán wéi');
231+
});
232+
233+
it('[special tone sandhi]曾经沧海难为水', () => {
234+
const result = pinyin('曾经沧海难为水');
235+
expect(result).to.be.equal('céng jīng cāng hǎi nán wéi shuǐ');
236+
});
237+
238+
it('[special tone sandhi]以那次空难为例', () => {
239+
const result = pinyin('以那次空难为例');
240+
expect(result).to.be.equal('yǐ nà cì kōng nàn wéi lì');
241+
});
242+
243+
it('[special tone sandhi]空难为何发生', () => {
244+
const result = pinyin('空难为何发生');
245+
expect(result).to.be.equal('kōng nàn wèi hé fā shēng');
246+
});
247+
});

0 commit comments

Comments
 (0)