ReName:一個起名字的八卦程序

ReName是之前業餘時間寫的一個根據生辰八字從古詩詞(囊括13個朝代12,875名作者的共185,525首詩詞)中篩選名詞進行起名的程序,源於不少人都想給自己的孩子起個優雅的、古樸的名字,卻「書到用時方恨少」。雖然網上已有現成的類似的應用,但自己動手寫一個總算是給自己的孩子做了「一點微小的工作」(相比十月懷胎的辛苦)。

項目地址:github.com/repoog/ReNam

設計思路:

通過陽曆生辰年/月/日/時轉換得到的農曆生辰計算對應的八字,再將八字轉換為五行,依據五行平衡的原理算出五行缺失,而後將詩詞內容分詞得到的雙字(新生 兒起名不再接受單字名)依據漢字的「金木水火土」五行取得缺失五行對應的雙字詞語,作為最終的名字,同時輸出該名字的出處。 為確保名字出處的唯一性,分詞結果去掉了數量超過1個的詞語,如,以下是古詩詞中出現頻率較高的幾組詞語:

  • 何處(847次)
  • 不知(791次)
  • 春風(715次)
  • 萬里(688次)
  • 青山(640次)
  • 東風(629次)
  • 明月(605次)
  • 風雨(587次)
  • 不見(556次)
  • 江南(549次)
  • 秋風(545次)
  • 人間(538次)
  • 千里(535次)
  • 不可(520次)
  • 歸來(499次)
  • 白雲(495次)
  • 桃花(471次)
  • 夕陽(463次)

程序說明:

  • ReName.py:

從古詩詞分詞結果中依據八字五行隨機獲取候選名字的程序。

  • PoemCrawler.py:

古詩詞爬蟲,爬取包括朝代、作者、詩詞標題及詩詞內容在內的信息,爬取來源是shicimingju.com

  • CutWord.py:

利用jieba模塊對古詩詞內容進行快速分詞處理,並僅獲取雙字分詞結果存儲。

  • include/DB.py:

爬蟲、分詞程序進行存儲的資料庫操作程序。

  • include/boxcalendar.py:

修改github.com/ccdjh/boxcal 模塊的程序,去掉了不必要的程序和輸出,用於轉換陽曆生辰為農曆。

  • db/rename.sql:

資料庫結構SQL,包括爬蟲、分詞、起名在內的所有表結構。

  • db/rn_poem_content.sql:

關聯之後的所有古詩詞朝代、作者、標題及內容。

  • db/rn_word_unique.sql:

去除出現次數1次以上的雙字分詞結果。

  • db/rn_wuxing.sql:

主要漢字的五行歸屬。

操作說明:

usage: ReName.py [-h] -y year -m month -d day -H hour

Name children with birth datetime and WuXing balance.

optional arguments:

-h, --help show this help message and exit

-y year Year of birth date.

-m month Month of birth date.

-d day Day of birth date.

-H hour Hour of birth datetime.

程序示例:

$ python ReName.py -y 2017 -m 8 -d 24 -H 0

[-_-] 生辰:2017年8月24日, 0時

[-_-] 五行缺:木, 火

[^_^] 候選名字1:睡睡

[*_*] 出自:

移獄

劉伯堅(近當代)

大庾獄中將兩日,移來綏署候審室,室長八尺寬四尺,一榻填滿剩門隙;五副腳鐐響鋃鐺,匍匐膝行上下床,①獄門咫尺隔萬里,②守者持槍長相望。獄中靜寂日如年,囚伴等吃飯兩餐,都說欲睡睡不得,白日睡多夜難眠;檐角瓦雀鳴啁啾,鎮日啼躍不肯休,瓦雀生意何盎然,③我為中國作楚囚。夜來五人共小被,腳鐐顛倒聲清脆,飢鼠跳梁聲嘖嘖,④門燈如豆生陰翳;夜雨陣陣過瓦檐,風送計可到梅關,⑤南國春事不須問,萬里芳信無由傳。⑥

[^_^] 候選名字2:擁長

[*_*] 出自:

武皇巡幸歌四首

謝榛(明朝)

年少羽林郎,嚴冬較獵忙。旌旗開御道,劍戟擁長楊。飛去五花馬,射來雙白狼。中官傳賜酒,甲胄拜君王。

[^_^] 候選名字3:乃棄

[*_*] 出自:

出西郊

袁凱(明朝)

谷陽門西路,瀄汩澍清川。舟艫相縈帶,蒲荷亦芊綿。依依望江渚,漠漠盻湖田。湖田今有秋,老稚飯紅蓮。此實父母邦,亂離乃棄捐。垂老幸得歸,不識陌與阡。卜築願茲始,逍遙終百年。

[^_^] 候選名字4:空似

[*_*] 出自:

絕句

陳言(明朝)

寶鳳搔頭玉步搖,艷妝空似海棠嬌。春情一種無聊賴,重到桃花第四橋。

[^_^] 候選名字5:時期

[*_*] 出自:

太湖避兵

方文(清朝)

將近楓橋路,唯聞人語喧。北來兵肆掠,東去艇皆奔。震澤煙波迥,高秋風雨繁。此時期免患,艱苦復何論。

待改進處:

  1. 五行平衡的計算改進為權重平衡的計算,而非五行數量平衡的計算;
  2. 分詞結果可去依據漢字的凶吉去掉含義為「凶」的詞或字,如「亡」、「死」;
  3. 將多次隨機候選的名字通過專業名字評分網站分詞,並爬取得分最高的幾組名字供候選。

更多內容請關注微信公眾號:邊窗

推薦閱讀:

TAG:極客Geek | 取名 | Python |