diff --git a/README.md b/README.md
index 031287a..fa47324 100644
--- a/README.md
+++ b/README.md
@@ -157,12 +157,12 @@ npm install pinyin-pro
准确率 |
- 😕 Node 版: 97.331% |
- 😕 97.279% |
- 🤩 99.795% |
+ 😕 Node 版: 95.277% |
+ 😕 95.123% |
+ 🤩 99.846% |
- 😕 Web 版: 94.353% |
+ 😕 Web 版: 92.197% |
性能 |
diff --git a/benchmark/accuracy.js b/benchmark/accuracy.js
index c5ccb60..3d61f84 100644
--- a/benchmark/accuracy.js
+++ b/benchmark/accuracy.js
@@ -1,8 +1,8 @@
-const { pinyin: pinyinPro } = require('../dist');
-const { pinyin } = require('pinyin');
+const { pinyin: pinyinPro } = require('../');
+const { pinyin } = require('pinyin/lib/pinyin');
const { pinyin: nApiPinyin, PINYIN_STYLE } = require('@napi-rs/pinyin');
-const correctPinyin = `dà hǎi shēn chù de yī tiáo měi rén yú yī zhí duì dà hǎi zhī wài de shì jiè chōng mǎn le hào qí , tā yī zhí xiǎng yào chū qù kàn kàn hǎi zhī wài de shì jiè , tā de fù mǔ xiōng dì jiě mèi men què gào sù tā hǎi yǐ wài de shì jiè fēi cháng xiǎn è , rén xīn fēi cháng xiǎn è , rú guǒ rén lèi fā xiàn tā měi rén yú de shēn fèn tā jiù huì xiàn rù fēi cháng wēi xiǎn de jìng dì , tā men quàn gào tā bù yào chū qù 。 tā bù xiāng xìn , tā jué de zì jǐ yǒu néng lì bǎo hù hǎo zì jǐ , děng tā wán yī duàn shí jiān tā jiù huí lái , fǒu zé zhè shǐ zhōng huì shì tā xīn lǐ de yí gè yí hàn , tā bù xiǎng zài dà hǎi lǐ jú xiàn de guò wán zhè yī shēng 。 yī tiān , tā chèn jiā lǐ bù zhù yì tōu tōu liū shàng àn , huàn huà chéng rén xíng , xiàng lí hǎi yuè lái yuè yuǎn de dì fāng zǒu qù , měi rén yú de měi mào suǒ dào zhī chù jiē huàn lái yī zhèn jīng tàn , dàn tā bù zhī dào de shì tā de shēn hòu yī zhí gēn zhe yí gè rén , cóng tā shàng àn de nà kè kāi shǐ 。 shēn hòu gēn zhe de nán rén yuè lái yuè jiē jìn tā , zài tā háo wú fáng bèi de qíng kuàng xià zǒu xiàng tā , tā dǎ zhe xiǎng yào gēn tā zuò péng yǒu de míng yì yǔ měi rén yú jiāo tán , měi rén yú gào sù tā zì jǐ zài jiā lǐ shì zuì xiǎo de suǒ yǐ zì jǐ jiào xiǎo xiǎo , hé jiā lǐ nào le biè niu jiù dú zì yī rén pǎo le chū lái , nán rén shuō :“ wǒ jiào lǐ hào bó , nǐ hěn yǒu qù , wǒ men kě yǐ zuò gè péng yǒu ma ?” měi rén yú xīn lǐ fēi cháng gāo xìng , méi xiǎng dào zì jǐ gāng shàng àn zhè me kuài jiù yǒu le péng yǒu , dān chún de měi rén yú xiǎng yě bù xiǎng jiù dā yìng le , tiān sè jiàn wǎn , kǎo lǜ dào xiǎo xiǎo wú chù kě qù , lǐ hào bó wèn tā shì fǒu yuàn yì qù zì jǐ jiā lǐ xiān jiāng jiù zhù zhe , xiǎo xiǎo xiǎng jì rán shì péng yǒu ér qiě zì jǐ yě méi yǒu qù chù jiù diǎn le diǎn tóu , děng xiǎo xiǎo shuì zháo hòu , lǐ hào bó zǒu xiàng yí gè piān pì de dì fāng duì zhe diàn huà shuō le jù yòu lái le dān shēng yì , zhǔn bèi xià , biàn guà le diàn huà 。 dì èr tiān , lǐ hào bó wèn xiǎo xiǎo yǒu méi yǒu gōng zuò , tā kě yǐ gěi tā jiè shào , xiǎo xiǎo hào qí de wèn :“ shén me gōng zuò ya ?” hào bó duì tā shuō :“ shì kě yǐ ràng hěn duō rén zhī dào nǐ bìng qiě xǐ huān nǐ de gōng zuò 。” xiǎo xiǎo xīng fèn de dā yìng le 。 chī guò fàn , hào bó dài tā qù le gōng zuò shì qiān le xié yì , biàn jiāng tā jiāo gěi le lǎo shī dài tā xùn liàn , měi tiān chàng gē , wǔ dǎo de liàn xí cóng wèi tíng zhǐ , suī rán xīn kǔ dàn wèi le ràng gèng duō rén rèn shi tā , tā cóng bù bào yuàn , hào bó yě měi tiān máng wán zì jǐ de shì hòu jiù huì lái jiē tā huí jiā , huì wèn tā lèi bù lèi , huì gěi tā zuò fàn , yī nián zhī hòu tā chū dào le , hào bó bāng tā jiē le hěn duō diàn shì jù , diàn yǐng , guǎng gào dài yán , xiǎo xiǎo de míng qì yuè lái yuè dà , fěn sī yuè lái yuè duō , xiǎo xiǎo fēi cháng kāi xīn , hào bó yě yī zhí dān rèn zhe tā de jīng jì rén , màn màn de tā yuè lái yuè xǐ huān xiàn zài de shēng huó , tā shèn zhì kuài wàng le zì jǐ shì tiáo měi rén yú , tā jué de zì jǐ hé qí tā rén méi yǒu rèn hé bù tóng , yě wàng le yào huí dào hǎi lǐ hé hǎi lǐ de fù mǔ xiōng dì jiě mèi 。 tā duì hào bó fēi cháng xìn rèn , tā ràng zì jǐ zuò shén me xiǎo xiǎo jiù huì qù zuò shén me 。 suī rán shì yí gè xīn rén , dàn tā dān chún , shàn liáng , yú lè quān lǐ hěn duō rén dōu xǐ huān tā , tā de péng yǒu yě cóng kāi shǐ de zhǐ yǒu hào bó biàn de yuè lái yuè duō , dàn tā fā xiàn tā duì hào bó què bú zài xiàng shì kāi shǐ de péng yǒu de qíng gǎn , tā hǎo xǐ huān tā , hào bó duì tā yě yī zhí hěn hǎo , xiǎo xiǎo jué de tā yīng gāi yě shì xǐ huān zì jǐ de , tā hē zuì hòu tā huì zhào gù tā , pāi wán xì lèi dào bù xíng de shí hòu tā huì bēi tā huí jiā , tā měi tiān guò de chōng shí ér yòu kuài lè , tā hǎo xǐ huān xiàn zài de shēng huó , tā xī wàng yī zhí xiàng xiàn zài yī yàng 。 měi cì jiē shòu cǎi fǎng , wèn dào tā yǔ hào bó shì bú shì yǒu bù yī yàng de guān xì , shì bú shì yǐ jīng zài yī qǐ le , tā zǒng shì xiào xiào , hào bó gēn tā shuō duì wài bì xū shuō zì jǐ dān shēn bù rán huì yǐng xiǎng tā de fā zhǎn , suī rán tā bú zài hu zhè xiē dàn shì shì hào bó shuō de tā zhǐ hǎo dā yìng , tā jué de hào bó zhè yàng zuò shì wèi le bǎo hù tā , shí nián guò qù , tā yǐ bú zài shì dāng chū gāng chū dào de xīn rén , shǒu shàng de zī yuán yě yuè lái yuè shǎo , tā xiǎng yào ān wěn , xiǎng yào hào bó yī zhí péi zhe tā , kě hào bó hé tā zài yī qǐ de shí jiān yuè lái yuè shǎo , tā duì zì jǐ rèn wéi hào bó yě xǐ huān zì jǐ de xiǎng fǎ dòng yáo le , tā wèn le hǎo jǐ cì hào bó xǐ bù xǐ huān zì jǐ , tā zǒng shì chén mò huò zhě zhǎo qí tā huà tí huí bì le zhè ge wèn tí , tā xiǎng qǐ zhī qián yī wèi qián bèi duì tā shuō de “ qī dài suǒ dài lái de mǎn zú gǎn , zuì měi hǎo de , bú shì bié rén mǎn zú le zì jǐ de qī dài , ér shì wǒ men mǎn zú le bié rén de qī dài 。”“ xiàn zài de wǒ yīng gāi mǎn zú le tā de qī dài le ba , wǒ chéng wéi le tā dāng chū xiǎng ràng wǒ chéng wéi de nà zhǒng rén , yǒu le míng qì , kě yǐ gěi tā dài lái cái fù , wǒ bù kū bù nào , suǒ yǒu shì qíng dōu tīng cóng tā de ān pái , shùn cóng tā de xīn yì , zài tā xīn lǐ zì jǐ hái yǒu shén me bù hǎo ne ?” xiǎo xiǎo kàn zhe hào bó xiǎng zhe 。 tā jué de hǎo lèi , měi tiān bù tíng de gōng zuò , wán chéng tā gěi tā de měi gè rèn wu , tā xiǎng ràng zì jǐ hǎo hǎo xiū xi yī duàn shí jiān , duō yī xiē hé tā xiāng chǔ de shí jiān , tā gēn hào bó shuō zì jǐ xiǎng xiū xi yī duàn shí jiān , hào bó xiǎng le xiǎng tóng yì le , dì èr tiān tā biàn xuān bù le zì jǐ jiāng zàn shí tuì chū yú lè quān , hào bó sòng tā huí le jiā , tā duì tā shuō míng tiān dài tā qù gè dì fāng jiù zǒu le , tā bù zhī dào tā yào dài tā qù nǎ , dàn tā xiāng xìn tā , tā bù zhī dào tā shì shén me shí hòu huí lái de , tā jiào xǐng tā de shí hòu yǐ jīng shì dì èr tiān zǎo chén le , yī rú jì wǎng de , tā men yī qǐ chī guò zǎo cān , tā gēn zài tā shēn hòu lái dào yí gè cóng wèi lái guò de dì fāng , zhè ge dì fāng hǎo lěng , tā men yī qǐ zǒu jìn qù , tā xiǎng yào lā hào bó , dàn tā què tū rán pǎo kāi le , tā lèng zài yuán dì 。 yí gè tiě zhì de lóng zi cóng tiān ér jiàng kùn zhù le tā , tā dāi dāi de wàng zhe hào bó nà zhāng lěng mò de liǎn ,“ wǒ yǐ wéi zì jǐ mǎn zú le nǐ de qī dài , wǒ yǐ wéi wǒ zài nǐ xīn lǐ shì bù tóng de , wǒ yǐ wéi nǐ qǐ mǎ duì wǒ shì yǒu yī diǎn xǐ huān de , wǒ yǐ wéi wǒ men huì yī zhí zài yī qǐ , wǒ yǐ wéi nǐ huì yī zhí duì wǒ hǎo de , yuán lái , yī qiè dōu zhǐ shì wǒ yǐ wéi 。 wèi shén me zhè me duì wǒ ?” tā lěng lěng de shuō :“ yīn wèi nǐ yǐ jīng méi yǒu jià zhí le , cóng yī kāi shǐ jiē jìn nǐ jiù shì wèi le lì yòng nǐ , jiù shì wèi le ràng nǐ gěi wǒ zhuàn qián , rú guǒ bú shì yīn wèi nǐ duì wǒ lái shuō shì yī bǐ jù dà de cái fù , wǒ zěn me kě néng huì qù tǎo hǎo nǐ , shuō dào dǐ hái shì nǐ tài tiān zhēn le , wǒ shuō shén me nǐ dōu xìn 。” xiǎo xiǎo xiàn zài cái míng bái dāng chū fù mǔ bù ràng tā shàng àn shuō de huà ,“ nǐ yī kāi shǐ jiù zhī dào wǒ de shēn fèn shì bú shì ?”“ duì , cóng nǐ shàng àn de nà yī kè wǒ jiù zhī dào le , xiàn zài shì nǐ zuì hòu néng fā huī de jià zhí le , yě bù wǎng wǒ duì nǐ fèi xīn le zhè me duō nián 。”“ yuán lái shí jǐ nián de péi bàn wǒ zài nǐ yǎn lǐ zhōng jiū dǐ bù guò qián 。” kàn zhe hào bó jué jué de zhuǎn shēn lí kāi de nà kè xiǎo xiǎo kū de sī xīn liè fèi , tā hòu huǐ zì jǐ dāng chū bù guǎn bù gù de shàng àn le 。`;
+const correctPinyin = `dà hǎi shēn chù de yì tiáo měi rén yú yì zhí duì dà hǎi zhī wài de shì jiè chōng mǎn le hào qí , tā yì zhí xiǎng yào chū qù kàn kàn hǎi zhī wài de shì jiè , tā de fù mǔ xiōng dì jiě mèi men què gào sù tā hǎi yǐ wài de shì jiè fēi cháng xiǎn è , rén xīn fēi cháng xiǎn è , rú guǒ rén lèi fā xiàn tā měi rén yú de shēn fèn tā jiù huì xiàn rù fēi cháng wēi xiǎn de jìng dì , tā men quàn gào tā bú yào chū qù 。 tā bù xiāng xìn , tā jué de zì jǐ yǒu néng lì bǎo hù hǎo zì jǐ , děng tā wán yí duàn shí jiān tā jiù huí lái , fǒu zé zhè shǐ zhōng huì shì tā xīn lǐ de yí gè yí hàn , tā bù xiǎng zài dà hǎi lǐ jú xiàn de guò wán zhè yì shēng 。 yì tiān , tā chèn jiā lǐ bú zhù yì tōu tōu liū shàng àn , huàn huà chéng rén xíng , xiàng lí hǎi yuè lái yuè yuǎn de dì fāng zǒu qù , měi rén yú de měi mào suǒ dào zhī chù jiē huàn lái yí zhèn jīng tàn , dàn tā bù zhī dào de shì tā de shēn hòu yì zhí gēn zhe yí gè rén , cóng tā shàng àn de nà kè kāi shǐ 。 shēn hòu gēn zhe de nán rén yuè lái yuè jiē jìn tā , zài tā háo wú fáng bèi de qíng kuàng xià zǒu xiàng tā , tā dǎ zhe xiǎng yào gēn tā zuò péng yǒu de míng yì yǔ měi rén yú jiāo tán , měi rén yú gào sù tā zì jǐ zài jiā lǐ shì zuì xiǎo de suǒ yǐ zì jǐ jiào xiǎo xiǎo , hé jiā lǐ nào le biè niu jiù dú zì yì rén pǎo le chū lái , nán rén shuō :“ wǒ jiào lǐ hào bó , nǐ hěn yǒu qù , wǒ men kě yǐ zuò gè péng yǒu ma ?” měi rén yú xīn lǐ fēi cháng gāo xìng , méi xiǎng dào zì jǐ gāng shàng àn zhè me kuài jiù yǒu le péng yǒu , dān chún de měi rén yú xiǎng yě bù xiǎng jiù dā yìng le , tiān sè jiàn wǎn , kǎo lǜ dào xiǎo xiǎo wú chù kě qù , lǐ hào bó wèn tā shì fǒu yuàn yì qù zì jǐ jiā lǐ xiān jiāng jiù zhù zhe , xiǎo xiǎo xiǎng jì rán shì péng yǒu ér qiě zì jǐ yě méi yǒu qù chù jiù diǎn le diǎn tóu , děng xiǎo xiǎo shuì zháo hòu , lǐ hào bó zǒu xiàng yí gè piān pì de dì fāng duì zhe diàn huà shuō le jù yòu lái le dān shēng yì , zhǔn bèi xià , biàn guà le diàn huà 。 dì èr tiān , lǐ hào bó wèn xiǎo xiǎo yǒu méi yǒu gōng zuò , tā kě yǐ gěi tā jiè shào , xiǎo xiǎo hào qí de wèn :“ shén me gōng zuò ya ?” hào bó duì tā shuō :“ shì kě yǐ ràng hěn duō rén zhī dào nǐ bìng qiě xǐ huān nǐ de gōng zuò 。” xiǎo xiǎo xīng fèn de dā yìng le 。 chī guò fàn , hào bó dài tā qù le gōng zuò shì qiān le xié yì , biàn jiāng tā jiāo gěi le lǎo shī dài tā xùn liàn , měi tiān chàng gē , wǔ dǎo de liàn xí cóng wèi tíng zhǐ , suī rán xīn kǔ dàn wèi le ràng gèng duō rén rèn shi tā , tā cóng bú bào yuàn , hào bó yě měi tiān máng wán zì jǐ de shì hòu jiù huì lái jiē tā huí jiā , huì wèn tā lèi bu lèi , huì gěi tā zuò fàn , yì nián zhī hòu tā chū dào le , hào bó bāng tā jiē le hěn duō diàn shì jù , diàn yǐng , guǎng gào dài yán , xiǎo xiǎo de míng qì yuè lái yuè dà , fěn sī yuè lái yuè duō , xiǎo xiǎo fēi cháng kāi xīn , hào bó yě yì zhí dān rèn zhe tā de jīng jì rén , màn màn de tā yuè lái yuè xǐ huān xiàn zài de shēng huó , tā shèn zhì kuài wàng le zì jǐ shì tiáo měi rén yú , tā jué de zì jǐ hé qí tā rén méi yǒu rèn hé bù tóng , yě wàng le yào huí dào hǎi lǐ hé hǎi lǐ de fù mǔ xiōng dì jiě mèi 。 tā duì hào bó fēi cháng xìn rèn , tā ràng zì jǐ zuò shén me xiǎo xiǎo jiù huì qù zuò shén me 。 suī rán shì yí gè xīn rén , dàn tā dān chún , shàn liáng , yú lè quān lǐ hěn duō rén dōu xǐ huān tā , tā de péng yǒu yě cóng kāi shǐ de zhǐ yǒu hào bó biàn de yuè lái yuè duō , dàn tā fā xiàn tā duì hào bó què bú zài xiàng shì kāi shǐ de péng yǒu de qíng gǎn , tā hǎo xǐ huān tā , hào bó duì tā yě yì zhí hěn hǎo , xiǎo xiǎo jué de tā yīng gāi yě shì xǐ huān zì jǐ de , tā hē zuì hòu tā huì zhào gù tā , pāi wán xì lèi dào bù xíng de shí hòu tā huì bēi tā huí jiā , tā měi tiān guò de chōng shí ér yòu kuài lè , tā hǎo xǐ huān xiàn zài de shēng huó , tā xī wàng yì zhí xiàng xiàn zài yí yàng 。 měi cì jiē shòu cǎi fǎng , wèn dào tā yǔ hào bó shì bu shì yǒu bù yí yàng de guān xì , shì bu shì yǐ jīng zài yì qǐ le , tā zǒng shì xiào xiào , hào bó gēn tā shuō duì wài bì xū shuō zì jǐ dān shēn bù rán huì yǐng xiǎng tā de fā zhǎn , suī rán tā bú zài hu zhè xiē dàn shì shì hào bó shuō de tā zhǐ hǎo dā yìng , tā jué de hào bó zhè yàng zuò shì wèi le bǎo hù tā , shí nián guò qù , tā yǐ bú zài shì dāng chū gāng chū dào de xīn rén , shǒu shàng de zī yuán yě yuè lái yuè shǎo , tā xiǎng yào ān wěn , xiǎng yào hào bó yì zhí péi zhe tā , kě hào bó hé tā zài yì qǐ de shí jiān yuè lái yuè shǎo , tā duì zì jǐ rèn wéi hào bó yě xǐ huān zì jǐ de xiǎng fǎ dòng yáo le , tā wèn le hǎo jǐ cì hào bó xǐ bu xǐ huān zì jǐ , tā zǒng shì chén mò huò zhě zhǎo qí tā huà tí huí bì le zhè ge wèn tí , tā xiǎng qǐ zhī qián yí wèi qián bèi duì tā shuō de “ qī dài suǒ dài lái de mǎn zú gǎn , zuì měi hǎo de , bú shì bié rén mǎn zú le zì jǐ de qī dài , ér shì wǒ men mǎn zú le bié rén de qī dài 。”“ xiàn zài de wǒ yīng gāi mǎn zú le tā de qī dài le ba , wǒ chéng wéi le tā dāng chū xiǎng ràng wǒ chéng wéi de nà zhǒng rén , yǒu le míng qì , kě yǐ gěi tā dài lái cái fù , wǒ bù kū bú nào , suǒ yǒu shì qíng dōu tīng cóng tā de ān pái , shùn cóng tā de xīn yì , zài tā xīn lǐ zì jǐ hái yǒu shén me bù hǎo ne ?” xiǎo xiǎo kàn zhe hào bó xiǎng zhe 。 tā jué de hǎo lèi , měi tiān bù tíng de gōng zuò , wán chéng tā gěi tā de měi gè rèn wu , tā xiǎng ràng zì jǐ hǎo hǎo xiū xi yí duàn shí jiān , duō yì xiē hé tā xiāng chǔ de shí jiān , tā gēn hào bó shuō zì jǐ xiǎng xiū xi yí duàn shí jiān , hào bó xiǎng le xiǎng tóng yì le , dì èr tiān tā biàn xuān bù le zì jǐ jiāng zàn shí tuì chū yú lè quān , hào bó sòng tā huí le jiā , tā duì tā shuō míng tiān dài tā qù gè dì fāng jiù zǒu le , tā bù zhī dào tā yào dài tā qù nǎ , dàn tā xiāng xìn tā , tā bù zhī dào tā shì shén me shí hòu huí lái de , tā jiào xǐng tā de shí hòu yǐ jīng shì dì èr tiān zǎo chén le , yì rú jì wǎng de , tā men yì qǐ chī guò zǎo cān , tā gēn zài tā shēn hòu lái dào yí gè cóng wèi lái guò de dì fāng , zhè ge dì fāng hǎo lěng , tā men yì qǐ zǒu jìn qù , tā xiǎng yào lā hào bó , dàn tā què tū rán pǎo kāi le , tā lèng zài yuán dì 。 yí gè tiě zhì de lóng zi cóng tiān ér jiàng kùn zhù le tā , tā dāi dāi de wàng zhe hào bó nà zhāng lěng mò de liǎn ,“ wǒ yǐ wéi zì jǐ mǎn zú le nǐ de qī dài , wǒ yǐ wéi wǒ zài nǐ xīn lǐ shì bù tóng de , wǒ yǐ wéi nǐ qǐ mǎ duì wǒ shì yǒu yì diǎn xǐ huān de , wǒ yǐ wéi wǒ men huì yì zhí zài yì qǐ , wǒ yǐ wéi nǐ huì yì zhí duì wǒ hǎo de , yuán lái , yí qiè dōu zhǐ shì wǒ yǐ wéi 。 wèi shén me zhè me duì wǒ ?” tā lěng lěng de shuō :“ yīn wèi nǐ yǐ jīng méi yǒu jià zhí le , cóng yì kāi shǐ jiē jìn nǐ jiù shì wèi le lì yòng nǐ , jiù shì wèi le ràng nǐ gěi wǒ zhuàn qián , rú guǒ bú shì yīn wèi nǐ duì wǒ lái shuō shì yì bǐ jù dà de cái fù , wǒ zěn me kě néng huì qù tǎo hǎo nǐ , shuō dào dǐ hái shì nǐ tài tiān zhēn le , wǒ shuō shén me nǐ dōu xìn 。” xiǎo xiǎo xiàn zài cái míng bái dāng chū fù mǔ bú ràng tā shàng àn shuō de huà ,“ nǐ yì kāi shǐ jiù zhī dào wǒ de shēn fèn shì bu shì ?”“ duì , cóng nǐ shàng àn de nà yí kè wǒ jiù zhī dào le , xiàn zài shì nǐ zuì hòu néng fā huī de jià zhí le , yě bù wǎng wǒ duì nǐ fèi xīn le zhè me duō nián 。”“ yuán lái shí jǐ nián de péi bàn wǒ zài nǐ yǎn lǐ zhōng jiū dǐ bú guò qián 。” kàn zhe hào bó jué jué de zhuǎn shēn lí kāi de nà kè xiǎo xiǎo kū de sī xīn liè fèi , tā hòu huǐ zì jǐ dāng chū bù guǎn bú gù de shàng àn le 。`;
const text = `大海深处的一条美人鱼一直对大海之外的世界充满了好奇,她一直想要出去看看海之外的世界,她的父母兄弟姐妹们却告诉她海以外的世界非常险恶,人心非常险恶,如果人类发现她美人鱼的身份她就会陷入非常危险的境地,他们劝告她不要出去。她不相信,她觉得自己有能力保护好自己,等她玩一段时间她就回来,否则这始终会是她心里的一个遗憾,她不想在大海里局限的过完这一生。一天,她趁家里不注意偷偷溜上岸,幻化成人型,向离海越来越远的地方走去,美人鱼的美貌所到之处皆换来一阵惊叹,但她不知道的是她的身后一直跟着一个人,从她上岸的那刻开始。身后跟着的男人越来越接近她,在她毫无防备的情况下走向她,他打着想要跟她做朋友的名义与美人鱼交谈,美人鱼告诉他自己在家里是最小的所以自己叫小小,和家里闹了别扭就独自一人跑了出来,男人说:“我叫李浩博,你很有趣,我们可以做个朋友吗?”美人鱼心里非常高兴,没想到自己刚上岸这么快就有了朋友,单纯的美人鱼想也不想就答应了,天色渐晚,考虑到小小无处可去,李浩博问她是否愿意去自己家里先将就住着,小小想既然是朋友而且自己也没有去处就点了点头,等小小睡着后,李浩博走向一个偏僻的地方对着电话说了句又来了单生意,准备下,便挂了电话。第二天,李浩博问小小有没有工作,他可以给她介绍,小小好奇的问:“什么工作呀?”浩博对她说:“是可以让很多人知道你并且喜欢你的工作。”小小兴奋的答应了。吃过饭,浩博带她去了工作室签了协议,便将她交给了老师带她训练,每天唱歌,舞蹈的练习从未停止,虽然辛苦但为了让更多人认识她,她从不抱怨,浩博也每天忙完自己的事后就会来接她回家,会问她累不累,会给她做饭,一年之后她出道了,浩博帮她接了很多电视剧,电影,广告代言,小小的名气越来越大,粉丝越来越多,小小非常开心,浩博也一直担任着她的经纪人,慢慢的她越来越喜欢现在的生活,她甚至快忘了自己是条美人鱼,她觉得自己和其他人没有任何不同,也忘了要回到海里和海里的父母兄弟姐妹。她对浩博非常信任,他让自己做什么小小就会去做什么。虽然是一个新人,但她单纯,善良,娱乐圈里很多人都喜欢她,她的朋友也从开始的只有浩博变得越来越多,但她发现她对浩博却不再像是开始的朋友的情感,她好喜欢他,浩博对她也一直很好,小小觉得他应该也是喜欢自己的,她喝醉后他会照顾她,拍完戏累到不行的时候他会背她回家,她每天过的充实而又快乐,她好喜欢现在的生活,她希望一直像现在一样。每次接受采访,问到她与浩博是不是有不一样的关系,是不是已经在一起了,她总是笑笑,浩博跟她说对外必须说自己单身不然会影响她的发展,虽然她不在乎这些但是是浩博说的她只好答应,她觉得浩博这样做是为了保护她,十年过去,她已不再是当初刚出道的新人,手上的资源也越来越少,她想要安稳,想要浩博一直陪着她,可浩博和她在一起的时间越来越少,她对自己认为浩博也喜欢自己的想法动摇了,她问了好几次浩博喜不喜欢自己,他总是沉默或者找其他话题回避了这个问题,她想起之前一位前辈对她说的“期待所带来的满足感,最美好的,不是别人满足了自己的期待,而是我们满足了别人的期待。”“现在的我应该满足了他的期待了吧,我成为了他当初想让我成为的那种人,有了名气,可以给他带来财富,我不哭不闹,所有事情都听从他的安排,顺从他的心意,在他心里自己还有什么不好呢?”小小看着浩博想着。她觉得好累,每天不停的工作,完成他给她的每个任务,她想让自己好好休息一段时间,多一些和他相处的时间,她跟浩博说自己想休息一段时间,浩博想了想同意了,第二天她便宣布了自己将暂时退出娱乐圈,浩博送她回了家,他对她说明天带她去个地方就走了,她不知道他要带她去哪,但她相信他,她不知道他是什么时候回来的,他叫醒她的时候已经是第二天早晨了,一如既往地,他们一起吃过早餐,她跟在他身后来到一个从未来过的地方,这个地方好冷,他们一起走进去,她想要拉浩博,但他却突然跑开了,她愣在原地。一个铁制的笼子从天而降困住了她,她呆呆的望着浩博那张冷漠的脸,“我以为自己满足了你的期待,我以为我在你心里是不同的,我以为你起码对我是有一点喜欢的,我以为我们会一直在一起,我以为你会一直对我好的,原来,一切都只是我以为。为什么这么对我?”他冷冷地说:“因为你已经没有价值了,从一开始接近你就是为了利用你,就是为了让你给我赚钱,如果不是因为你对我来说是一笔巨大的财富,我怎么可能会去讨好你,说到底还是你太天真了,我说什么你都信。”小小现在才明白当初父母不让她上岸说的话,“你一开始就知道我的身份是不是?”“对,从你上岸的那一刻我就知道了,现在是你最后能发挥的价值了,也不枉我对你费心了这么多年。”“原来十几年的陪伴我在你眼里终究抵不过钱。”看着浩博决绝的转身离开的那刻小小哭的撕心裂肺,她后悔自己当初不管不顾的上岸了。`;
const corrects = correctPinyin.split(' ');
@@ -37,7 +37,7 @@ corrects.forEach((item, i) => {
errorsOfPinyinWeb++;
}
if (item !== resultsOfPinyinPro[i]) {
- console.log(corrects.slice(i - 3, i + 3));
+ console.log(corrects.slice(i - 3, i + 3).join(' '));
errorsOfPinyinPro++;
}
if (item !== resultsOfNapiPinyin[i]) {
diff --git a/lib/common/ac.ts b/lib/common/ac.ts
index 2c78932..c2fef35 100644
--- a/lib/common/ac.ts
+++ b/lib/common/ac.ts
@@ -1,4 +1,4 @@
-import { PatternNumberDict } from '@/data/dict-number';
+import { PatternNumberDict } from '@/data/special';
import { Pattern2 } from '@/data/dict2';
import { Pattern3 } from '@/data/dict3';
import { Pattern4 } from '@/data/dict4';
diff --git a/lib/core/pinyin/handle.ts b/lib/core/pinyin/handle.ts
index 9dc879b..14119be 100644
--- a/lib/core/pinyin/handle.ts
+++ b/lib/core/pinyin/handle.ts
@@ -4,6 +4,7 @@ import {
SpecialFinalMap,
SpecialFinalList,
doubleFinalList,
+ getSepecialChangeTone,
} from '@/data/special';
import Surnames from '@/data/surname';
import DICT1 from '@/data/dict1';
@@ -21,7 +22,7 @@ import {
* @return {string}
*/
type GetSingleWordPinyin = (word: string) => string;
-const getSingleWordPinyin: GetSingleWordPinyin = (word) => {
+export const getSingleWordPinyin: GetSingleWordPinyin = (word) => {
const wordCode = word.charCodeAt(0);
const pinyin = DICT1[wordCode];
// 若查到, 则返回第一个拼音; 若未查到, 返回原字符
@@ -89,7 +90,12 @@ export const getPinyin = (
matchIndex++;
} else {
const char = word[i];
- const pinyin = getSingleWordPinyin(char);
+ let pinyin: string = '';
+ if (!match || match.index > i + 1) {
+ pinyin = getSepecialChangeTone(char, word[i - 1], word[i + 1]);
+ } else {
+ pinyin = getSingleWordPinyin(char);
+ }
list[i] = {
origin: char,
result: pinyin,
diff --git a/lib/data/dict-number.ts b/lib/data/dict-number.ts
deleted file mode 100644
index 930bb59..0000000
--- a/lib/data/dict-number.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import type { Pattern } from "../common/ac";
-import { Priority } from "@/common/constant";
-
-const Numbers = {
- 一: 'yì',
- 二: 'èr',
- 三: 'sān',
- 四: 'sì',
- 五: 'wǔ',
- 六: 'liù',
- 七: 'qī',
- 八: 'bā',
- 九: 'jiǔ',
- 十: 'shí',
- 百: 'bǎi',
- 千: 'qiān',
- 万: 'wàn',
- 亿: 'yì',
- 两: 'liǎng',
- 双: 'shuāng',
- 多: 'duō',
- 十一: 'shí yī',
- 零一: 'líng yī',
- 几: 'jǐ',
-};
-
-const NumberWordMap = {
- 重: 'chóng',
- 行: 'háng',
- 斗: 'dǒu',
-};
-
-function genNumberDict() {
- const dict: { [key: string]: string; } = {};
- for (let number in Numbers) {
- for (let key in NumberWordMap) {
- const word = `${number}${key}`;
- const pinyin = `${Numbers[number as keyof typeof Numbers]} ${
- NumberWordMap[key as keyof typeof NumberWordMap]
- }`;
- dict[word] = pinyin;
- }
- }
- return dict;
-}
-
-const NumberDict = genNumberDict();
-
-export const PatternNumberDict: Pattern[] = Object.keys(NumberDict).map((key) => ({
- zh: key,
- pinyin: NumberDict[key],
- priority: Priority.DictNumber + key.length,
- length: key.length,
-}));
\ No newline at end of file
diff --git a/lib/data/dict2.ts b/lib/data/dict2.ts
index 160c8a2..6257497 100644
--- a/lib/data/dict2.ts
+++ b/lib/data/dict2.ts
@@ -1,9 +1,7 @@
import { Priority } from '@/common/constant';
import type { Pattern } from '../../lib/common/ac';
const DICT2: { [prop: string]: string } = {
- 一个: 'yí gè',
这个: 'zhè ge',
- 不是: 'bú shì',
成为: 'chéng wéi',
认为: 'rèn wéi',
作为: 'zuò wéi',
@@ -11,7 +9,6 @@ const DICT2: { [prop: string]: string } = {
要求: 'yāo qiú',
应该: 'yīng gāi',
增长: 'zēng zhǎng',
- 不会: 'bú huì',
提供: 'tí gōng',
觉得: 'jué de',
任务: 'rèn wu',
@@ -105,7 +102,6 @@ const DICT2: { [prop: string]: string } = {
路上: 'lù shang',
只怕: 'zhǐ pà',
能量: 'néng liàng',
- 一度: 'yí dù',
储量: 'chǔ liàng',
供应: 'gōng yìng',
挑战: 'tiǎo zhàn',
@@ -318,7 +314,6 @@ const DICT2: { [prop: string]: string } = {
车子: 'chē zi',
上将: 'shàng jiàng',
恶心: 'ě xin',
- 不对: 'bú duì',
担子: 'dàn zi',
应届: 'yīng jiè',
行列: 'háng liè',
@@ -338,7 +333,6 @@ const DICT2: { [prop: string]: string } = {
吐蕃: 'tǔ bō',
钻进: 'zuān jìn',
乐队: 'yuè duì',
- 不当: 'bù dàng',
亮相: 'liàng xiàng',
被子: 'bèi zi',
舍得: 'shě de',
@@ -383,7 +377,6 @@ const DICT2: { [prop: string]: string } = {
为数: 'wéi shù',
勾当: 'gòu dàng',
削减: 'xuē jiǎn',
- 一发: 'yī fà',
间谍: 'jiàn dié',
埋怨: 'mán yuàn',
结实: 'jiē shi',
@@ -403,7 +396,7 @@ const DICT2: { [prop: string]: string } = {
王八: 'wáng ba',
切割: 'qiē gē',
间隔: 'jiàn gé',
- 一晃: 'yī huǎng',
+ 一晃: 'yì huǎng',
长假: 'cháng jià',
令狐: 'líng hú',
为害: 'wéi hài',
@@ -489,7 +482,6 @@ const DICT2: { [prop: string]: string } = {
看中: 'kàn zhòng',
议长: 'yì zhǎng',
风筝: 'fēng zheng',
- 一应: 'yī yīng',
辟邪: 'bì xié',
空隙: 'kòng xì',
更迭: 'gēng dié',
@@ -502,7 +494,7 @@ const DICT2: { [prop: string]: string } = {
无量: 'wú liàng',
空地: 'kòng dì',
调度: 'diào dù',
- 一曲: 'yī qǔ',
+ 一曲: 'yì qǔ',
散射: 'sǎn shè',
太行: 'tài háng',
创伤: 'chuāng shāng',
@@ -533,7 +525,6 @@ const DICT2: { [prop: string]: string } = {
悄声: 'qiǎo shēng',
曲子: 'qǔ zi',
情调: 'qíng diào',
- 一着: 'yī zhāo',
挑衅: 'tiǎo xìn',
代为: 'dài wéi',
了结: 'liǎo jié',
@@ -788,7 +779,6 @@ const DICT2: { [prop: string]: string } = {
疟疾: 'nüè ji',
唠叨: 'láo dao',
限量: 'xiàn liàng',
- 一打: 'yī dá',
屏息: 'bǐng xī',
重逢: 'chóng féng',
器乐: 'qì yuè',
@@ -885,7 +875,6 @@ const DICT2: { [prop: string]: string } = {
处世: 'chǔ shì',
中风: 'zhòng fēng',
等量: 'děng liàng',
- 不菲: 'bù fěi',
放量: 'fàng liàng',
腔调: 'qiāng diào',
老少: 'lǎo shào',
@@ -1151,7 +1140,6 @@ const DICT2: { [prop: string]: string } = {
着迷: 'zháo mí',
挑担: 'tiāo dàn',
纹路: 'wén lu',
- 一沓: 'yī dá',
还俗: 'huán sú',
强横: 'qiáng hèng',
着数: 'zhāo shù',
@@ -1522,7 +1510,6 @@ const DICT2: { [prop: string]: string } = {
瘠薄: 'jí bó',
浆糊: 'jiàng hu',
嘎吱: 'gā zhī',
- 不遂: 'bù suí',
调令: 'diào lìng',
法帖: 'fǎ tiè',
淋病: 'lìn bìng',
@@ -1644,7 +1631,6 @@ const DICT2: { [prop: string]: string } = {
解送: 'jiè sòng',
反间: 'fǎn jiàn',
少壮: 'shào zhuàng',
- 一服: 'yī fù',
留空: 'liú kòng',
告假: 'gào jià',
咳血: 'ké xiě',
@@ -2170,13 +2156,20 @@ const DICT2: { [prop: string]: string } = {
臧否: 'zāng pǐ',
否泰: 'pǐ tài',
变得: 'biàn de',
- 不住: 'bú zhù',
丈夫: 'zhàng fu',
豆腐: 'dòu fu',
- 不再: 'bú zài',
笔杆: 'bǐ gǎn',
枞阳: 'zōng yáng',
行人: 'xíng rén',
+ 打着: 'dǎ zhe',
+ 第一: 'dì yī',
+ 万一: 'wàn yī',
+ 之一: 'zhī yī',
+ 统一: 'tǒng yī',
+ 如一: 'rú yī',
+ 初一: 'chū yī',
+ 一一: 'yī yī',
+ 高一: 'gāo yī',
};
export default DICT2;
export const Pattern2: Pattern[] = Object.keys(DICT2).map((key) => ({
diff --git a/lib/data/dict3.ts b/lib/data/dict3.ts
index 6e602b8..0db3c29 100644
--- a/lib/data/dict3.ts
+++ b/lib/data/dict3.ts
@@ -25,7 +25,6 @@ const DICT3: { [prop: string]: string } = {
发脾气: 'fā pí qi',
士大夫: 'shì dà fū',
三部曲: 'sān bù qǔ',
- 少不了: 'shǎo bù liǎo',
仡佬族: 'gē lǎo zú',
交响曲: 'jiāo xiǎng qǔ',
鸭绿江: 'yā lù jiāng',
@@ -42,7 +41,6 @@ const DICT3: { [prop: string]: string } = {
发行量: 'fā xíng liàng',
兴冲冲: 'xìng chōng chōng',
分子量: 'fēn zǐ liàng',
- 大不了: 'dà bù liǎo',
国子监: 'guó zǐ jiàn',
老大难: 'lǎo dà nán',
党内外: 'dǎng nèi wai',
@@ -66,7 +64,6 @@ const DICT3: { [prop: string]: string } = {
车行道: 'chē háng dào',
中郎将: 'zhōng láng jiàng',
照明弹: 'zhào míng dàn',
- 一溜烟: 'yī liù yān',
烟幕弹: 'yān mù dàn',
没奈何: 'mò nài hé',
乱哄哄: 'luàn hōng hōng',
@@ -86,7 +83,6 @@ const DICT3: { [prop: string]: string } = {
劳什子: 'láo shí zi',
摇滚乐: 'yáo gǔn yuè',
夹竹桃: 'jiā zhú táo',
- 一刀切: 'yī dāo qiē',
闹哄哄: 'nào hōng hōng',
三连冠: 'sān lián guàn',
重头戏: 'zhòng tóu xì',
@@ -114,13 +110,11 @@ const DICT3: { [prop: string]: string } = {
曳光弹: 'yè guāng dàn',
少林拳: 'shào lín quán',
咏叹调: 'yǒng tàn diào',
- 一个劲: 'yī gè jìn',
少先队: 'shào xiān duì',
灵长目: 'líng zhǎng mù',
对着干: 'duì zhe gàn',
蒙蒙亮: 'mēng mēng liàng',
软骨头: 'ruǎn gǔ tou',
- 不省得: 'bù xǐng de',
铺盖卷: 'pū gài juǎn',
和稀泥: 'huò xī ní',
背黑锅: 'bēi hēi guō',
@@ -141,7 +135,7 @@ const DICT3: { [prop: string]: string } = {
占便宜: 'zhàn pián yi',
打主意: 'dǎ zhǔ yi',
多弹头: 'duō dàn tóu',
- 露一手: 'lòu yī shǒu',
+ 露一手: 'lòu yì shǒu',
堰塞湖: 'yàn sè hú',
保得住: 'bǎo de zhù',
趵突泉: 'bào tū quán',
@@ -150,7 +144,6 @@ const DICT3: { [prop: string]: string } = {
禁不起: 'jīn bu qǐ',
什刹海: 'shí chà hǎi',
莲花落: 'lián huā lào',
- 一场空: 'yī cháng kōng',
前奏曲: 'qián zòu qǔ',
见世面: 'xiàn shì miàn',
豁出去: 'huō chu qu',
@@ -174,7 +167,6 @@ const DICT3: { [prop: string]: string } = {
看得起: 'kàn de qǐ',
糊涂账: 'hú tu zhàng',
大猩猩: 'dà xīng xing',
- 一溜儿: 'yī liù ér',
禁得起: 'jīn de qǐ',
法相宗: 'fǎ xiāng zōng',
可怜相: 'kě lián xiàng',
@@ -227,14 +219,12 @@ const DICT3: { [prop: string]: string } = {
数得着: 'shǔ de zháo',
傻劲儿: 'shǎ jìn er',
铅玻璃: 'qiān bō li',
- 抹不开: 'mò bù kāi',
可的松: 'kě dì sōng',
划得来: 'huá de lái',
晕乎乎: 'yùn hū hū',
屎壳郎: 'shǐ ke làng',
尥蹶子: 'liào juě zi',
藏红花: 'zàng hóng huā',
- 说不着: 'shuō bù zháo',
闷罐车: 'mèn guàn chē',
卡脖子: 'qiǎ bó zi',
红澄澄: 'hóng deng deng',
@@ -280,7 +270,6 @@ const DICT3: { [prop: string]: string } = {
泥娃娃: 'ní wá wa',
内切圆: 'nèi qiē yuán',
哪会儿: 'něi huì er',
- 摸不着: 'mō bù zháo',
闷头儿: 'mèn tou er',
没谱儿: 'méi pǔ er',
铆劲儿: 'mǎo jìn er',
@@ -321,7 +310,7 @@ const DICT3: { [prop: string]: string } = {
骨朵儿: 'gū duǒ er',
功劳簿: 'gōng láo bù',
都江堰: 'dū jiāng yàn',
- 一担水: 'yī dàn shuǐ',
+ 一担水: 'yí dàn shuǐ',
否极泰: 'pǐ jí tài',
泰来否: 'tài lái pǐ',
咳特灵: 'ké tè líng',
diff --git a/lib/data/dict4.ts b/lib/data/dict4.ts
index b4470d8..362ec57 100644
--- a/lib/data/dict4.ts
+++ b/lib/data/dict4.ts
@@ -3,7 +3,7 @@ import type { Pattern } from '../../lib/common/ac';
const DICT4: { [prop: string]: string } = {
成吉思汗: 'chéng jí sī hán',
四通八达: 'sì tōng bā dá',
- 一模一样: 'yī mú yī yàng',
+ 一模一样: 'yì mú yí yàng',
青藏高原: 'qīng zàng gāo yuán',
阿弥陀佛: 'ē mí tuó fó',
解放思想: 'jiè fàng sī xiǎng',
@@ -12,7 +12,6 @@ const DICT4: { [prop: string]: string } = {
荷枪实弹: 'hè qiāng shí dàn',
兴高采烈: 'xìng gāo cǎi liè',
无能为力: 'wú néng wéi lì',
- 融为一体: 'róng wéi yī tǐ',
布鲁塞尔: 'bù lǔ sài ěr',
为所欲为: 'wéi suǒ yù wéi',
克什米尔: 'kè shí mǐ ěr',
@@ -20,17 +19,15 @@ const DICT4: { [prop: string]: string } = {
不为人知: 'bù wéi rén zhī',
结结巴巴: 'jiē jiē bā bā',
前仆后继: 'qián pū hòu jì',
- 一年一度: 'yì nián yí dù',
各行各业: 'gè háng gè yè',
- 合二为一: 'hé èr wéi yī',
铺天盖地: 'pū tiān gài dì',
直截了当: 'zhí jié liǎo dàng',
- 供不应求: 'gōng bù yìng qiú',
+ 供不应求: 'gōng bú yìng qiú',
御史大夫: 'yù shǐ dà fū',
不为瓦全: 'bù wéi wǎ quán',
不可收拾: 'bù kě shōu shi',
胡作非为: 'hú zuò fēi wéi',
- 分毫不差: 'fēn háo bù chā',
+ 分毫不差: 'fēn háo bú chà',
模模糊糊: 'mó mó hu hū',
不足为奇: 'bù zú wéi qí',
如之奈何: 'rú zhī nai hé',
@@ -39,7 +36,6 @@ const DICT4: { [prop: string]: string } = {
深恶痛绝: 'shēn wù tòng jué',
高高兴兴: 'gāo gāo xìng xìng',
唉声叹气: 'āi shēng tàn qì',
- 混为一谈: 'hùn wéi yī tán',
不了了之: 'bù liǎo liǎo zhī',
汉藏语系: 'hàn zàng yǔ xì',
处心积虑: 'chǔ xīn jī lǜ',
@@ -56,7 +52,6 @@ const DICT4: { [prop: string]: string } = {
结结实实: 'jiē jiē shí shí',
有的放矢: 'yǒu dì fàng shǐ',
叽哩咕噜: 'jī lǐ gū lū',
- 合而为一: 'hé ér wéi yī',
调兵遣将: 'diào bīng qiǎn jiàng',
载歌载舞: 'zài gē zài wǔ',
转危为安: 'zhuǎn wēi wéi ān',
@@ -66,12 +61,11 @@ const DICT4: { [prop: string]: string } = {
见义勇为: 'jiàn yì yǒng wéi',
相差无几: 'xiāng chā wú jǐ',
叹为观止: 'tàn wéi guān zhǐ',
- 闷闷不乐: 'mèn mèn bù lè',
+ 闷闷不乐: 'mèn mèn bú lè',
喜怒哀乐: 'xǐ nù āi lè',
鲜为人知: 'xiǎn wéi rén zhī',
张牙舞爪: 'zhāng yá wǔ zhǎo',
为非作歹: 'wéi fēi zuò dǎi',
- 一蹶不振: 'yī jué bù zhèn',
含糊其辞: 'hán hú qí cí',
疲于奔命: 'pí yú bēn mìng',
勉为其难: 'miǎn wéi qí nán',
@@ -80,8 +74,7 @@ const DICT4: { [prop: string]: string } = {
不着边际: 'bù zhuó biān jì',
大模大样: 'dà mú dà yàng',
寻欢作乐: 'xún huān zuò lè',
- 一走了之: 'yī zǒu liǎo zhī',
- 一年到头: 'yì nián dào tóu',
+ 一走了之: 'yì zǒu liǎo zhī',
字里行间: 'zì lǐ háng jiān',
含含糊糊: 'hán hán hu hū',
数一数二: 'shǔ yī shǔ èr',
@@ -89,7 +82,7 @@ const DICT4: { [prop: string]: string } = {
破涕为笑: 'pò tì wéi xiào',
深更半夜: 'shēn gēng bàn yè',
千差万别: 'qiān chā wàn bié',
- 数不胜数: 'shǔ bù shèng shǔ',
+ 数不胜数: 'shǔ bú shèng shǔ',
据为己有: 'jù wéi jǐ yǒu',
天旋地转: 'tiān xuán dì zhuàn',
养尊处优: 'yǎng zūn chǔ yōu',
@@ -110,16 +103,15 @@ const DICT4: { [prop: string]: string } = {
异曲同工: 'yì qǔ tóng gōng',
各有所长: 'gè yǒu suǒ chéng',
的的确确: 'dí dí què què',
- 一言为定: 'yī yán wéi dìng',
哄堂大笑: 'hōng táng dà xiào',
- 听而不闻: 'tīng ér bú wén',
+ 听而不闻: 'tīng ér bù wén',
刀耕火种: 'dāo gēng huǒ zhòng',
内分泌腺: 'nèi fèn mì xiàn',
化险为夷: 'huà xiǎn wéi yí',
百发百中: 'bǎi fā bǎi zhòng',
重见天日: 'chóng jiàn tiān rì',
反败为胜: 'fǎn bài wéi shèng',
- 一了百了: 'yī liǎo bǎi liǎo',
+ 一了百了: 'yì liǎo bǎi liǎo',
大大咧咧: 'dà da liē liē',
心急火燎: 'xīn jí huǒ liǎo',
粗心大意: 'cū xīn dà yi',
@@ -134,13 +126,11 @@ const DICT4: { [prop: string]: string } = {
为时已晚: 'wéi shí yǐ wǎn',
如数家珍: 'rú shǔ jiā zhēn',
心里有数: 'xīn lǐ yǒu shù',
- 一盘散沙: 'yī pán sǎn shā',
以牙还牙: 'yǐ yá huán yá',
神不守舍: 'shén bù shǒu shě',
孟什维克: 'mèng shí wéi kè',
各自为战: 'gè zì wéi zhàn',
怨声载道: 'yuàn shēng zài dào',
- 一哄而散: 'yī hòng ér sàn',
救苦救难: 'jiù kǔ jiù nàn',
好好先生: 'hǎo hǎo xiān sheng',
怪模怪样: 'guài mú guài yàng',
@@ -151,7 +141,7 @@ const DICT4: { [prop: string]: string } = {
步步为营: 'bù bù wéi yíng',
好大喜功: 'hào dà xǐ gōng',
众矢之的: 'zhòng shǐ zhī dì',
- 长生不死: 'cháng shēng bū sǐ',
+ 长生不死: 'cháng shēng bù sǐ',
蔚为壮观: 'wèi wéi zhuàng guān',
不可胜数: 'bù kě shèng shǔ',
鬼使神差: 'guǐ shǐ shén chāi',
@@ -224,7 +214,6 @@ const DICT4: { [prop: string]: string } = {
入土为安: 'rù tǔ wéi ān',
下不为例: 'xià bù wéi lì',
一哄而上: 'yì hōng ér shàng',
- 一股劲儿: 'yī gǔ jìn er',
没头苍蝇: 'méi tóu cāng ying',
天差地远: 'tiān chā dì yuǎn',
风卷残云: 'fēng juǎn cán yún',
@@ -233,12 +222,11 @@ const DICT4: { [prop: string]: string } = {
行家里手: 'háng jiā lǐ shǒu',
狼狈为奸: 'láng bèi wéi jiān',
处变不惊: 'chǔ biàn bù jīng',
- 一唱一和: 'yī chàng yī hè',
- 一念之差: 'yī niàn zhī chā',
+ 一唱一和: 'yí chàng yí hè',
+ 一念之差: 'yí niàn zhī chā',
金蝉脱壳: 'jīn chán tuō qiào',
滴滴答答: 'dī dī dā dā',
硕果累累: 'shuò guǒ léi léi',
- 只知其一: 'zhǐ zhī qí yī',
好整以暇: 'hào zhěng yǐ xiá',
红得发紫: 'hóng de fā zǐ',
传为美谈: 'chuán wéi měi tán',
@@ -252,7 +240,7 @@ const DICT4: { [prop: string]: string } = {
窗明几净: 'chuāng míng jī jìng',
泰然处之: 'tài rán chǔ zhī',
怒发冲冠: 'nù fà chōng guān',
- 不甚了了: 'bù shèn liǎo liǎo',
+ 不甚了了: 'bú shèn liǎo liǎo',
有机玻璃: 'yǒu jī bō li',
骨头架子: 'gú tou jià zi',
义薄云天: 'yì bó yún tiān',
@@ -288,8 +276,7 @@ const DICT4: { [prop: string]: string } = {
家长里短: 'jiā cháng lǐ duǎn',
宽大为怀: 'kuān dà wéi huái',
左膀右臂: 'zuǒ bǎng yòu bì',
-
- 一笑了之: 'yī xiào liǎo zhī',
+ 一笑了之: 'yí xiào liǎo zhī',
天下为公: 'tiān xià wéi gōng',
还我河山: 'huán wǒ hé shān',
何足为奇: 'hé zú wéi qí',
@@ -311,10 +298,10 @@ const DICT4: { [prop: string]: string } = {
钢化玻璃: 'gāng huà bō li',
正中下怀: 'zhèng zhòng xià huái',
以身许国: 'yǐ shēng xǔ guó',
- 一语中的: 'yī yǔ zhōng dì',
+ 一语中的: 'yì yǔ zhōng dì',
丧魂落魄: 'sàng hún luò pò',
三座大山: 'sān zuò tài shān',
- 济济一堂: 'jǐ jǐ yī táng',
+ 济济一堂: 'jǐ jǐ yì táng',
好事之徒: 'hào shì zhī tú',
干净利索: 'gàn jìng lì suǒ',
出将入相: 'chū jiàng rù xiàng',
@@ -330,7 +317,6 @@ const DICT4: { [prop: string]: string } = {
数典忘祖: 'shǔ diǎn wàng zǔ',
人事不省: 'rén shì bù xǐng',
曲高和寡: 'qǔ gāo hè guǎ',
- 偶一为之: 'ǒu yī wéi zhī',
屡教不改: 'lǚ jiàn bù gǎi',
互为因果: 'hù wéi yīn guò',
互为表里: 'hù wéi biǎo lǐ',
@@ -341,9 +327,7 @@ const DICT4: { [prop: string]: string } = {
走为上策: 'zǒu wéi shàng cè',
冤家对头: 'yuān jia duì tóu',
有隙可乘: 'yǒu xì kě chèng',
- 一无所得: 'yī wú suǒ dé',
- 一鳞半爪: 'yī lín bàn zhǎo',
- 一哄而起: 'yī hōng ér qǐ',
+ 一鳞半爪: 'yì lín bàn zhǎo',
片言只语: 'piàn yán zhǐ yǔ',
开花结实: 'kāi huā jié shí',
经年累月: 'jīng nián lěi yuè',
@@ -364,8 +348,6 @@ const DICT4: { [prop: string]: string } = {
排难解纷: 'pái nàn jiě fēn',
处之泰然: 'chǔ zhī tài rán',
指鹿为马: 'zhǐ lù wéi mǎ',
- 一吐为快: 'yī tǔ wéi kuài',
- 一丘之貉: 'yī qiū zhī hé',
危如累卵: 'wēi rú lěi luǎn',
天兵天将: 'tiān bīng tiān jiàng',
舍近求远: 'shě jìn qiú yuǎn',
@@ -381,7 +363,7 @@ const DICT4: { [prop: string]: string } = {
削足适履: 'xuē zú shì lǚ',
先睹为快: 'xiān dǔ wéi kuài',
啼饥号寒: 'tí jī háo hán',
- 疏不间亲: 'shū bù jiàn qīn',
+ 疏不间亲: 'shū bú jiàn qīn',
神差鬼使: 'shén chāi guǐ shǐ',
敲敲打打: 'qiāo qiāo dā dā',
平铺直叙: 'píng pū zhí xù',
@@ -394,7 +376,6 @@ const DICT4: { [prop: string]: string } = {
大人先生: 'dà rén xiān sheng',
与民更始: 'yǔ rén gēng shǐ',
叶落归根: 'yè luò huī gēn',
- 虚晃一枪: 'xiù huàng yī qiāng',
树碑立传: 'shù bēi lì zhuàn',
是非得失: 'shì fēi dé shī',
实逼处此: 'shí bī chǔ cǐ',
@@ -423,11 +404,11 @@ const DICT4: { [prop: string]: string } = {
箪食壶浆: 'dān sì hú jiāng',
创巨痛深: 'chuāng jù tòng shēn',
草长莺飞: 'cǎo zhǎng yīng fēi',
- 坐视不救: 'zuò shī bù jiù',
+ 坐视不救: 'zuò shī bú jiù',
以己度人: 'yǐ jǐ duó rén',
随行就市: 'suí háng jiù shì',
文以载道: 'wén yǐ zài dào',
- 文不对题: 'wén bù duì tí',
+ 文不对题: 'wén bú duì tí',
铁板钉钉: 'tiě bǎn dìng dīng',
身体发肤: 'shēn tǐ fà fū',
缺吃少穿: 'quē chī xhǎo chuān',
@@ -470,9 +451,8 @@ const DICT4: { [prop: string]: string } = {
转祸为福: 'zhuǎn huò wéi fú',
勇冠三军: 'yǒng guàn sān jūn',
易地而处: 'yì dì ér chǔ',
- 一语破的: 'yī yǔ pò dì',
卸磨杀驴: 'xiè mò shā lǘ',
- 玩儿不转: 'wán ér bù zhuàn',
+ 玩儿不转: 'wán ér bú zhuàn',
天道好还: 'tiān dào hǎo huán',
身单力薄: 'shēn dān lì bó',
撒豆成兵: 'sǎ dòu chéng bīng',
@@ -515,7 +495,7 @@ const DICT4: { [prop: string]: string } = {
多难兴邦: 'duō nàn xīng bāng',
顿开茅塞: 'dùn kāi máo sè',
弹尽援绝: 'dàn jìn yuán jué',
- 不破不立: 'bù può bù lì',
+ 不破不立: 'bú può bú lì',
坐地自划: 'zuò dì zì huá',
坐不重席: 'zuò bù chóng xí',
坐不窥堂: 'zùo bù kuī táng',
@@ -597,7 +577,6 @@ const DICT4: { [prop: string]: string } = {
铢量寸度: 'zhū liáng cùn duó',
铢两悉称: 'zhū liǎng xī chèn',
铢积寸累: 'zhū jī cùn lěi',
- 侏儒一节: 'zhū rǔ yī jié',
侏儒观戏: 'zhū rǔ guān xì',
朱槃玉敦: 'zhū pán yù duì',
朱盘玉敦: 'zhū pán yù duì',
@@ -620,7 +599,7 @@ const DICT4: { [prop: string]: string } = {
擿埴索途: 'zhāi zhí suǒ tú',
稚齿婑媠: 'zhì chǐ wǒ tuǒ',
栉比鳞差: 'zhì bǐ lín cǐ',
- 至当不易: 'zhì dàng bù yì',
+ 至当不易: 'zhì dàng bú yì',
指皁为白: 'zhǐ zào wéi bái',
指皂为白: 'zhǐ zào wéi bái',
指雁为羹: 'zhǐ yàn wéi gēng',
@@ -682,7 +661,6 @@ const DICT4: { [prop: string]: string } = {
攒零合整: 'cuán líng hé zhěng',
攒锋聚镝: 'cuán fēng jù dí',
载舟覆舟: 'zài zhōu fù zhōu',
- 载一抱素: 'zài yī bào sù',
载笑载言: 'zài xiào zài yán',
载驱载驰: 'zài qū zài chí',
载酒问字: 'zài jiǔ wèn zì',
@@ -695,7 +673,7 @@ const DICT4: { [prop: string]: string } = {
月中折桂: 'yuè zhōng shé guì',
月没参横: 'yuè mò shēn héng',
月落参横: 'yuè luò shēn héng',
- 远不间亲: 'yuǎn bù jiàn qīn',
+ 远不间亲: 'yuǎn bú jiàn qīn',
鬻驽窃价: 'yù nǔ qiè jià',
鬻鸡为凤: 'yù jī wéi fèng',
遇难成祥: 'yù nàn chéng xiáng',
@@ -718,7 +696,6 @@ const DICT4: { [prop: string]: string } = {
予取予求: 'yú qǔ yú qiú',
予取予夺: 'yú qǔ yú duó',
于家为国: 'yú jiā wéi guó',
- 又弱一个: 'yòu ruò yī gè',
有借无还: 'yǒu jiè wú huán',
有加无已: 'yǒu jiā wǔ yǐ',
有国难投: 'yǒu guó nán tóu',
@@ -777,7 +754,6 @@ const DICT4: { [prop: string]: string } = {
以法为教: 'yǐ fǎ wéi jiào',
以耳为目: 'yǐ ěr wéi mù',
以大恶细: 'yǐ dà wù xì',
- 以不济可: 'yǐ fǒu jì kě',
以白为黑: 'yǐ bái wéi hēi',
遗世忘累: 'yí shì wàng lěi',
遗寝载怀: 'yí qǐn zài huái',
@@ -790,21 +766,7 @@ const DICT4: { [prop: string]: string } = {
衣锦食肉: 'yì jǐn shí ròu',
衣锦过乡: 'yì jǐn guò xiāng',
衣单食薄: 'yī dān shí bó',
- 一之为甚: 'yī zhī wéi shèn',
- 一笑了事: 'yī xiào le shì',
- 一现昙华: 'yī xiàn tán huā',
- 一岁载赦: 'yī suì zài shè',
- 一切万物: 'yī qiē wàn wù',
- 一鳞一爪: 'yī lín yī zhǎo',
- 一鳞片爪: 'yī lín piàn zhǎo',
- 一了百当: 'yī liǎo bǎi dàng',
- 一见了然: 'yī jiàn liǎo rán',
- 一还一报: 'yī huán yī bào',
- 一毫不差: 'yī háo bù chā',
- 一倡百和: 'yī chàng bǎi hè',
- 一鞭先著: 'yī biān xiān zhuó',
- 一笔抹摋: 'yī bǐ mò sà',
- 一暴十寒: 'yī pù shí hán',
+ 一还一报: 'yì huán yí bào',
夜静更阑: 'yè jìng gēng lán',
叶公好龙: 'yè gōng hào lóng',
野调无腔: 'yě diào wú qiāng',
@@ -897,7 +859,6 @@ const DICT4: { [prop: string]: string } = {
削草除根: 'xuē cǎo chú gēn',
想望风褱: 'xiǎng wàng fēng shèng',
香培玉琢: 'xiang pei yu zuo',
- 相与为一: 'xiāng yǔ wéi yī',
相鼠有皮: 'xiàng shǔ yǒu pí',
相时而动: 'xiàng shí ér dòng',
相切相磋: 'xiāng qiē xiāng cuō',
@@ -947,7 +908,7 @@ const DICT4: { [prop: string]: string } = {
温席扇枕: 'wēn xí shān zhěn',
温凊定省: 'wēn qǐng dìng shěng',
温衾扇枕: 'wēn qīn shān zhěn',
- 亹亹不倦: 'tān wěi bù juàn',
+ 亹亹不倦: 'tān wěi bú juàn',
委委佗佗: 'wēi wēi tuó tuó',
委曲成全: 'wěi qǔ chéng quán',
尾大难掉: 'wěi dà nán diào',
@@ -960,7 +921,7 @@ const DICT4: { [prop: string]: string } = {
为善最乐: 'wéi shàn zuì lè',
为蛇画足: 'wéi shé huà zú',
为山止篑: 'wéi shān zhǐ kuì',
- 为仁不富: 'wéi rén bù fù',
+ 为仁不富: 'wéi rén bú fù',
为裘为箕: 'wéi qiú wéi jī',
为民父母: 'wéi mín fù mǔ',
为虺弗摧: 'wéi huǐ fú cuī',
@@ -1020,7 +981,6 @@ const DICT4: { [prop: string]: string } = {
同恶相恤: 'tóng wù xiāng xù',
痌瘝在抱: 'tōng guān zào bào',
通文调武: 'tōng wén diào wǔ',
- 通同一气: 'tōng tóng yī yì',
铤鹿走险: 'dìng lù zǒu xiǎn',
停留长智: 'tíng liú zhǎng zhì',
铁树开华: 'tiě shù kāi huā',
@@ -1033,7 +993,7 @@ const DICT4: { [prop: string]: string } = {
恬不为怪: 'tián bù wéi guài',
天下为笼: 'tiān xià wéi lóng',
天台路迷: 'tiān tái lù mí',
- 天年不遂: 'tiān nián bù suì',
+ 天年不遂: 'tiān nián bú suì',
天宝当年: 'tian bao dang nian',
桃蹊柳曲: 'táo qī liǔ qǔ',
堂皇冠冕: 'táng huáng guàn miǎn',
@@ -1046,8 +1006,7 @@ const DICT4: { [prop: string]: string } = {
狧穅及米: 'shì kǎn jí mǐ',
损军折将: 'sǔn jūn zhé jiàng',
遂心应手: 'suì xīn yīng shǒu',
- 遂迷不窹: 'suí méi bù wù',
- 岁月不居: 'suì yuè bù jú',
+ 遂迷不窹: 'suí méi bú wù',
岁聿其莫: 'suì yù qí mù',
随物应机: 'suí wù yīng jī',
随风而靡: 'suí fēng ér mǐ',
@@ -1085,7 +1044,6 @@ const DICT4: { [prop: string]: string } = {
数往知来: 'shǔ wǎng zhī lái',
数米量柴: 'shǔ mǐ ér chái',
数理逻辑: 'shù lǐ luó ji',
- 数见不鲜: 'shuò jiàn bù xiān',
数黄道黑: 'shu huang dao hei',
数黑论黄: 'shǔ hēi lùn huáng',
数短论长: 'shǔ duǎn lùn cháng',
@@ -1123,7 +1081,6 @@ const DICT4: { [prop: string]: string } = {
实与有力: 'shí yù yǒu lì',
实偪处此: 'shí bèng chǔ cǐ',
识微知著: 'shí wēi zhī zhuó',
- 时运不齐: 'shí yùn bù jì',
时亨运泰: 'shí hēng yùn tai',
石英玻璃: 'shí yīng bō li',
石室金匮: 'shí shì jīn guì',
@@ -1134,13 +1091,12 @@ const DICT4: { [prop: string]: string } = {
什围伍攻: 'shí wéi wǔ gōng',
十魔九难: 'shí mó jiǔ nàn',
十夫楺椎: 'shí fū zhī zhuī',
- 十不当一: 'shí bù huò yī',
诗书发冢: 'shī shū fà zhǒng',
虱处裈中: 'shī chǔ kūn zhōng',
师直为壮: 'shī zhí wéi zhuàng',
失马塞翁: 'shī mǎ sài wēng',
尸居龙见: 'shī jū lóng xiàn',
- 盛水不漏: 'chéng shuǐ bù lòu',
+ 盛水不漏: 'chéng shuǐ bú lòu',
圣经贤传: 'shèng jīng xián zhuàn',
圣君贤相: 'shèng jīng xián xiàng',
生拖死拽: 'shēng tuō sǐ zhuāi',
@@ -1201,7 +1157,7 @@ const DICT4: { [prop: string]: string } = {
三人为众: 'sān rén wèi zhòng',
三差五错: 'sān chā wǔ cuò',
三差两错: 'sān chā liǎng cuò',
- 三不拗六: 'sān bù niù liù',
+ 三不拗六: 'sān bú niù liù',
塞翁之马: 'sài wēng zhī mǎ',
塞翁得马: 'sài wēng dé mǎ',
塞井焚舍: 'sāi jǐng fén shě',
@@ -1318,8 +1274,6 @@ const DICT4: { [prop: string]: string } = {
牵强附合: 'qiān qiáng fù hé',
千姿万态: 'qiān zī wàn tai',
千状万态: 'qiān zhuàng wàn tai',
- 千载一合: 'qiān zài yī hé',
- 千载一弹: 'qiān zǎi yī dàn',
千态万状: 'qiān tai wàn zhuàng',
千磨百折: 'qiān mó bǎi shé',
千了万当: 'qiān le wàn dàng',
@@ -1400,7 +1354,7 @@ const DICT4: { [prop: string]: string } = {
泥名失实: 'nì míng shī shí',
泥而不滓: 'niè ér bù zǐ',
能者为师: 'néng zhě wéi shī',
- 能不称官: 'néng bù chèn guān',
+ 能不称官: 'néng bú chèn guān',
挠直为曲: 'náo zhí wéi qū',
囊萤照读: 'náng yíng zhào shū',
难进易退: 'nan jin yi tui',
@@ -1459,7 +1413,6 @@ const DICT4: { [prop: string]: string } = {
扪参历井: 'mén shēn lì jǐng',
门单户薄: 'mén dān hù bó',
昧旦晨兴: 'mèi dàn chún xīng',
- 没衷一是: 'mò zhōng yī shì',
没金饮羽: 'mò jīn yǐn yǔ',
冒名接脚: 'mào míng jiě jiǎo',
毛遂堕井: 'máo suí duò jǐng',
@@ -1507,7 +1460,7 @@ const DICT4: { [prop: string]: string } = {
龙游曲沼: 'long you qu zhao',
龙血玄黄: 'lóng xuě xuán huáng',
龙雕凤咀: 'lóng diāo fèng jǔ',
- 六神不安: 'liù shén bǔ ān',
+ 六神不安: 'liù shén bù ān',
六尺之讬: 'liù chǐ zhī quàn',
柳巷花街: 'liǔ xiòng huā jiē',
柳街花巷: 'liǔ jiē huā xiòng',
@@ -1516,7 +1469,7 @@ const DICT4: { [prop: string]: string } = {
令原之戚: 'líng yuán zhī qī',
令人捧腹: 'lìng rén pěng fǔ',
陵劲淬砺: 'líng jìng cuì lì',
- 临难不惧: 'lín nàn bù jǔ',
+ 临难不惧: 'lín nàn bú jù',
临敌易将: 'lín dí yì jiàng',
裂裳衣疮: 'liè sháng yī chuāng',
裂裳裹足: 'liè cháng guǒ zú',
@@ -1556,7 +1509,7 @@ const DICT4: { [prop: string]: string } = {
历精为治: 'lì jīng wéi zhì',
历精更始: 'lì jīng gèng shǐ',
哩哩罗罗: 'li li luō luō',
- 李广不侯: 'lǐ guǎng bù hòu',
+ 李广不侯: 'lǐ guǎng bú hòu',
礼为情貌: 'lǐ wéi qíng mào',
礼让为国: 'lǐ ràng wéi guó',
礼坏乐崩: 'lǐ huài yuè bēng',
@@ -1630,7 +1583,7 @@ const DICT4: { [prop: string]: string } = {
居轴处中: 'jū zhóu chǔ zhōng',
居下讪上: 'jú xià shàn shàng',
灸艾分痛: 'jiù ài fēn tòng',
- 久要不忘: 'jiǔ yāo bù wàng',
+ 久要不忘: 'jiǔ yāo bú wàng',
九转功成: 'jiǔ zhuàn gōng chéng',
九蒸三熯: 'jiǔ zhēng sān shēng',
敬业乐群: 'jìng yè yào qún',
@@ -1655,7 +1608,7 @@ const DICT4: { [prop: string]: string } = {
矜己自饰: 'jīn jǐ zhì shì',
矜功负气: 'jīn gōng fǔ qì',
津关险塞: 'jīn guān xiǎn sài',
- 金吾不禁: 'jīn wú bù jìn',
+ 金吾不禁: 'jīn wú bú jìn',
金匮石室: 'jīn guì shí shì',
金翅擘海: 'jīn chì bāi hǎi',
戒奢宁俭: 'jiè shē nìng jiān',
@@ -1667,10 +1620,8 @@ const DICT4: { [prop: string]: string } = {
诘屈謷牙: 'jié qū dà yá',
诘屈磝碻: 'jié qū bìng zhòu',
诘曲聱牙: 'jié qǔ áo yá',
- 教一识百: 'jiāo yī shí bǎi',
教猱升木: 'jiāo náo shēng mù',
较瘦量肥: 'jiào shòu liàng féi',
- 矫矫不群: 'jiǎo jiǎo bù qùn',
矫国更俗: 'jiǎo guó gēng sú',
皎阳似火: 'jiǎo yáng shì huǒ',
挢抂过正: 'jiǎo kuāng guò zhèng',
@@ -1692,7 +1643,6 @@ const DICT4: { [prop: string]: string } = {
槛花笼鹤: 'jiàn huā lóng hè',
鉴影度形: 'jiàn yǐng duó xíng',
渐不可长: 'jiàn bù kě zhǎng',
- 剑首一吷: 'jiàn shǒu yī guī',
见义敢为: 'jiàn yì gǎn wéi',
见义当为: 'jiàn yì dāng wéi',
见义必为: 'jiàn yì bì wéi',
@@ -1701,7 +1651,7 @@ const DICT4: { [prop: string]: string } = {
见几而作: 'jiàn jī ér zuò',
见弹求鸮: 'jiàn dàn qiú háo',
简丝数米: 'jiǎn sī shǔ mǐ',
- 俭不中礼: 'jiǎn bù zhòng lǐ',
+ 俭不中礼: 'jiǎn bú zhòng lǐ',
间见层出: 'jiàn xiàn céng chū',
间不容息: 'jiàn bù róng xī',
间不容瞚: 'jiān bù róng xǐ',
@@ -1723,7 +1673,7 @@ const DICT4: { [prop: string]: string } = {
计功量罪: 'jì gōng liàng zuì',
掎裳连襼: 'jǐ shang lián zhēng',
虮虱相吊: 'jǐ shī xiēng diào',
- 几不欲生: 'jī bù yù shēng',
+ 几不欲生: 'jī bú yù shēng',
集腋为裘: 'jí yè wéi qiú',
疾不可为: 'jí bù kě wéi',
急脉缓灸: 'jí mài huǎn jiù',
@@ -1766,7 +1716,6 @@ const DICT4: { [prop: string]: string } = {
毁钟为铎: 'huǐ zhōng wéi duó',
毁冠裂裳: 'huǐ guān liè cháng',
晦盲否塞: 'huì máng pǐ sè',
- 诲人不惓: 'huì rén bù tiě',
悔过自责: 'huǐ guò zì zè',
回船转舵: 'huí chuán zhǎn duò',
潢池盗弄: 'huáng shi dào nòng',
@@ -1788,7 +1737,6 @@ const DICT4: { [prop: string]: string } = {
还淳反朴: 'huán chún fǎn pǔ',
还淳反古: 'huán chún fǎn gǔ',
坏裳为裤: 'huài shang wéi kù',
- 槐南一梦: 'huái nán yī mēng',
画蛇著足: 'huà shé zhuó zú',
画地为狱: 'huà dì wéi yù',
画荻和丸: 'huà dí huò wán',
@@ -1840,7 +1788,6 @@ const DICT4: { [prop: string]: string } = {
和颜说色: 'hé yán yuè sè',
何所不为: 'hé suǒ bù wéi',
合浦还珠: 'hé pǔ huán zhū',
- 合两为一: 'hé liǎng wéi yī',
合从连衡: 'hé zòng lián héng',
浩浩汤汤: 'hào hào shāng shāng',
号咷大哭: 'háo táo dà kū',
@@ -1869,14 +1816,12 @@ const DICT4: { [prop: string]: string } = {
含宫咀征: 'hán gōng jǔ zhēng',
过隙白驹: 'guò xī bái jū',
过为已甚: 'guò wéi yǐ shèn',
- 桂折一枝: 'guì shé yī zhī',
桂折兰摧: 'guì shé lán cuī',
规旋矩折: 'guī xuán jǔ shé',
广文先生: 'guǎng wén xiān sheng',
广譬曲谕: 'guǎng pì qǔ yù',
广陵散绝: 'guǎng líng sǎn jué',
冠山戴粒: 'guàn shān dài lì',
- 冠绝一时: 'guàn jué yī shí',
冠屦倒施: 'guàn jù dǎo shī',
官官相为: 'guān guān xiāng wéi',
关情脉脉: 'guān qíng mài mài',
@@ -1917,7 +1862,7 @@ const DICT4: { [prop: string]: string } = {
亘古奇闻: 'gèn gǔ qī wén',
根生土长: 'gēn shēn tǔ zhǎng',
各色名样: 'gè sè gè yàng',
- 格格不纳: 'gē gē bù nà',
+ 格格不纳: 'gē gē bú nà',
格格不吐: 'gē gē bù tǔ',
歌莺舞燕: 'gē yíng wǔ yàn',
告朔饩羊: 'gù shuò xì yáng',
@@ -1985,7 +1930,7 @@ const DICT4: { [prop: string]: string } = {
方领圆冠: 'fāng lǐng yuán guàn',
贩夫皁隶: 'fàn fū yě lì',
泛应曲当: 'fàn yīng qǔ dāng',
- 犯而不校: 'fàn ér bù jiào',
+ 犯而不校: 'fàn ér bú jiào',
返朴还真: 'fǎn pǔ huán zhēn',
返本还源: 'fǎn běn huán yuán',
返本还元: 'fǎn běn huán yuán',
@@ -2009,7 +1954,7 @@ const DICT4: { [prop: string]: string } = {
耳目闭塞: 'ěr mù bì sāi',
儿女心肠: 'ér nǘ xīn cháng',
儿女亲家: 'ér nǚ qìng jiā',
- 恩不放债: 'ēn bù fàng zhai',
+ 恩不放债: 'ēn bú fàng zhai',
遏恶扬善: 'è è yán shàn',
饿殍枕藉: 'è piǎo zhěn jí',
饿殍载道: 'è piǎo zài dào',
@@ -2019,7 +1964,7 @@ const DICT4: { [prop: string]: string } = {
恶湿居下: 'wù shī jū xià',
恶居下流: 'wù jū xià liú',
恶恶从短: 'wù wù cóng duǎn',
- 恶不去善: 'wù bù qù shàn',
+ 恶不去善: 'wù bú qù shàn',
扼吭拊背: 'è gāng fǔ bèi',
扼吭夺食: 'è gāng duó shí',
扼襟控咽: 'è jīn kòng yān',
@@ -2097,7 +2042,6 @@ const DICT4: { [prop: string]: string } = {
登台拜将: 'dēng tái bài jiàng',
灯尽油干: 'dēng jìn yóu gàn',
灯蛾扑火: 'dé é pū huǒ',
- 的一确二: 'dí yī què èr',
德薄能鲜: 'dé bó néng xiǎn',
得手应心: 'dé shǒu yīng xīn',
得马折足: 'dé mǎ shé zú',
@@ -2149,7 +2093,6 @@ const DICT4: { [prop: string]: string } = {
慈悲为本: 'cí bēi wéi běn',
纯属骗局: 'chún shú piàn jú',
春笋怒发: 'chūn sǔn mù fā',
- 春风一度: 'chūn fēng yī dù',
春风风人: 'chūn fēng fèng rén',
垂头搨翼: 'chuí tóu dá yì',
吹竹弹丝: 'chuí zhú dàn sī',
@@ -2184,10 +2127,9 @@ const DICT4: { [prop: string]: string } = {
尺二冤家: 'chǐ èr yuān jia',
尺短寸长: 'chǐ duǎn cù cháng',
尺寸之功: 'chǐ cù zhī gōng',
- 吃着不尽: 'chī zhuó bù jìn',
+ 吃着不尽: 'chī zhuó bú jìn',
乘肥衣轻: 'chéng féi yì qīng',
城北徐公: 'chéng běi xǘ gōng',
- 成一家言: 'chěng yī jiān yán',
成败兴废: 'chéng bài xīng fèi',
趁水和泥: 'chèn shuǐ huò ní',
趁哄打劫: 'chèn hōng dǎ jié',
@@ -2212,7 +2154,7 @@ const DICT4: { [prop: string]: string } = {
巢居穴处: 'cháo jū xué chǔ',
超今冠古: 'chāo jīn guàn gǔ',
倡条冶叶: 'chāng tiáo yě yè',
- 倡而不和: 'chàng ér bù hè',
+ 倡而不和: 'chàng ér bú hè',
畅所欲为: 'chàng suǒ yù wéi',
苌弘碧血: 'cháng hóng bì xuě',
长幼尊卑: 'zhǎng yòu zūn bēi',
@@ -2259,31 +2201,28 @@ const DICT4: { [prop: string]: string } = {
不足齿数: 'bù zú chǐ shǔ',
不着疼热: 'bù zhuó téng rè',
不知薡蕫: 'bù zhī dīng dǒng',
- 不越雷池: 'bù yuè léi shi',
- 不亦善夫: 'bù yi shàn fū',
+ 不越雷池: 'bú yuè léi shi',
+ 不亦善夫: 'bù yì shàn fū',
不相为谋: 'bù xiāng wéi móu',
不贪为宝: 'bù tān wé bǎo',
- 不奈之何: 'bù nai zhī hé',
- 不露锋铓: 'bù lù fēng huì',
+ 不露锋铓: 'bú lù fēng huì',
不了而了: 'bù liǎo ér liǎo',
不可胜举: 'bù kě shèng jù',
不可奈何: 'bù kě mài hé',
不可揆度: 'bù kě kuí duó',
不绝如发: 'bù jué rú fà',
不揪不睬: 'bù chǒu bù cǎi',
- 不间不界: 'bù gān bù gà',
不遑启处: 'bù huáng qǐ chǔ',
不遑宁处: 'bù huáng níng chǔ',
不根之谈: 'bù gān zhī tán',
不分青白: 'bù fēn qīng béi',
- 不当不正: 'bù dāng bù zhèng',
+ 不当不正: 'bù dāng bú zhèng',
不差什么: 'bù chà shí mǒ',
不差上下: 'bù chā shàng xià',
不差累黍: 'bù chā lěi shǔ',
不差毫厘: 'bù chā háo lí',
不差毫发: 'bù chā háo fà',
- 不辟斧钺: 'bù bì fǔ yuè',
- 不拔一毛: 'bù bá yì máo',
+ 不辟斧钺: 'bú bì fǔ yuè',
餔糟啜漓: 'bǔ zāo chuò lí',
擘两分星: 'bó liǎng fēn xīng',
簸土扬沙: 'bǒ tǔ yáng shā',
@@ -2291,7 +2230,6 @@ const DICT4: { [prop: string]: string } = {
薄情无义: 'báo qíng wú yì',
薄寒中人: 'bó hán zhòng rén',
博文约礼: 'bó wén yuè lǐ',
- 伯乐一顾: 'bō lè yī gù',
播糠眯目: 'bō kāng mǐ mù',
播穅眯目: 'bō kāng mǐ mù',
剥皮抽筋: 'bō pí chōu jīn',
@@ -2301,7 +2239,6 @@ const DICT4: { [prop: string]: string } = {
拨乱为治: 'bō luàn wéi zhì',
病入骨隨: 'bìng rù gǔ suǐ',
并赃拿贼: 'bìng zhuō ná zéi',
- 并为一谈: 'bìng wéi yī tán',
兵未血刃: 'bīng wèi xuě rèn',
兵微将寡: 'bīng wēi jiàng guǎ',
兵强将勇: 'bīng qiáng àng yǒng',
@@ -2310,15 +2247,13 @@ const DICT4: { [prop: string]: string } = {
冰解的破: 'bīng jiě dì pò',
彬彬济济: 'bīn bīn jǐ jǐ',
别类分门: 'bié lèi fān mén',
- 别开一格: 'bié kāi yí gé',
别鹤离鸾: 'bié hè lí láun',
- 别创一格: 'bié chuàng yí gé',
摽梅之年: 'biào mén zhī nián',
表里为奸: 'biǎo lǐ wéi jiān',
飙发电举: 'biāo fā diàn jù',
变贪厉薄: 'biǎn tān lì bó',
变危为安: 'biàn wēi wéi ān',
- 变幻不测: 'biàn huà bù cè',
+ 变幻不测: 'biàn huà bú cè',
变风改俗: 'biàn fēng yì sú',
鞭约近里: 'biān yuē jīn lǐ',
鞭擗向里: 'biān bì xiàng lǐ',
@@ -2328,8 +2263,8 @@ const DICT4: { [prop: string]: string } = {
避难趋易: 'bì nán qiù yì',
蔽明塞聪: 'bì míng sè cōng',
蔽聪塞明: 'bì cōng sè míng',
- 敝帷不弃: 'bǐ wéi bù qì',
- 敝盖不弃: 'bǐ gài bù qì',
+ 敝帷不弃: 'bǐ wéi bú qì',
+ 敝盖不弃: 'bǐ gài bú qì',
闭目塞耳: 'bì mù sè ěr',
闭明塞聪: 'bì míng sè cōng',
闭门思愆: 'bì gé sī qiān',
@@ -2377,8 +2312,6 @@ const DICT4: { [prop: string]: string } = {
褒贬与夺: 'bǎo biǎn yǔ duó',
帮闲钻懒: 'bāng xián zuān lǎn',
半上落下: 'bàn shàng luò xià',
- 半间不界: 'bàn gān bù gà',
- 半间半界: 'bàn gān bàn gà',
半筹莫展: 'bàn chóu mò chǎn',
拜将封侯: 'bài jiàng fēng hóu',
百中百发: 'bǎi zhòng bǎi fā',
@@ -2387,7 +2320,6 @@ const DICT4: { [prop: string]: string } = {
百了千当: 'bǎi liǎo qiān dāng',
百孔千创: 'bǎi kǒng qiān chuāng',
百堕俱举: 'bǎi huī jù jǔ',
- 百不当一: 'bǎi bù dāng yī',
白衣卿相: 'bái yī qīng xiàng',
白首相庄: 'bái shǒu xiāng zhuāng',
白首为郎: 'bái shǒu wéi láng',
@@ -2425,12 +2357,12 @@ const DICT4: { [prop: string]: string } = {
语不惊人: 'yǔ bù jīng rèn',
于今为烈: 'yú jīn wéi liè',
以古为镜: 'yǐ gǔ wéi jìng',
- 一日三省: 'yī rì sān xǐng',
+ 一日三省: 'yí rì sān xǐng',
燕雀处堂: 'yàn què chǔ táng',
穴居野处: 'xué jū yě chǔ',
五脊六兽: 'wǔ jí liù shòu',
无声无臭: 'wú shēng wú xiù',
- 谓予不信: 'wèi yú bù xìn',
+ 谓予不信: 'wèi yú bú xìn',
万箭攒心: 'wàn jiàn cuán xīn',
舍身为国: 'shě shēn wéi guó',
杀妻求将: 'shā qī qiú jiàng',
diff --git a/lib/data/dict5.ts b/lib/data/dict5.ts
index 3a37776..05872ba 100644
--- a/lib/data/dict5.ts
+++ b/lib/data/dict5.ts
@@ -3,19 +3,18 @@ import type { Pattern } from '../../lib/common/ac';
const DICT5: { [prop: string]: string } = {
巴尔干半岛: 'bā ěr gàn bàn dǎo',
巴尔喀什湖: 'bā ěr kā shí hú',
- 不幸而言中: 'bù xìng ér yán zhòng',
+ 不幸而言中: 'bú xìng ér yán zhòng',
布尔什维克: 'bù ěr shí wéi kè',
何乐而不为: 'hé lè ér bù wéi',
苛政猛于虎: 'kē zhè měng yú hǔ',
蒙得维的亚: 'méng de wéi de yà',
民以食为天: 'mín yǐ shí wéi tiān',
- 拧成一股绳: 'níng chéng yī gǔ shéng',
事后诸葛亮: 'shì hòu zhū gé liàng',
物以稀为贵: 'wù yǐ xī wéi guì',
先下手为强: 'xiān xià shǒu wéi qiáng',
行行出状元: 'háng háng chū zhuàng yuán',
亚得里亚海: 'yà de lǐ yà hǎi',
- 眼不见为净: 'yǎn bù jiàn wéi jìng',
+ 眼不见为净: 'yǎn bú jiàn wéi jìng',
竹筒倒豆子: 'zhú tǒng dǎo dòu zi',
};
export default DICT5;
diff --git a/lib/data/special.ts b/lib/data/special.ts
index 8affec0..4f818d6 100644
--- a/lib/data/special.ts
+++ b/lib/data/special.ts
@@ -1,3 +1,7 @@
+import type { Pattern } from "../common/ac";
+import { Priority } from "@/common/constant";
+import { getSingleWordPinyin, getNumOfTone, getPinyinWithoutTone } from '../core/pinyin/handle';
+
export const InitialList = [
'zh',
'ch',
@@ -92,3 +96,100 @@ export const doubleFinalList = [
'van',
've',
];
+
+/**
+ * @description: 数量词 + 特殊词 音调处理
+ */
+const Numbers = {
+ 一: 'yì',
+ 二: 'èr',
+ 三: 'sān',
+ 四: 'sì',
+ 五: 'wǔ',
+ 六: 'liù',
+ 七: 'qī',
+ 八: 'bā',
+ 九: 'jiǔ',
+ 十: 'shí',
+ 百: 'bǎi',
+ 千: 'qiān',
+ 万: 'wàn',
+ 亿: 'yì',
+ 两: 'liǎng',
+ 双: 'shuāng',
+ 多: 'duō',
+ 几: 'jǐ',
+ 十一: 'shí yī',
+ 零一: 'líng yī',
+ 第一: 'dì yī',
+};
+const NumberWordMap = {
+ 重: 'chóng',
+ 行: 'háng',
+ 斗: 'dǒu',
+};
+function genNumberDict() {
+ const dict: { [key: string]: string; } = {
+ 十一: 'shí yī',
+ 零一: 'líng yī',
+ 第一: 'dì yī',
+ };
+ for (let number in Numbers) {
+ for (let key in NumberWordMap) {
+ const word = `${number}${key}`;
+ const pinyin = `${Numbers[number as keyof typeof Numbers]} ${
+ NumberWordMap[key as keyof typeof NumberWordMap]
+ }`;
+ dict[word] = pinyin;
+ }
+ }
+ return dict;
+}
+const NumberDict = genNumberDict();
+export const PatternNumberDict: Pattern[] = Object.keys(NumberDict).map((key) => ({
+ zh: key,
+ pinyin: NumberDict[key],
+ priority: Priority.DictNumber + key.length,
+ length: key.length,
+}));
+
+
+
+/**
+ * @description: 特殊变调处理:https://zh.wiktionary.org/wiki/Appendix:%E2%80%9C%E4%B8%80%E2%80%9D%E5%8F%8A%E2%80%9C%E4%B8%8D%E2%80%9D%E7%9A%84%E5%8F%98%E8%B0%83
+ */
+const SpecialChangeToneMap = {
+ // 说不说,说一说,叠词之间发音为轻声
+ 不: {
+ 'bú': [4], // "不" 后面跟 4 声时,变调为 2 声
+ },
+ 一: {
+ 'yí': [4], // "一" 后面跟 4 声时,变调为 2 声
+ 'yì': [1, 2, 3],
+ }
+}
+const SpecialChangeToneIgnoreSuffix = ['的', '地', '而', '之', '后', '也', '还'];
+export const SpecialChangeToneList = Object.keys(SpecialChangeToneMap);
+export function getSepecialChangeTone(cur: string, pre: string, next: string) {
+ if (SpecialChangeToneList.indexOf(cur) === -1) {
+ return getSingleWordPinyin(cur);
+ }
+ // 说不说,说一说,叠词之间发音为轻声
+ if (pre === next && getSingleWordPinyin(pre) !== pre) {
+ return getPinyinWithoutTone(getSingleWordPinyin(cur));
+ }
+ if (next && !SpecialChangeToneIgnoreSuffix.includes(next)) {
+ const nextPinyin = getSingleWordPinyin(next);
+ if (nextPinyin !== next) {
+ const nextTone = getNumOfTone(nextPinyin);
+ const pinyinMap = SpecialChangeToneMap[cur as keyof typeof SpecialChangeToneMap];
+ for (let pinyin in pinyinMap) {
+ const tones = pinyinMap[pinyin as keyof typeof pinyinMap] as number[];
+ if (tones.indexOf(Number(nextTone)) !== -1) {
+ return pinyin;
+ }
+ }
+ }
+ }
+ return getSingleWordPinyin(cur);
+}
\ No newline at end of file
diff --git a/test/basic.test.js b/test/basic.test.js
index c3af400..7cebcda 100644
--- a/test/basic.test.js
+++ b/test/basic.test.js
@@ -68,6 +68,6 @@ describe('basic', () => {
it('[basic]test行不行', () => {
const result = pinyin('行不行');
- expect(result).to.be.equal('xíng bù xíng');
+ expect(result).to.be.equal('xíng bu xíng');
});
});
diff --git a/test/number.test.js b/test/number.test.js
deleted file mode 100644
index b0c5341..0000000
--- a/test/number.test.js
+++ /dev/null
@@ -1,29 +0,0 @@
-const { pinyin } = require('../');
-const expect = require('chai').expect;
-
-describe('basic', () => {
- it('[basic]数字发音 一行', () => {
- const result = pinyin('一行');
- expect(result).to.be.equal('yì háng');
- });
-
- it('[basic]数字发音 两行', () => {
- const result = pinyin('两行');
- expect(result).to.be.equal('liǎng háng');
- });
-
- it('[basic]数字发音 多重', () => {
- const result = pinyin('多重');
- expect(result).to.be.equal('duō chóng');
- });
-
- it('[basic]数字发音 一行人', () => {
- const result = pinyin('一行人');
- expect(result).to.be.equal('yī xíng rén');
- });
-
- it('[basic]数字发音 二百零一行', () => {
- const result = pinyin('二百零一行');
- expect(result).to.be.equal('èr bǎi líng yī háng');
- });
-});
diff --git a/test/special.test.js b/test/special.test.js
new file mode 100644
index 0000000..d931be5
--- /dev/null
+++ b/test/special.test.js
@@ -0,0 +1,62 @@
+const { pinyin } = require('../');
+const expect = require('chai').expect;
+
+describe('number', () => {
+ it('[number]数字发音 一行', () => {
+ const result = pinyin('一行');
+ expect(result).to.be.equal('yì háng');
+ });
+
+ it('[number]数字发音 两行', () => {
+ const result = pinyin('两行');
+ expect(result).to.be.equal('liǎng háng');
+ });
+
+ it('[number]数字发音 多重', () => {
+ const result = pinyin('多重');
+ expect(result).to.be.equal('duō chóng');
+ });
+
+ it('[number]数字发音 一行人', () => {
+ const result = pinyin('一行人');
+ expect(result).to.be.equal('yī xíng rén');
+ });
+
+ it('[number]数字发音 二百零一行', () => {
+ const result = pinyin('二百零一行');
+ expect(result).to.be.equal('èr bǎi líng yī háng');
+ });
+});
+
+
+describe('special change tone', () => {
+ it('[special change tone]一面', () => {
+ const result = pinyin('一面');
+ expect(result).to.be.equal('yí miàn');
+ });
+
+ it('[special change tone]一枕黄粱', () => {
+ const result = pinyin('一枕黄粱');
+ expect(result).to.be.equal('yì zhěn huáng liáng');
+ });
+
+ it('[special change tone]说一说', () => {
+ const result = pinyin('说一说');
+ expect(result).to.be.equal('shuō yi shuō');
+ });
+
+ it('[special change tone]不甘', () => {
+ const result = pinyin('不甘');
+ expect(result).to.be.equal('bù gān');
+ });
+
+ it('[special change tone]不悦', () => {
+ const result = pinyin('不悦');
+ expect(result).to.be.equal('bú yuè');
+ });
+
+ it('[special change tone]说不说', () => {
+ const result = pinyin('说不说');
+ expect(result).to.be.equal('shuō bu shuō');
+ });
+});
diff --git a/types/common/constant.d.ts b/types/common/constant.d.ts
index 754711d..917252c 100644
--- a/types/common/constant.d.ts
+++ b/types/common/constant.d.ts
@@ -1,5 +1,6 @@
export declare const DoubleUnicodePrefixReg: RegExp;
export declare const DoubleUnicodeSuffixReg: RegExp;
+export declare const DoubleUnicodeReg: RegExp;
export declare enum Priority {
DictNumber = 15,
DICT2 = 20,
diff --git a/types/core/pinyin/handle.d.ts b/types/core/pinyin/handle.d.ts
index 098eb2c..337d287 100644
--- a/types/core/pinyin/handle.d.ts
+++ b/types/core/pinyin/handle.d.ts
@@ -1,4 +1,11 @@
import type { SingleWordResult, PinyinMode } from '../../common/type';
+/**
+ * @description: 获取单个字符的拼音
+ * @param {string} word
+ * @return {string}
+ */
+type GetSingleWordPinyin = (word: string) => string;
+export declare const getSingleWordPinyin: GetSingleWordPinyin;
export declare const getPinyin: (word: string, list: SingleWordResult[], mode: 'normal' | 'surname') => SingleWordResult[];
/**
* @description: 将带音调符号拼音转换为不带音调拼音
diff --git a/types/data/special.d.ts b/types/data/special.d.ts
index 3bd4305..2f22a6d 100644
--- a/types/data/special.d.ts
+++ b/types/data/special.d.ts
@@ -1,3 +1,4 @@
+import type { Pattern } from "../common/ac";
export declare const InitialList: string[];
export declare const SpecialInitialList: string[];
export declare const SpecialFinalList: string[];
@@ -24,3 +25,6 @@ export declare const SpecialFinalMap: {
u: string;
};
export declare const doubleFinalList: string[];
+export declare const PatternNumberDict: Pattern[];
+export declare const SpecialChangeToneList: string[];
+export declare function getSepecialChangeTone(cur: string, pre: string, next: string): string;