Skip to content

tain198127/naming

Repository files navigation

naming

给我自己孩子起名字的程序

环境

python3.8

jieba0.42.1

funlp0.1.5

jiagu0.2.3

synonyms3.16.0

声调

汉语是有声调的。近体诗和词曲所讲究的平仄,正是利用声调的错落不致,以求 得音乐般的旋律。姓名尽管只有几个字,声调的作用却不容忽视。?汉语共有四 个声调,即:?阴平,ā? 阳平,á? 上声,ǎ? 去声,à? 那么我国的姓氏从声调分,也可分四类:?

  • (1)阴平类。 如:张?孙?丁?薛?温?奚?沙?柯?刁?方?金?衣?安?包?申?周?江?宫?高?郭?曾?甘?朱? 崔?
  • (2)阳平类。
    如:刘?陈?王?杨?石?余?冯?于?吴?邢?门?柴?姚?胡?徐?袁?常?曹?乔?彭?黄?韩?裴? 齐?
  • (3)上声类。
    如:李?董?孔?古?史?左?武?许?贾?巩?郝?吕?米?马?蒋?纪?阚?柳?鲁?沈?伍?展?海? 冷?
  • (4)去声类。
    如:赵?陆?邓?万?宋?杜?步?孟?夏?毕?贺?廖?慕?郑?尚?付?盖?范?聂?费?谢?魏?贝? 叶?
    姓氏有声调的差异,它们对名的声调自然也就有不同的要求。以下我们分单名和 双名加以考察。?

单名只有一个字。每个姓氏都有四种声调组合形式。?

  • (1)阴平类
    阴平类的姓氏有以下四种组合形式:
    A、阴-阴型。例如:张?飞?江?东?朱?熹?方?舟?艾?青?沙?金 B、阴-阳型。例如:丁?玲?丘?弘?甘?宁?安?然?周?瑜?姜?渔? C、阴-上型。例如:包?拯?干?宝?辛?勉?秋?瑾?翁?谷?邹?鲁? D、阴-去型。例如:崔?岳?曾?震?班?固?高?旭?庄?肃?郭?亮???
    上述四种类型的声音都比较和谐,说明阴平类的姓氏具有较强的组合能力。四种 类型相比较,D类阴一去型稍微逊色。这种类型适合使用编辑部响亮的字眼儿。 倘若追求儒雅细腻的格调,一般不要使用阴一去型。?
  • (2)阳平类。?
    阳平类的姓氏有以下四种组合形式:?
    A、阳-阴型。例如:于?谦?刘?苍?毛?享?曹?丕?余?熙?田?间 B、阳-阳型。例如:石?雄?岑?彭?吴?良?何?群?服?虔?杨?亭? C、阳-上型。例如:文?丑?冯?允?黄?侃?程?鼎?卢?勇?蓝?理? D、阳-去型。例如:韩?愈?佟?岱?侯?翼陈?毅?袁?镇?雷?度?
    ?上述四种类型中,A、C、D三种是理想的组合,B类阳一阳型就不那么顺口, 缺乏一气呵成的整体感。人们在称呼时,常常不自觉地改变了姓氏的调值,听上 去像是阴平。古代平声无阴阳之分,因而古人姓名中此类型实际上同阴一阴型无 别。阴平类的姓氏最好选用A、C、D三型。?
  • (3)上声类。?
    上声类的姓氏有以下四种组合形式:?
    A、上-阴型。例如:古?心?左?思?冷?曦?武?英?马?超?耿?光 B、上-阳型。例如:李?白?葛?洪?管?宁?阚?泽?伍?乔?褚?渊 C、上-上型。例如:孔?武?史?谨?柳?永?展?喜?董?朴?柏?古
    D、上-上型。例如:贾?谊?鲁?肃?吕?布?许?慎?海?瑞?沈?固?
    ?上述四种类型中,A、B、D三种是理想的组合,C类上一上型不顺口,称呼时 一般要使姓氏异化为阳平。这样,"柳永"听起来便成了"刘泳","柏古"听起来便 成了"白古"。与其认人改了姓氏,不如命名时避开上声字。?
  • (4)去声类。?
    去声类的姓氏以下四种组合形式:?
    A、去-阴型。例如:岳?飞?宋?江?孟?轲?段?规?范?增?卫?青? B、去-阳型。例如:贺?龙?夏?霖?万?言?赵?云?郑?玄?陆?游? C、去-上型。例如:杜?甫?尚?野?项?羽?叶?挺?邓?鲁?路?楷? D、去-去型。例如:贝?泰?季?布?郁?浩?廖?立?杜?厚?魏?照?
    ?上述四种类型中,A、B、C三种是理想的组合,D类去一去型读起来给人吃车 的感觉。称呼时一般要改变调值。去声类的姓氏命名时,最好不要选用去声字。?? 单名的声调容易掌握,双名多了一个字,声调问题相应也复杂一些。双名加姓氏,

共三个字,每个姓氏均有16种声调组合形式。?

  • (1)阴平类。?
    阴平类的姓氏有以下16种组合形式:
    A、阴-阴-阴型。例如:周嘉缃?江东之?汪叔詹?孙希朱?殷开山?郗僧施? B、阴-阴-阳型。例如:师安石?郭松林?舒知雄?周恩来?方秋白?关开培? C、阴-阴-上型。例如:汤光启?孙星衍?丁飞举?方千里?诸匡鼎?朱光普? D、阴-阴-去型。例如:詹天佑?孙枝蔚?乌斯道?崔公度?薛天定?章金牧? E、阴-阳-阴型。例如:曾原一?施尔宽?朱元璋?丘禾嘉?苏奎章?丁文江? F、阴-阳-阳型。例如:章学诚?詹尔达?甘惟寅?高迎祥?温庭筠?钟人杰? G、阴-阳-上型。例如:勾文鼎?申无宇?姜柔远?段闻礼?张吾瑾?丘逢甲? H、阴-阳-去型。例如:崔如岳?诸弘道?戚人镜?商承祚?臧尔令?张从正? I、阴-上-阴型。例如:康乃心?屈可伸?钟子期?司九经?周汝登?萧省身? J、阴-上-上型。例如:朱隐老?周铁虎?孙子昶?宫守礼?庄有可?萧永藻?
    K、阴-上-阳型。例如:邹守愚?渊有为?朱买臣?章炳麟?张友渔?康伟然? L、阴-上-去型。例如:萧子岳?朱百度?支可大?张我正?江有诰?方以智? M、阴-去-阴型。例如:张若虚?邹汉章?曾万中?甘梦英?龚自珍?章士钊? N、阴-去-阳型。例如:丘必明?雍乐成?柯梦得?申湛然?甄立言?苏光熊? O、阴-去-上型。例如:包万有?湛若水?安致远?戈尚友?温大雅?欧敬竹? P、阴-去-去型。例如:郭沫若?薛万备?丁善庆?刁士敬?汪道贯?辛庆忌? 上述16种组合形式中,比较理想的是E、H、J、K、M、N八种。它们共同的特 点是声调富于变化,读起来顺口,听起来悦耳。内中尤以E、J、N三种为?佳。 它们都是以阴平起头,以阴平收尾,首尾呼应,十分和谐。B、C、D、F、G五 种,前四种两阴或两阳联缀、读起来不那么顺口。A是三个阴平联缀,没有变? 化,显得十分呆板拘谨,阴平类的姓氏应注意避免这种组合。O和P由于两上和 两去相联缀,读起来拗口,听起来别扭,也是不可采用的组合。汉语的双音词有 个特?点,"友"、"永"都变成阳平。利用汉语这个特点,L类的组合有时也可彩, 条件就是名字要取现成的双音词,或者名字联缀成义,成为一个词组。如"周铁? 虎","铁虎"是个偏正词组,读时自然由"阴一上一上"变成"阴-阳上"。?
  • (2)阳平类。?
    阳平类的姓氏有以下16种组合形式。?
    A、阳-阳-阴型。例如:黄庭坚?卓尔康?来集之?石达开?陈潭秋?吉鸿昌? B、阳-阳-阳型。例如:王得臣?皮龙荣?余时言?房玄龄?徐文华?何国材? C、阳-阳-上型。例如:狄明远?洪岩虎?胡承珙?韦云起?原伯鲁?唐庭楷? D、阳-阳-去型。例如:陈独秀?刑云路?仇时济?徐霞客?文廷式?倪文蔚? E、阳-阴-阴类。例如:裴松之?房知温?林公一?祁班孙?胡山宾?袁天纲? F、阳-阴-阳类。例如:王安 石?屠湘灵?雷光霆?蒲松龄?陈彭年?钱三强? G、阳-阴-上类。例如:隆光祖?丌之伟?颜师古?程千里?刘知几?白日可? H、阳-阴-去类。例如:石天柱?侯方域?黄遵宪?白居易?王之焕?承天秀? J、阳-上-阴类。例如:晃补之?成始终?黄孔昭?徐海东?刘野夫?程咬金?
    K、阳-上-阳类。例如:曹雪芹?秦九韶?田有年?杨虎城?冯子材?洪起元? L、阳-上-上类。例如:王子武?佟养甲?吴可几?和有礼?杨守址?何挺颖? M、阳-上-去类。例如:全祖望?毛羽健?何有志?曹勇义?梅鼎祚?陈友定? N、阳-去-阴类。例如:龙太初?王念孙?皮日休?罗贯中?刘志丹?闻一多? O、阳-去-阳类。例如:卢照邻?秦再雄?童日铭?陈少涛?谭嗣同?洪秀全? P、阳-去-上类。例如:韦岳子?姚梦午?邢抱朴?席上锦?袁尚统?杨靖宇? Q、阳-去-去类。例如:俞正燮?余克济?吴必大?韩仲孝?唐际盛?时立爱??? 上述16种组合形式中,最佳的组合是F(阳-阴-阳)、G(阳-阴-上)、H(阳-阴- 去)、J(阳-上-阴)、K(阳-上-阳)、N(阳-去-?阴)、O(阳-去-阳)、P(阳-去-上) 八种。其次是A(阳-阳-阴)、D(阳-阳-去)、C(阳-阳-上)、E(阳-阴-阴)、M (阳-上-去)五种。?这五种组合虽然不及上面八种的音美,只要在选定上下点 功夫,也可以得到良好的审美效果。B(阳-阳-阳)、L(阳-上-上)、Q(阳-去- 去)三种不宜采?用。但L(阳-上-上)如能利用汉语的音变规律,也不妨使用。?
  • (3)上声类。?
    上声类的姓氏有以下16种组合形式:?
    A、上-上-阴类。例如:许乃钊?伍典章?吕景初?李左车?马孔英?掌禹锡? B、上-上-阳类。例如:孔颖达?沈友琴?阮美成?浦起龙?耿守直?沈野云? C、上-上-上类。例如:史可法?李以笃?许乃普?汝可起?葛守礼?史显祖? D、上-上-去类。例如:孔广翼?沈甲秀?许法慎?李秉彝?贾履上?蒋羽化? E、上-阴-阴类。例如:武三思?祖冲一?卜天生?马师班?展庄叔?耿昌期? F、上-阴-阳类。例如:虎坤元?马之纯?贾思勰?沈冰壶?武攸宁?尹耕云? G、上-阴-上类。例如:左光斗?李商陷?郝天挺?李公朴?沈君理?冼星海? H、上-阴-去类。例如:吕公弼?左匡政?李三畏?种师道?葛师旦?孔思晦? J、上-阳-阴类。?例如:柳同春?葛云飞?李时珍?党怀英?孔云章?龚霆松? K、上-阳-阳类。例如:储良材?种云龙?柳玄达?李行言?楚执柔?马连良? L、上-阳-上类。例如:古其品?史维堡?猛如虎?许鸣运?党崇雅?沈明远?
    M、上-阳-去类。例如:伍维寿?祖良壁?郝奇遇?马怀素?莉宏毅?李玄霸? N、上-去-阴类。例如:冷寿光?吕步舒?李奉先?米万钟?褚少孙?苟日新? O、上-去-阳类。例如:古道行?卜大同?庾自直?李自成?祖秀实?耿静如? P、上-去-上类。例如:柏立本?史光斗?伍正己?董必武?许赤虎?葛万里? Q、上-去-去类。例如:孔尚任?耿定力?李道泰?沈用济?钮树玉?贾汉复??? 上述16种组合形式中,E(上-阴-阴)、F(上-阴-阳)、G(上-阴-上)、H(上- 阴-去)、J(上-阳-阴)、M(上-阳-去)、N(上-去?-阴)、O(上-去-阳)、P(上- 去-上)九种理想的组合。K(上-阳-阳)和L(上-阳-上)也可采用,但效果显 然要逊色。A(上-上-阴)、B(上?-上-阳)、C(上-上-上)、D(上-上-去)四种 均出现上声字联缀的现象,Q(上-去-去)则是去声字联缀,读起来非常拗口, 因此,上声类的姓氏应避?开这五种组合形式。?
  • (4)去声类。?
    去声类的姓氏有以下16种组合形式:?
    A、去-去-阴型。例如:杜幼安?路振飞?郑介夫?冒致中?范仲淹?扈再兴? B、去-去-阳型。例如:孟浩然?豆代田?邵晋涵?祝万龄?卞立言?项梦原? C、去-去-上型。例如:夏尚朴?鲍作雨?郑至果?孟化鲤?叶孟鼎?杜易简? D、去-去-去型。例如:宋聚业?富大用?毕再遇?万正色?霍去病?范日进? E、去-阴-阴型。例如:靳东发?沐天波?夏金标?赵冬曦?谢东山?杜叔高? F、去-阴-阳型。例如:骆宾王?郁松年?万斯同?桂中行?贡修龄?冀邦直? G、去-阴-上型。例如:大公鼎?叶方蔼?赵先雅?郑思永?缪钟理?蔡方炳? H、去-阴-去型。例如:段公路?贡师道?赵匡胤?魏昭亮?赖天赋?谢三秀? J.?去-阳-阴型。例如:邵伯温?范王孙?夏执中?廖莹中?兵伯川?郑成功? K、去-阳-阳型。例如:慎从吉?但存学?祝弘奇?盖文达?夏时行?贯去石? L、去-阳-上型。例如:杜鹏举?费扬古?郑元斗?霍元甲?邵文炳?顾炎武? M、去-阳-去型。例如:单雄信?范成大?谢灵运?杜如晦?尉长命?解一贯? N、去-上-阴型。例如:陆九渊?郑朴翁?宋景诗?恽本初?慰古真?赵卯发?
    O、去-上-阳型。例如:杜审言?顾野王?蔡紫琼?宋汝为?邓演达?向警予? P、去-上-上型。例如:祝可久?范祖禹?项守礼?尚可喜?郑以伟?毕祖朽? Q、去-上-去型。例如:晏几道?厉汝进?傅启让?抱老寿?叶永秀?项笃寿??? 上述16种组合形式中,E(去-阴-阴)、F(去-阴-阳)、G(去-阴-上)、H(去- 阴-去)、J(去-阳-阴)、L(去-阳-上)、M(去-阳?-去)、N(去-上-阴)、O(去- 上-阳)、Q(去-上-去)十种系最佳组合。A(去-去-阴)、B(去-去-阳)、C(去 -去-上)、D(去-去-?去)四种组合均出现声联缀的现象,K(去-阳-阳)和P(去 -上-上)分别为阳平联缀和上声联缀,读起来都不顺口,去声类的姓氏应予以回 避。?
    姓名的声调问题看起来很复杂,如果抓住规律,内中并没有什么奥秘。对于每个 姓氏来说,可选择的声调组合只有十几种。命名时,把准备用的字放进组合加以 推敲,使字的选择同声调组合的选择有面地结合起来,形美、音美、意美三者兼 顾,这是一项并不复杂的工作。???究竟选择啊一种组合好呢?这是难以事先规 定的。声调的组合并非孤立的现象,它同字形的组合和字意的组合有着密切的关 系,不能割裂开来。?
    ??我们这里谈的声调组合形式,是以普通话为标准的。各方言区的命名,还有可 能受到方音的影响。这样就可能产生一个矛盾,那就是有的姓名用普通话读不顺? 口,而用方言读则很顺口,另有些姓名用普通话读顺口,而用方言读则不顺口。 这个矛盾应该如何处理呢?我们认为,应当以普通话为标准。当然,如果能找到 一种?方案,使普通话和本方言不会产生矛盾,那就更好了。

核心算法

生成一些名字,进行组合。这里是最核心的算法。

模型算法规则:随机选两个字,按照如下规则进行计算打分

距离系数d

若两个名字在一句话中,或者是一行中,通过一个距离算法[D] 得出一个距离系数 d,距离越近,表明两个字约有含义。例如 "绸缪束刍,三星在隅。今夕何夕,见此邂逅?子兮子兮,如此邂逅何?"隅和夕在同一段文字中,这表明两者关系比较近。 再比如"菁菁者莪,在彼中陵。既见君子,锡我百朋。"中的菁菁距离更近,表明更有相关性

情感系数e

若名字所在的那两句话的情感系数 通过一个 算法[E] 得出一个新的情感系数分 e 例如两个字 '隅夕' ,其中隅字出自 "三星在隅",其情感系数为0.93,是个非常正向额词。夕出自"今夕何夕",情感系数为0.5,那么加载一起 是个不错的正向分数。

笔画系数s

将两个名字的笔画数 通过一个算法[S] 得出一个笔画系数 s。目前的规则是,两个字加起来的笔画越少越好。笔画越少分越高

相似度y

将两个名字与姓氏,通过一个相似度算法[Y] 得出一个含义系数 y。规则含义:名字与姓氏之间相似度越低越好。 越低表明两者越不容易出现"撞车的情况",例如:如果有个人姓"王",那么"侯"字与王字是近义词。两个这两个字组成在一起不好听

发音系数p

将两个名字与姓氏,通过一个发音算法[P] 得出一个发音系数 p。

发音系数p有发音算法[P]和声调算法[T]计算获得。

1. 发音算法P

其规则是姓氏和名字的声母、韵母尽量避免相同。姓氏和名字避免声调一致,若3字的可以1,3同调,或者3个字都不同调。

2. 声调算法T

将名字与姓氏,通过一个声调算法[T] 得到一个声调系数t,含义

其中要综合考虑叠音、非叠音、单字、双字、开闭口音、爆破音等子算法。

2.1叠音

若两个字是叠音,只要跟姓氏不同音,就可以。但是要综合参考姓氏与名字的发音关系。

2.2 非叠音

在三个字都不同调的情况下,姓氏位置不能变,两个字的名字全排列组合再去掉声调一致的组合大致有3*3 = 9种组合。其中声调相同只适用于叠字。 因此若不考虑叠字,则应该有A42A21种组合,也就是说有10种组合。配合姓氏的4中声调,应该是有40种排列组合。应该针对每一个姓氏声调进行单独排列。这种矩阵称之为声调矩阵。

2.3 姓氏名称关系:单字

名字与姓氏之间的声调关系:

    12,21,13,31,14,41,23,32,34,43
1   1   2   3  4   5   6  7   8   9  10
2   1   2   3  4   5   6  7   8   9  10
3   1   2   3  4   5   6  7   8   9  10
4   1   2   3  4   5   6  7   8   9  10

1表示阴平;2表示阳平;3表示上;4表示去 单字名字规律,第一个是姓氏: 11,12,13 21,23,24 31,32,34 41,42,43 两个字名字规律:第一个是姓氏,第二个是名字

2.4 姓氏名字关系:双字

4声的姓氏,在名字中尽量不要再出现4声,同理可证1声的姓氏中尽量不出现1声的名字,2声姓氏不出现2声名字,3声不出现3声的。

下图是根据经验得出的姓氏与名字的声调关系。

121,133,142最佳|124,132,141次之
212,213,214,231,232,241,242,243最佳|221,224,223,211,234
311,312,313,314,321,324,341,342,343最佳|322,323次之
411,412,413,414,421,423,424,431,432,434最佳
最佳得2分,其次得1分,否则不得分
    11,12,13,14,21,22,23,24,31,32,33,34,41,42,43,44
1       2                      1      1   2      1   2                                                   
2       2   2   2  1       1   1  2   2      1   2   2  2             
3   2   2   2   2  2   1   1   2                 2   2  2                
4   2   2   2   2  2       2   2  2   2      2                            
11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44
1 2 1 1 2 1 2
2 1 2 2 2 1 1 1 2 2 1 2 2 2
3 2 2 2 2 2 1 1 2 2 2 2
4 2 2 2 2 2 2 2 2 2 2

有没有发现什么特点?

  • 起名字时尽量避免连续两个2声或者连续两个4声
  • 姓与名不要同声调

2.5. 开闭口音

姓氏与名字,应该符合开口音与闭口音规则,即姓名名 应该符合开闭开,或者闭开闭

2.6. 爆破音

有些姓氏中会有爆破音,此时如果名字中也有爆破音,会让名字过于洪亮,若是单字名字还好,若是双字名字,都出现爆破音会比较拗口。

爆破音定义:塞音(b、p、d、t、g、k),塞擦音(j、q、zh、ch、z、c)都成为爆破音(塞擦音为弱爆破音)。

例如,若有人姓 唐 ,如果名字叫 凯鹏 ,虽然名字的寓意不错,但是连起来念 唐凯鹏 时,会不会觉得有些拗口?因为每个音都需要先闭口再开口。

综合算法

将 d,e,s,y,p,t 通过一个算法 [N] 得出一个综合系数n 算法N中各个系数需要通过深度学习得到。

超参

n越大表明越好:优化参数和损失函数要好好设计 超参:D,E,S,Y,P,N中的算法参数

About

给我自己孩子起名字的程序

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published