GitHub - fukuball/jieba-php: "結巴"中文分詞

文章推薦指數: 80 %
投票人數:10人

"結巴"中文分詞:做最好的PHP 中文分詞、中文斷詞組件。

/ "Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best PHP Chinese word ... Skiptocontent {{message}} fukuball / jieba-php Public Notifications Fork 245 Star 1.2k "結巴"中文分詞:做最好的PHP中文分詞、中文斷詞組件。

/"Jieba"(Chinesefor"tostutter")Chinesetextsegmentation:builttobethebestPHPChinesewordsegmentationmodule. jieba-php.fukuball.com License MITlicense 1.2k stars 245 forks Star Notifications Code Issues 22 Pullrequests 2 Actions Projects 0 Wiki Security Insights More Code Issues Pullrequests Actions Projects Wiki Security Insights fukuball/jieba-php Thiscommitdoesnotbelongtoanybranchonthisrepository,andmaybelongtoaforkoutsideoftherepository. master Branches Tags Couldnotloadbranches Nothingtoshow {{refName}} default Couldnotloadtags Nothingtoshow {{refName}} default 2 branches 17 tags Code Latestcommit fukuball Updatereadme … 8a16536 Dec23,2020 Updatereadme 8a16536 Gitstats 169 commits Files Permalink Failedtoloadlatestcommitinformation. Type Name Latestcommitmessage Committime src     test     .gitignore     .travis.yml     LICENSE     README.md     circle.yml     composer.json     composer.lock     phpunit.xml     Viewcode jieba-php 線上展示 Feature Usage Algorithm Interface 功能1):分词 功能2):添加自定義詞典 功能3):關鍵詞提取 功能4):詞性分詞 功能5):切換成繁體字典 功能5):切換成繁體字典 功能6):保留日语或者朝鲜语原文不进行过滤 功能7):返回詞語在原文的起止位置 其他詞典 常見問題 jieba-phpEnglishDocument OnlineDemo Feature Usage Algorithm Interface Function1)Segmentation Function2)Addacustomdictionary Function3)KeywordExtraction Function4)WordSegmentationandTagging Function5):UseTraditionalChinese Function6):KeepingJapaneseorKoreanoriginaltext 詞性說明 Donate License README.md jieba-php "結巴"中文分詞:做最好的PHP中文分詞、中文斷詞組件,目前翻譯版本為jieba-0.33版本,未來再慢慢往上升級,效能也需要再改善,請有興趣的開發者一起加入開發!若想使用Python版本請前往fxsjy/jieba 現在已經可以支援繁體中文!只要將字典切換為big模式即可! "Jieba"(Chinesefor"tostutter")Chinesetextsegmentation:builttobethebestPHPChinesewordsegmentationmodule. ScrolldownforEnglishdocumentation. 線上展示 網站網址:http://jieba-php.fukuball.com 網站原始碼:https://github.com/fukuball/jieba-php.fukuball.com Feature 支持三種分詞模式: 1)默認精確模式,試圖將句子最精確地切開,適合文本分析; 2)全模式,把句子中所有的可以成詞的詞語都掃描出來,但是不能解決歧義。

(需要充足的字典) 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。

支持繁體斷詞 支持自定義詞典 Usage 自動安裝:使用composer安裝後,透過autoload引用 代碼示例 composerrequirefukuball/jieba-php:dev-master 代碼示例 require_once"/path/to/your/vendor/autoload.php"; 手動安裝:將jieba-php放置適當目錄後,透過require_once引用 代碼示例 require_once"/path/to/your/vendor/multi-array/MultiArray.php"; require_once"/path/to/your/vendor/multi-array/Factory/MultiArrayFactory.php"; require_once"/path/to/your/class/Jieba.php"; require_once"/path/to/your/class/Finalseg.php"; Algorithm 基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG) 採用了動態規劃查找最大概率路徑,找出基於詞頻的最大切分組合 對於未登錄詞,採用了基於漢字成詞能力的HMM模型,使用了Viterbi算法 BEMS的解釋fxsjy/jieba#7 Interface 組件只提供jieba.cut方法用於分詞 cut方法接受兩個輸入參數:1)第一個參數為需要分詞的字符串2)cut_all參數用來控制分詞模式 待分詞的字符串可以是utf-8字符串 jieba.cut返回的結構是一個可迭代的array 功能1):分词 cut方法接受想個輸入參數:1)第一個參數為需要分詞的字符串2)cut_all參數用來控制分詞模式 cutForSearch方法接受一個參數:需要分詞的字符串,該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細 注意:待分詞的字符串是utf-8字符串 cut以及cutForSearch返回的結構是一個可迭代的array 代碼示例(Tutorial) ini_set('memory_limit','1024M'); require_once"/path/to/your/vendor/multi-array/MultiArray.php"; require_once"/path/to/your/vendor/multi-array/Factory/MultiArrayFactory.php"; require_once"/path/to/your/class/Jieba.php"; require_once"/path/to/your/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(); Finalseg::init(); $seg_list=Jieba::cut("怜香惜玉也得要看对象啊!"); var_dump($seg_list); $seg_list=Jieba::cut("我来到北京清华大学",true); var_dump($seg_list);#全模式 $seg_list=Jieba::cut("我来到北京清华大学",false); var_dump($seg_list);#默認精確模式 $seg_list=Jieba::cut("他来到了网易杭研大厦"); var_dump($seg_list); $seg_list=Jieba::cutForSearch("小明硕士毕业于中国科学院计算所,后在日本京都大学深造");#搜索引擎模式 var_dump($seg_list); Output: array(7){ [0]=> string(12)"怜香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"对象" [6]=> string(3)"啊" } FullMode: array(15){ [0]=> string(3)"我" [1]=> string(3)"来" [2]=> string(6)"来到" [3]=> string(3)"到" [4]=> string(3)"北" [5]=> string(6)"北京" [6]=> string(3)"京" [7]=> string(3)"清" [8]=> string(6)"清华" [9]=> string(12)"清华大学" [10]=> string(3)"华" [11]=> string(6)"华大" [12]=> string(3)"大" [13]=> string(6)"大学" [14]=> string(3)"学" } DefaultMode: array(4){ [0]=> string(3)"我" [1]=> string(6)"来到" [2]=> string(6)"北京" [3]=> string(12)"清华大学" } array(6){ [0]=> string(3)"他" [1]=> string(6)"来到" [2]=> string(3)"了" [3]=> string(6)"网易" [4]=> string(6)"杭研" [5]=> string(6)"大厦" } (此處,“杭研“並沒有在詞典中,但是也被Viterbi算法識別出來了) SearchEngineMode: array(18){ [0]=> string(6)"小明" [1]=> string(6)"硕士" [2]=> string(6)"毕业" [3]=> string(3)"于" [4]=> string(6)"中国" [5]=> string(6)"科学" [6]=> string(6)"学院" [7]=> string(9)"科学院" [8]=> string(15)"中国科学院" [9]=> string(6)"计算" [10]=> string(9)"计算所" [11]=> string(3)"后" [12]=> string(3)"在" [13]=> string(6)"日本" [14]=> string(6)"京都" [15]=> string(6)"大学" [16]=> string(18)"日本京都大学" [17]=> string(6)"深造" } 功能2):添加自定義詞典 開發者可以指定自己自定義的詞典,以便包含jieba詞庫裡沒有的詞。

雖然jieba有新詞識別能力,但是自行添加新詞可以保證更高的正確率 用法:Jieba::loadUserDict(file_name)#file_name為自定義詞典的絕對路徑 詞典格式和dict.txt一樣,一個詞佔一行;每一行分為三部分,一部分為詞語,一部分為詞頻,一部分為詞性,用空格隔開 範例: 云计算5n 李小福2n 创新办3n 之前:李小福/是/创新/办/主任/也/是/云/计算/方面/的/专家/ 加載自定義詞庫後: 李小福/是/创新办/主任/也/是/云计算/方面/的/专家/ 說明:"通过用户自定义词典来增强歧义纠错能力"---fxsjy/jieba#14 自定義詞典:https://github.com/fukuball/jieba-php/blob/master/src/dict/user_dict.txt 功能3):關鍵詞提取 JiebaAnalyse::extractTags($content,$top_k) content為待提取的文本 top_k為返回幾個TF/IDF權重最大的關鍵詞,默認值為20 可使用setStopWords增加自定義stopwords 代碼示例(關鍵詞提取) ini_set('memory_limit','600M'); require_once"/path/to/your/vendor/multi-array/MultiArray.php"; require_once"/path/to/your/vendor/multi-array/Factory/MultiArrayFactory.php"; require_once"/path/to/your/class/Jieba.php"; require_once"/path/to/your/class/Finalseg.php"; require_once"/path/to/your/class/JiebaAnalyse.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; useFukuball\Jieba\JiebaAnalyse; Jieba::init(array('mode'=>'test','dict'=>'small')); Finalseg::init(); JiebaAnalyse::init(); $top_k=10; $content=file_get_contents("/path/to/your/dict/lyric.txt","r"); $tags=JiebaAnalyse::extractTags($content,$top_k); var_dump($tags); JiebaAnalyse::setStopWords('/path/to/your/dict/stop_words.txt'); $tags=JiebaAnalyse::extractTags($content,$top_k); var_dump($tags); Output: array(10){ '沒有'=> double(1.0592831964595) '所謂'=> double(0.90795702553671) '是否'=> double(0.66385043195443) '一般'=> double(0.54607060161899) '雖然'=> double(0.30265234184557) '來說'=> double(0.30265234184557) '肌迫'=> double(0.30265234184557) '退縮'=> double(0.30265234184557) '矯作'=> double(0.30265234184557) '怯懦'=> double(0.24364586159392) } array(10){ '所謂'=> double(1.1569129841516) '一般'=> double(0.69579963754677) '矯作'=> double(0.38563766138387) '來說'=> double(0.38563766138387) '退縮'=> double(0.38563766138387) '雖然'=> double(0.38563766138387) '肌迫'=> double(0.38563766138387) '怯懦'=> double(0.31045198493419) '隨便說說'=> double(0.19281883069194) '一場'=> double(0.19281883069194) } 功能4):詞性分詞 詞性說明:https://gist.github.com/luw2007/6016931 代碼示例(Tutorial) ini_set('memory_limit','600M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; require_oncedirname(dirname(__FILE__))."/class/Posseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; useFukuball\Jieba\Posseg; Jieba::init(); Finalseg::init(); Posseg::init(); $seg_list=Posseg::cut("这是一个伸手不见五指的黑夜。

我叫孙悟空,我爱北京,我爱Python和C++。

"); var_dump($seg_list); Output: array(21){ [0]=> array(2){ ["word"]=> string(3)"这" ["tag"]=> string(1)"r" } [1]=> array(2){ ["word"]=> string(3)"是" ["tag"]=> string(1)"v" } [2]=> array(2){ ["word"]=> string(6)"一个" ["tag"]=> string(1)"m" } [3]=> array(2){ ["word"]=> string(18)"伸手不见五指" ["tag"]=> string(1)"i" } [4]=> array(2){ ["word"]=> string(3)"的" ["tag"]=> string(2)"uj" } [5]=> array(2){ ["word"]=> string(6)"黑夜" ["tag"]=> string(1)"n" } [6]=> array(2){ ["word"]=> string(3)"。

" ["tag"]=> string(1)"x" } [7]=> array(2){ ["word"]=> string(3)"我" ["tag"]=> string(1)"r" } [8]=> array(2){ ["word"]=> string(3)"叫" ["tag"]=> string(1)"v" } [9]=> array(2){ ["word"]=> string(9)"孙悟空" ["tag"]=> string(2)"nr" } [10]=> array(2){ ["word"]=> string(3)"," ["tag"]=> string(1)"x" } [11]=> array(2){ ["word"]=> string(3)"我" ["tag"]=> string(1)"r" } [12]=> array(2){ ["word"]=> string(3)"爱" ["tag"]=> string(1)"v" } [13]=> array(2){ ["word"]=> string(6)"北京" ["tag"]=> string(2)"ns" } [14]=> array(2){ ["word"]=> string(3)"," ["tag"]=> string(1)"x" } [15]=> array(2){ ["word"]=> string(3)"我" ["tag"]=> string(1)"r" } [16]=> array(2){ ["word"]=> string(3)"爱" ["tag"]=> string(1)"v" } [17]=> array(2){ ["word"]=> string(6)"Python" ["tag"]=> string(3)"eng" } [18]=> array(2){ ["word"]=> string(3)"和" ["tag"]=> string(1)"c" } [19]=> array(2){ ["word"]=> string(3)"C++" ["tag"]=> string(3)"eng" } [20]=> array(2){ ["word"]=> string(3)"。

" ["tag"]=> string(1)"x" } } 功能5):切換成繁體字典 代碼示例(Tutorial) ini_set('memory_limit','1024M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(array('mode'=>'default','dict'=>'big')); Finalseg::init(); $seg_list=Jieba::cut("怜香惜玉也得要看对象啊!"); var_dump($seg_list); $seg_list=Jieba::cut("憐香惜玉也得要看對象啊!"); var_dump($seg_list); Output: array(7){ [0]=> string(12)"怜香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"对象" [6]=> string(3)"啊" } array(7){ [0]=> string(12)"憐香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"對象" [6]=> string(3)"啊" } 功能5):切換成繁體字典 代碼示例(Tutorial) ini_set('memory_limit','1024M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(array('mode'=>'default','dict'=>'big')); Finalseg::init(); $seg_list=Jieba::cut("怜香惜玉也得要看对象啊!"); var_dump($seg_list); $seg_list=Jieba::cut("憐香惜玉也得要看對象啊!"); var_dump($seg_list); Output: array(7){ [0]=> string(12)"怜香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"对象" [6]=> string(3)"啊" } array(7){ [0]=> string(12)"憐香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"對象" [6]=> string(3)"啊" } 功能6):保留日语或者朝鲜语原文不进行过滤 代碼示例(Tutorial) ini_set('memory_limit','1024M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(array('cjk'=>'all')); Finalseg::init(); $seg_list=Jieba::cut("한국어또는조선말은제주특별자치도를제외한한반도및그부속도서와한민족거주지역에서쓰이는언어로"); var_dump($seg_list); $seg_list=Jieba::cut("日本語は、主に日本国内や日本人同士の間で使われている言語である。

"); var_dump($seg_list); //加载日语词库可以对日语进行简单的分词 Jieba::loadUserDict("/path/to/your/japanese/dict.txt"); $seg_list=Jieba::cut("日本語は、主に日本国内や日本人同士の間で使われている言語である。

"); var_dump($seg_list); Output: array(15){ [0]=> string(9)"한국어" [1]=> string(6)"또는" [2]=> string(12)"조선말은" [3]=> string(24)"제주특별자치도를" [4]=> string(9)"제외한" [5]=> string(9)"한반도" [6]=> string(3)"및" [7]=> string(3)"그" [8]=> string(6)"부속" [9]=> string(9)"도서와" [10]=> string(9)"한민족" [11]=> string(6)"거주" [12]=> string(12)"지역에서" [13]=> string(9)"쓰이는" [14]=> string(9)"언어로" } array(21){ [0]=> string(6)"日本" [1]=> string(3)"語" [2]=> string(3)"は" [3]=> string(3)"主" [4]=> string(3)"に" [5]=> string(6)"日本" [6]=> string(6)"国内" [7]=> string(3)"や" [8]=> string(6)"日本" [9]=> string(3)"人" [10]=> string(6)"同士" [11]=> string(3)"の" [12]=> string(3)"間" [13]=> string(3)"で" [14]=> string(3)"使" [15]=> string(3)"わ" [16]=> string(6)"れて" [17]=> string(6)"いる" [18]=> string(6)"言語" [19]=> string(3)"で" [20]=> string(6)"ある" } array(17){ [0]=> string(9)"日本語" [1]=> string(3)"は" [2]=> string(6)"主に" [3]=> string(9)"日本国" [4]=> string(3)"内" [5]=> string(3)"や" [6]=> string(9)"日本人" [7]=> string(6)"同士" [8]=> string(3)"の" [9]=> string(3)"間" [10]=> string(3)"で" [11]=> string(3)"使" [12]=> string(3)"わ" [13]=> string(6)"れて" [14]=> string(6)"いる" [15]=> string(6)"言語" [16]=> string(9)"である" } 功能7):返回詞語在原文的起止位置 代碼示例(Tutorial) ini_set('memory_limit','1024M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(array('mode'=>'test','dict'=>'big')); Finalseg::init(); $seg_list=Jieba::tokenize("永和服装饰品有限公司"); var_dump($seg_list); Output: array(4){ [0]=> array(3){ 'word'=> string(6)"永和" 'start'=> int(0) 'end'=> int(2) } [1]=> array(3){ 'word'=> string(6)"服装" 'start'=> int(2) 'end'=> int(4) } [2]=> array(3){ 'word'=> string(6)"饰品" 'start'=> int(4) 'end'=> int(6) } [3]=> array(3){ 'word'=> string(12)"有限公司" 'start'=> int(6) 'end'=> int(10) } } 其他詞典 佔用內容較小的詞典 https://github.com/fukuball/jieba-php/blob/master/src/dict/dict.small.txt 支持繁體斷詞的詞典 https://github.com/fukuball/jieba-php/blob/master/src/dict/dict.big.txt 常見問題 模型的數據是如何生成的?fxsjy/jieba#7 這個庫的授權是?fxsjy/jieba#2 jieba-phpEnglishDocument OnlineDemo DemoSiteUrl:http://jieba-php.fukuball.com DemoSiteRepo:https://github.com/fukuball/jieba-php.fukuball.com Feature Supportthreetypesofsegmentationmode: AccurateMode,attempttocutthesentenceintothemostaccuratesegmentation,whichissuitablefortextanalysis; FullMode,breakthewordsofthesentenceintowordsscanned SearchEngineMode,basedontheAccurateMode,withanattempttocutthelongwordsintoseveralshortwords,whichcanenhancetherecallrate Usage Installation:Usecomposertoinstalljieba-php,thenrequiretheautoloadfiletousejieba-php. Algorithm BasedontheTrietreestructuretoachieveefficientwordgraphscanning;sentencesusingChinesecharactersconstituteadirectedacyclicgraph(DAG). Employsmemorysearchtocalculatethemaximumprobabilitypath,inordertoidentifythemaximumtangentialpointsbasedonwordfrequencycombination. Forunknownwords,thecharacterpositionHMM-basedmodelisused,usingtheViterbialgorithm. ThemeaningofBEMSfxsjy/jieba#7. Interface Thecutmethodacceptstwoparameters:1)firstparameteristhestringtosegmentation2)thesecondparametercut_alltocontrolsegmentationmode. Thestringtosegmentationmayuseutf-8string. cutForSearchaccpetsonlyonparameter:thestringthatrequiressegmentation,anditwillcutthesentenceintoshortwords cutandcutForSearchreturnansegmentedarray. Function1)Segmentation Example(Tutorial) ini_set('memory_limit','1024M'); require_once"/path/to/your/vendor/multi-array/MultiArray.php"; require_once"/path/to/your/vendor/multi-array/Factory/MultiArrayFactory.php"; require_once"/path/to/your/class/Jieba.php"; require_once"/path/to/your/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(); Finalseg::init(); $seg_list=Jieba::cut("怜香惜玉也得要看对象啊!"); var_dump($seg_list); seg_list=jieba.cut("我来到北京清华大学",true) var_dump($seg_list);#全模式 seg_list=jieba.cut("我来到北京清华大学",false) var_dump($seg_list);#默認精確模式 seg_list=jieba.cut("他来到了网易杭研大厦") var_dump($seg_list); seg_list=jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")#搜索引擎模式 var_dump($seg_list); Output: array(7){ [0]=> string(12)"怜香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"对象" [6]=> string(3)"啊" } FullMode: array(15){ [0]=> string(3)"我" [1]=> string(3)"来" [2]=> string(6)"来到" [3]=> string(3)"到" [4]=> string(3)"北" [5]=> string(6)"北京" [6]=> string(3)"京" [7]=> string(3)"清" [8]=> string(6)"清华" [9]=> string(12)"清华大学" [10]=> string(3)"华" [11]=> string(6)"华大" [12]=> string(3)"大" [13]=> string(6)"大学" [14]=> string(3)"学" } DefaultMode: array(4){ [0]=> string(3)"我" [1]=> string(6)"来到" [2]=> string(6)"北京" [3]=> string(12)"清华大学" } array(6){ [0]=> string(3)"他" [1]=> string(6)"来到" [2]=> string(3)"了" [3]=> string(6)"网易" [4]=> string(6)"杭研" [5]=> string(6)"大厦" } (此處,“杭研“並沒有在詞典中,但是也被Viterbi算法識別出來了) SearchEngineMode: array(18){ [0]=> string(6)"小明" [1]=> string(6)"硕士" [2]=> string(6)"毕业" [3]=> string(3)"于" [4]=> string(6)"中国" [5]=> string(6)"科学" [6]=> string(6)"学院" [7]=> string(9)"科学院" [8]=> string(15)"中国科学院" [9]=> string(6)"计算" [10]=> string(9)"计算所" [11]=> string(3)"后" [12]=> string(3)"在" [13]=> string(6)"日本" [14]=> string(6)"京都" [15]=> string(6)"大学" [16]=> string(18)"日本京都大学" [17]=> string(6)"深造" } Function2)Addacustomdictionary Developerscanspecifytheirowncustomdictionarytoincludeinthejiebathesaurus.jiebahastheabilitytoidentifynewwords,butaddingyourownnewwordscanensureahigherrateofcorrectsegmentation. Usage:Jieba::loadUserDict(file_name)#file_nameisacustomdictionarypath. Thedictionaryformatisthesameasthatofdict.txt:onewordperline;eachlineisdividedintotwoparts,thefirstistheworditself,theotheristhewordfrequency,separatedbyaspace. Example: 云计算5 李小福2 创新办3 之前:李小福/是/创新/办/主任/也/是/云/计算/方面/的/专家/ 加載自定義詞庫後: 李小福/是/创新办/主任/也/是/云计算/方面/的/专家/ Function3)KeywordExtraction JiebaAnalyse::extractTags($content,$top_k) content:thetexttobeextracted top_k:toreturnseveralTF/IDFweightsforthebiggestkeywords,thedefaultvalueis20 Example(keywordextraction) ini_set('memory_limit','600M'); require_once"/path/to/your/vendor/multi-array/MultiArray.php"; require_once"/path/to/your/vendor/multi-array/Factory/MultiArrayFactory.php"; require_once"/path/to/your/class/Jieba.php"; require_once"/path/to/your/class/Finalseg.php"; require_once"/path/to/your/class/JiebaAnalyse.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; useFukuball\Jieba\JiebaAnalyse; Jieba::init(array('mode'=>'test','dict'=>'small')); Finalseg::init(); JiebaAnalyse::init(); $top_k=10; $content=file_get_contents("/path/to/your/dict/lyric.txt","r"); $tags=JiebaAnalyse::extractTags($content,$top_k); var_dump($tags); Output: array(10){ ["是否"]=> float(1.2196321889395) ["一般"]=> float(1.0032459890209) ["肌迫"]=> float(0.64654314660465) ["怯懦"]=> float(0.44762844339349) ["藉口"]=> float(0.32327157330233) ["逼不得已"]=> float(0.32327157330233) ["不安全感"]=> float(0.26548304656279) ["同感"]=> float(0.23929673812326) ["有把握"]=> float(0.21043366018744) ["空洞"]=> float(0.20598261709442) } Function4)WordSegmentationandTagging WordTaggingMeaning:https://gist.github.com/luw2007/6016931 Example(wordtagging) ini_set('memory_limit','600M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; require_oncedirname(dirname(__FILE__))."/class/Posseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; useFukuball\Jieba\Posseg; Jieba::init(); Finalseg::init(); Posseg::init(); $seg_list=Posseg::cut("这是一个伸手不见五指的黑夜。

我叫孙悟空,我爱北京,我爱Python和C++。

"); var_dump($seg_list); Output: array(21){ [0]=> array(2){ ["word"]=> string(3)"这" ["tag"]=> string(1)"r" } [1]=> array(2){ ["word"]=> string(3)"是" ["tag"]=> string(1)"v" } [2]=> array(2){ ["word"]=> string(6)"一个" ["tag"]=> string(1)"m" } [3]=> array(2){ ["word"]=> string(18)"伸手不见五指" ["tag"]=> string(1)"i" } [4]=> array(2){ ["word"]=> string(3)"的" ["tag"]=> string(2)"uj" } [5]=> array(2){ ["word"]=> string(6)"黑夜" ["tag"]=> string(1)"n" } [6]=> array(2){ ["word"]=> string(3)"。

" ["tag"]=> string(1)"w" } [7]=> array(2){ ["word"]=> string(3)"我" ["tag"]=> string(1)"r" } [8]=> array(2){ ["word"]=> string(3)"叫" ["tag"]=> string(1)"v" } [9]=> array(2){ ["word"]=> string(9)"孙悟空" ["tag"]=> string(2)"nr" } [10]=> array(2){ ["word"]=> string(3)"," ["tag"]=> string(1)"w" } [11]=> array(2){ ["word"]=> string(3)"我" ["tag"]=> string(1)"r" } [12]=> array(2){ ["word"]=> string(3)"爱" ["tag"]=> string(1)"v" } [13]=> array(2){ ["word"]=> string(6)"北京" ["tag"]=> string(2)"ns" } [14]=> array(2){ ["word"]=> string(3)"," ["tag"]=> string(1)"w" } [15]=> array(2){ ["word"]=> string(3)"我" ["tag"]=> string(1)"r" } [16]=> array(2){ ["word"]=> string(3)"爱" ["tag"]=> string(1)"v" } [17]=> array(2){ ["word"]=> string(6)"Python" ["tag"]=> string(3)"eng" } [18]=> array(2){ ["word"]=> string(3)"和" ["tag"]=> string(1)"c" } [19]=> array(2){ ["word"]=> string(3)"C++" ["tag"]=> string(3)"eng" } [20]=> array(2){ ["word"]=> string(3)"。

" ["tag"]=> string(1)"w" } } Function5):UseTraditionalChinese Example(Tutorial) ini_set('memory_limit','1024M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(array('mode'=>'default','dict'=>'big')); Finalseg::init(); $seg_list=Jieba::cut("怜香惜玉也得要看对象啊!"); var_dump($seg_list); $seg_list=Jieba::cut("憐香惜玉也得要看對象啊!"); var_dump($seg_list); Output: array(7){ [0]=> string(12)"怜香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"对象" [6]=> string(3)"啊" } array(7){ [0]=> string(12)"憐香惜玉" [1]=> string(3)"也" [2]=> string(3)"得" [3]=> string(3)"要" [4]=> string(3)"看" [5]=> string(6)"對象" [6]=> string(3)"啊" } Function6):KeepingJapaneseorKoreanoriginaltext Example(Tutorial) ini_set('memory_limit','1024M'); require_oncedirname(dirname(__FILE__))."/vendor/multi-array/MultiArray.php"; require_oncedirname(dirname(__FILE__))."/vendor/multi-array/Factory/MultiArrayFactory.php"; require_oncedirname(dirname(__FILE__))."/class/Jieba.php"; require_oncedirname(dirname(__FILE__))."/class/Finalseg.php"; useFukuball\Jieba\Jieba; useFukuball\Jieba\Finalseg; Jieba::init(array('cjk'=>'all')); Finalseg::init(); $seg_list=Jieba::cut("한국어또는조선말은제주특별자치도를제외한한반도및그부속도서와한민족거주지역에서쓰이는언어로"); var_dump($seg_list); $seg_list=Jieba::cut("日本語は、主に日本国内や日本人同士の間で使われている言語である。

"); var_dump($seg_list); //LoadingcustomJapanesedictionarycandoasimplewordsegmentation Jieba::loadUserDict("/path/to/your/japanese/dict.txt"); $seg_list=Jieba::cut("日本語は、主に日本国内や日本人同士の間で使われている言語である。

"); var_dump($seg_list); Output: array(15){ [0]=> string(9)"한국어" [1]=> string(6)"또는" [2]=> string(12)"조선말은" [3]=> string(24)"제주특별자치도를" [4]=> string(9)"제외한" [5]=> string(9)"한반도" [6]=> string(3)"및" [7]=> string(3)"그" [8]=> string(6)"부속" [9]=> string(9)"도서와" [10]=> string(9)"한민족" [11]=> string(6)"거주" [12]=> string(12)"지역에서" [13]=> string(9)"쓰이는" [14]=> string(9)"언어로" } array(21){ [0]=> string(6)"日本" [1]=> string(3)"語" [2]=> string(3)"は" [3]=> string(3)"主" [4]=> string(3)"に" [5]=> string(6)"日本" [6]=> string(6)"国内" [7]=> string(3)"や" [8]=> string(6)"日本" [9]=> string(3)"人" [10]=> string(6)"同士" [11]=> string(3)"の" [12]=> string(3)"間" [13]=> string(3)"で" [14]=> string(3)"使" [15]=> string(3)"わ" [16]=> string(6)"れて" [17]=> string(6)"いる" [18]=> string(6)"言語" [19]=> string(3)"で" [20]=> string(6)"ある" } array(17){ [0]=> string(9)"日本語" [1]=> string(3)"は" [2]=> string(6)"主に" [3]=> string(9)"日本国" [4]=> string(3)"内" [5]=> string(3)"や" [6]=> string(9)"日本人" [7]=> string(6)"同士" [8]=> string(3)"の" [9]=> string(3)"間" [10]=> string(3)"で" [11]=> string(3)"使" [12]=> string(3)"わ" [13]=> string(6)"れて" [14]=> string(6)"いる" [15]=> string(6)"言語" [16]=> string(9)"である" } 詞性說明 a形容词(取英语形容词adjective的第1个字母。

) ad副形词(直接作状语的形容词,形容词代码a和副词代码d并在一起。

) ag形容词性语素(形容词性语素,形容词代码为a,语素代码g前面置以a。

) an名形词(具有名词功能的形容词,形容词代码a和名词代码n并在一起。

) b区别词(取汉字「别」的声母。

) c连词(取英语连词conjunction的第1个字母。

) d副词(取adverb的第2个字母,因其第1个字母已用于形容词。

) df副词* dg副语素(副词性语素,副词代码为d,语素代码g前面置以d。

) e叹词(取英语叹词exclamation的第1个字母。

) eng外语 f方位词(取汉字「方」的声母。

) g语素(绝大多数语素都能作为合成词的「词根」,取汉字「根」的声母。

) h前接成分(取英语head的第1个字母。

) i成语(取英语成语idiom的第1个字母。

) j简称略语(取汉字「简」的声母。

) k后接成分 l习用语(习用语尚未成为成语,有点「临时性」,取「临」的声母。

) m数词(取英语numeral的第3个字母,n,u已有他用。

) mg数语素 mq数词* n名词(取英语名词noun的第1个字母。

) ng名语素(名词性语素,名词代码为n,语素代码g前面置以n。

) nr人名(名词代码n和「人(ren)」的声母并在一起。

) nrfg名词* nrt名词* ns地名(名词代码n和处所词代码s并在一起。

) nt机构团体(「团」的声母为t,名词代码n和t并在一起。

) nz其他专名(「专」的声母的第1个字母为z,名词代码n和z并在一起。

) o拟声词(取英语拟声词onomatopoeia的第1个字母。

) p介词(取英语介词prepositional的第1个字母。

) q量词(取英语quantity的第1个字母。

) r代词(取英语代词pronoun的第2个字母,因p已用于介词。

) rg代词语素 rr代词* rz代词* s处所词(取英语space的第1个字母。

) t时间词(取英语time的第1个字母。

) tg时语素(时间词性语素,时间词代码为t,在语素的代码g前面置以t。

) u助词(取英语助词auxiliary的第2个字母,因a已用于形容词。

) ud助词* ug助词* uj助词* ul助词* uv助词* uz助词* v动词(取英语动词verb的第一个字母。

) vd副动词(直接作状语的动词,动词和副词的代码并在一起。

) vg动语素 vi动词* vn名动词(指具有名词功能的动词,动词和名词的代码并在一起。

) vq动词* w标点符号 x非语素字(非语素字只是一个符号,字母x通常用于代表未知数、符号。

) y语气词(取汉字「语」的声母。

) z状态词(取汉字「状」的声母的前一个字母。

) zg状态词* Donate Ifyoufindfuku-mluseful,pleaseconsideradonation.Thankyou! bitcoin:1BbihQU3CzSdyLSP9bvQq7Pi1z1jTdAaq9 eth:0x92DA3F837bf2F79D422bb8CEAC632208F94cdE33 License TheMITLicense(MIT) Copyright(c)2015fukuball Permissionisherebygranted,freeofcharge,toanypersonobtainingacopy ofthissoftwareandassociateddocumentationfiles(the"Software"),todeal intheSoftwarewithoutrestriction,includingwithoutlimitationtherights touse,copy,modify,merge,publish,distribute,sublicense,and/orsell copiesoftheSoftware,andtopermitpersonstowhomtheSoftwareis furnishedtodoso,subjecttothefollowingconditions: Theabovecopyrightnoticeandthispermissionnoticeshallbeincludedinall copiesorsubstantialportionsoftheSoftware. THESOFTWAREISPROVIDED"ASIS",WITHOUTWARRANTYOFANYKIND,EXPRESSOR IMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEWARRANTIESOFMERCHANTABILITY, FITNESSFORAPARTICULARPURPOSEANDNONINFRINGEMENT.INNOEVENTSHALLTHE AUTHORSORCOPYRIGHTHOLDERSBELIABLEFORANYCLAIM,DAMAGESOROTHER LIABILITY,WHETHERINANACTIONOFCONTRACT,TORTOROTHERWISE,ARISINGFROM, OUTOFORINCONNECTIONWITHTHESOFTWAREORTHEUSEOROTHERDEALINGSINTHE SOFTWARE. About "結巴"中文分詞:做最好的PHP中文分詞、中文斷詞組件。

/"Jieba"(Chinesefor"tostutter")Chinesetextsegmentation:builttobethebestPHPChinesewordsegmentationmodule. jieba-php.fukuball.com Topics nlp machine-learning natural-language-processing chinese-text-segmentation Resources Readme License MITlicense Stars 1.2k stars Watchers 57 watching Forks 245 forks Releases 17 jieba-php0.33 Latest Nov22,2017 +16releases Packages0 Nopackagespublished Usedby234 +226 Contributors10 Languages PHP 100.0% Youcan’tperformthatactionatthistime. Yousignedinwithanothertaborwindow.Reloadtorefreshyoursession. Yousignedoutinanothertaborwindow.Reloadtorefreshyoursession.



請為這篇文章評分?