Skip to content

samwhelp/demo-php-office-for-read-dict-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

demo-php-office-for-read-dict-db

緣起

這個專案是要用來回覆「使用LibreOffice Calc來編輯中文詞彙接龍的可能性?」所寫的範例。

相關筆記

clone

執行下面指令

$ git clone https://github.com/samwhelp/demo-php-office-for-read-dict-db.git

執行下面指令,切換到「demo-php-office-for-read-dict-db」這個資料夾。

$ cd demo-php-office-for-read-dict-db

前置作業

安裝 php-cli

執行下面指令,安裝「php-cli」。

$ sudo apt-get install php-cli

安裝 php-mbstring

執行下面指令,安裝「php-mbstring」。

$  sudo apt-get install php-mbstring

過程中會用到「mb_strlen」和「mb_substr」。 可以觀看「src/Main/Model/DictConcisedLinkBase.php」這個檔案。

安裝相依的lib

執行下面指令

$ composer install

關於「composer」的安裝,請參考另一個專案的「說明」。

下載字典的原始資料

執行下面指令,

$ make asset-dict-concised

會從「教育部國語辭典公眾授權網 / 《國語辭典簡編本》資料下載」,

下載「dict_concised_2014_20190411.zip」這個檔案到「var/dict_concised」這個資料夾,

也就是「var/dict_concised/dict_concised_2014_20190411.zip」,

並且解開,就會產生一個檔案「var/dict_concised/dict_concised_2014_20190411.xls」。

操作步驟

將xls檔案轉檔

執行下面指令

$ make dict-concised-db-save

會產生一個檔案「var/db/DictConcised.txt」,格式是「php serialize」過後的內容。

挑選出四個字的成語

執行下面指令

$ make dict-concised-db-save-four

會產生一個檔案「var/db/DictConcised-Four.txt」,格式是「php serialize」過後的內容。

找出成語可以有接龍的對應表。

執行下面指令

$ make dict-concised-link-base

會產生一個檔案「var/db/DictConcised-Link.txt」,格式是「php serialize」過後的內容。

產生成語接龍的各種排列組合結果

列表

執行下面指令

$ make dict-concised-link-list

就會產生所有的成語接龍列表

列表分頁顯示

執行下面指令

$ make dict-concised-link-list | less

就會產生所有的成語接龍列表,並且分頁顯示

過濾

執行下面指令,找出開頭是「'會心一笑'」的。

$ make dict-concised-link-list | grep '^會心一笑'

就會顯相關的成語接龍列表 (每一行是一種結果)

會心一笑/一笑置之/置之不理/不理不睬
會心一笑/一笑置之/置之度外

執行下面指令,找出開頭是「'滿面春風'」的。

$ make dict-concised-link-list | grep '^滿面春風'

就會顯相關的成語接龍列表 (每一行是一種結果)

滿面春風/春風得意/得意洋洋/洋洋大觀
滿面春風/春風得意/得意洋洋/洋洋得意/得意揚揚
滿面春風/春風得意/得意洋洋/洋洋得意/得意忘形
滿面春風/春風得意/得意洋洋/洋洋灑灑
滿面春風/春風得意/得意揚揚
滿面春風/春風得意/得意忘形
滿面春風/春風化雨

計算行數

執行下面指令

$ make dict-concised-link-list | wc

顯示

   1347    1347   45786

成語接龍結果儲存

儲存成ods

執行下面指令

$ make dict-concised-link-list-save-as-ods

就會產生一個檔案「var/result/link-result.ods」。

PHPOffice 相關專案

PHPOffice 相關討論