函数 rb_split 給 502 Bad Gateway

hkicenet 发布于 2014/03/13 16:43
阅读 394
收藏 0

如題, 其他Robbe函数正常, 但運行rb_split定報502 bad gateway

<?php $str = 'PHP 安装 Robbe 中文分词扩展'; $participle = rb_split($str, __RB_SIMPLE_MODE__); var_dump($participle); ?>

已查看phpinfo, Robbe 1.6運行正常, 幫幫忙給點意見

環境:

ubuntu 12.04 32-bit

RAM 1.7GB (RAM用不多)

LNMP 1.0 (Nginx 1.2.7, PHP 5.3.17)


加载中
0
狮子的魂
狮子的魂

估计是我在升级文档中忘记说明了。robbe从1.6.0开始发生了不少变化,例如:将全部的常量都变短了。

__RB_SIMPLE_MODE__ 这个常量从1.6.0开始已经不存在了,改成了:RB_CMODE

而且rb_split函数的参数也更多了,可以自定义配置选项和自定义返回参数选项。

具体可以查看附件中的robbe.fun.php。

0
KDash
KDash
我之前也是安装好了后重启apache就没管了,后面才发现,页面出错了。@狮子的魂  以后更新了,麻烦提醒一下。。。
0
KDash
KDash
http://code.google.com/p/robbe Downloads中下载最新版本的zip文件,解压里面有个php文件夹,打开就可以看到robbe.fun.php。
0
hkicenet
hkicenet
已找到, 謝謝 @KDash
0
hkicenet
hkicenet

剛剛測試, 發現繁體中文不能分詞, 簡體沒問題

我已設定 rb_charset() == 'UTF-8', 還有甚麼要設定才支援繁體? 謝謝

<?php header("Content-Type:text/html;charset=utf-8;"); echo "constant access:<br />"; echo "complex mode: ".RB_CMODE.", simple mode: ".RB_SMODE."<br />"; echo "rb_ucode_utf8(20013)=".rb_ucode_utf8(20013)."<br />"; echo "rb_utf8_ucode(中)=".rb_utf8_ucode("中")."<br />"; echo "rb_utf8_bytes(中)=".rb_utf8_bytes("中")."<p />"; echo "词库函数:<br />"; echo "rb_dic_exist(研究) ? ".rb_dic_exist(RB_LEX_CJK, "研究")."<br />"; $_entry = rb_dic_get(RB_LEX_CJK, "你"); echo "rb_dic_get(你):<br />"; echo "|——length: ".$_entry["length"].", freq: ".$_entry["freq"]."<p />"; //version about. echo "friso_version(): ", friso_version(), "<br />"; echo "rb_version(): " , rb_version(), ", rb_charset(): ", rb_charset(), "<p />"; echo "分词函数:<br />"; if ( rb_charset() == 'UTF-8' ) { $_str = "【太陽報專訊】【本報訊】馬航客機失蹤事件撲朔迷離,多位本港航空專家及民航機師均推測事故極度突然,機師連向控制塔發出求救訊號也來不及,不排除客機曾爆炸及空中解體。出事客機前年曾在上海與另一飛機碰撞導致機翼受損,雖然事隔一年多,但亦不能完全抹殺該次碰撞導致今次事故的可能性,一切謎底或許要待尋回客機黑盒及長時間調查才能解開。港曾呼召無回應翻查出事航機的註冊編號,馬航失蹤航班也有安排飛香港的航線,本月六日曾抵港,之後兩天則飛北京航線。出事客機原定在本港時間昨凌晨三時十五分進入本港上空,香港民航處稱,客機沒有在本港上空出現,也無收到任何求救或要求緊急降落訊息。消息實香港機場控制塔在出事客機失蹤後曾經呼召機師,卻無任何回應。前民航處處長林光宇稱,客機突然從雷達消失,可能是空中解體或直接墜海。本港民航機師譚文豪翻查馬來西亞及越南的氣象數據後稱,事故與天氣有關機會不大。美國有線新聞網絡(CNN)引述美國航空專家理查德表示,事發時航班已飛行兩小時,屬於飛行的巡航部分(Cruise portion),為飛行時最安全的階段,按理不會出錯,故他認為客機在這個時候出事,是極嚴重的問題。"; echo "rb_split(\"" . $_str . "\"):<br />"; //API: //rb_split(string, Array, [long]) //1.string: 要被切分的字符串。 //2.Array: 配置选项,使用NULL来选择默认的配置(friso.ini中的配置)。 //3.long: 可选参数,自定义切分返回选项,查看下面的$_rargs //1.完整的配置: //array('max_len'=>5, 'r_name'=>0, 'mix_len'=>2, 'lna_len'=>1, 'add_syn'=>1, // 'clr_stw'=>1, 'keep_urec'=>0, 'spx_out'=>0, 'en_sseg'=> 1, 'st_minl'=>2, 'kpuncs'=>'.+#', 'mode'=>RB_CMODE); //1.在不了解friso内核的情况下, 请不要随便更改nthreshold //2.使用NULL来使用php.ini中指定的friso.ini文件中的配置 //2.返回选项: //词条: RB_RET_WORD, 类别:RB_RET_TYPE, 长度:RB_RET_LENGTH, 真实长度:RB_RET_RLEN, 偏移量:RB_RET_OFF //词性:RB_RET_POS(待实现) //$_rargs = RB_RET_TYPE | RB_RET_LEN | RB_RET_RLEN | RB_RET_OFF | RB_RET_POS; $_rargs = 0; //3.切分类别: //CJK词条:RB_TYP_CJK, 英中混合词(b超):RB_TYP_ECM,中英混合词(卡拉ok):RB_TYP_CEM, //英文标点混合词(c++):RB_TYP_EPUN,标点:RB_TYP_PUN,未知类别:RB_TYP_UNK,其他类别(同义词):RB_TYP_OTR //$_result = rb_split($_str, array('mode'=>RB_CMODE), $_rargs); $_result = rb_split($_str, array('mode'=>RB_SMODE), $_rargs); unset($_str); foreach ( $_result as $_val ) { $_str = $_val['word']; if ( $_rargs != 0 ) { $_str .= '['; if ( ($_rargs & RB_RET_TYPE) != 0 ) $_str .= ', type: '.$_val['type']; //获取词条类别 if ( ($_rargs & RB_RET_LEN) != 0 ) $_str .= ', len: ' . $_val['len']; //词条长度 if ( ($_rargs & RB_RET_RLEN) != 0 ) $_str .= ', rlen: ' . $_val['rlen']; //词条真实长度 if ( ($_rargs & RB_RET_OFF) != 0 ) $_str .= ', off: ' . $_val['off']; //词条偏移量 if ( ($_rargs & RB_RET_POS) != 0 ) $_str .= ', pos: ' . $_val['pos']; //词条词性 $_str .= ']'; } $_str .= '/ '; echo $_str; } } else echo "set charset to UTF-8 to test function rb_split."; ?>

測試:

分词函数: rb_split("【太陽報專訊】【本報訊】馬航客機失蹤事件撲朔迷離,多位本港航空專家及民航機師均推測事故極度突然,機師連向控制塔發出求救訊號也來不及,不排除客機曾爆炸及空中解體。出事客機前年曾在上海與另一飛機碰撞導致機翼受損,雖然事隔一年多,但亦不能完全抹殺該次碰撞導致今次事故的可能性,一切謎底或許要待尋回客機黑盒及長時間調查才能解開。港曾呼召無回應翻查出事航機的註冊編號,馬航失蹤航班也有安排飛香港的航線,本月六日曾抵港,之後兩天則飛北京航線。出事客機原定在本港時間昨凌晨三時十五分進入本港上空,香港民航處稱,客機沒有在本港上空出現,也無收到任何求救或要求緊急降落訊息。消息實香港機場控制塔在出事客機失蹤後曾經呼召機師,卻無任何回應。前民航處處長林光宇稱,客機突然從雷達消失,可能是空中解體或直接墜海。本港民航機師譚文豪翻查馬來西亞及越南的氣象數據後稱,事故與天氣有關機會不大。美國有線新聞網絡(CNN)引述美國航空專家理查德表示,事發時航班已飛行兩小時,屬於飛行的巡航部分(Cruise portion),為飛行時最安全的階段,按理不會出錯,故他認為客機在這個時候出事,是極嚴重的問題。"): 【/ 太/ 陽/ 報/ 專/ 訊/ 】/ 【/ 本/ 報/ 訊/ 】/ 馬/ 航/ 客/ 機/ 失/ 蹤/ 事件/ 撲/ 朔/ 迷/ 離/ ,/ 多位/ 本港/ 航空/ 專/ 家/ 及/ 民航/ 機/ 師/ 均/ 推/ 測/ 事故/ 極/ 度/ 突然/ ,/ 機/ 師/ 連/ 向/ 控制/ 塔/ 發/ 出/ 求救/ 訊/ 號/ 也/ 來/ 不及/ ,/ 不/ 排除/ 客/ 機/ 曾/ 爆炸/ 及/ 空中/ 解/ 體/ 。/ 出事/ 客/ 機/ 前年/ 曾在/ 上海/ 與/ 另一/ 飛/ 機/ 碰撞/ 導/ 致/ 機/ 翼/ 受/ 損/ ,/ 雖/ 然/ 事隔/ 一年多/ ,/ 但/ 亦不/ 能/ 完全/ 抹/ 殺/ 該/ 次/ 碰撞/ 導/ 致/ 今次/ 事故/ 的/ 可能性/ ,/ 一切/ 謎/ 底/ 或/ 許/ 要/ 待/ 尋/ 回/ 客/ 機/ 黑盒/ 及/ 長/ 時/ 間/ 調/ 查/ 才能/ 解/ 開/ 。/ 港/ 曾/ 呼召/ 無/ 回/ 應/ 翻查/ 出事/ 航/ 機/ 的/ 註/ 冊/ 編/ 號/ ,/ 馬/ 航/ 失/ 蹤/ 航班/ 也/ 有/ 安排/ 飛/ 香港/ 的/ 航/ 線/ ,/ 本月/ 六日/ 曾/ 抵/ 港/ ,/ 之/ 後/ 兩/ 天/ 則/ 飛/ 北京/ 航/ 線/ 。/ 出事/ 客/ 機/ 原定/ 在/ 本港/ 時/ 間/ 昨/ 凌晨/ 三/ 時/ 十五/ 分/ 進/ 入/ 本港/ 上空/ ,/ 香港/ 民航/ 處/ 稱/ ,/ 客/ 機/ 沒/ 有/ 在/ 本港/ 上空/ 出/ 現/ ,/ 也/ 無/ 收到/ 任何/ 求救/ 或/ 要求/ 緊/ 急降/ 落/ 訊/ 息/ 。/ 消息/ / 實/ 香港/ 機/ 場/ 控制/ 塔/ 在/ 出事/ 客/ 機/ 失/ 蹤/ 後/ 曾/ 經/ 呼召/ 機/ 師/ ,/ 卻/ 無/ 任何/ 回/ 應/ 。/ 前/ 民航/ 處/ 處/ 長/ 林/ 光/ 宇/ 稱/ ,/ 客/ 機/ 突然/ 從/ 雷/ 達/ 消失/ ,/ 可能/ 是/ 空中/ 解/ 體/ 或/ 直接/ 墜/ 海/ 。/ 本港/ 民航/ 機/ 師/ 譚/ 文豪/ 翻查/ 馬/ 來/ 西/ 亞/ 及/ 越南/ 的/ 氣/ 象/ 數/ 據/ 後/ 稱/ ,/ 事故/ 與/ 天/ 氣/ 有/ 關/ 機/ 會/ 不大/ 。/ 美/ 國/ 有/ 線/ 新/ 聞/ 網/ 絡/ (/ cnn/ )/ 引述/ 美/ 國/ 航空/ 專/ 家/ 理查德/ 表示/ ,/ 事/ 發/ 時/ 航班/ 已/ 飛/ 行/ 兩/ 小/ 時/ ,/ 屬/ 於/ 飛/ 行的/ 巡航/ 部分/ (/ cruise/ portion/ )/ ,/ 為/ 飛/ 行/ 時/ 最/ 安全/ 的/ 階/ 段/ ,/ 按理/ 不/ 會/ 出/ 錯/ ,/ 故/ 他/ 認/ 為/ 客/ 機/ 在/ 這/ 個/ 時/ 候/ 出事/ ,/ 是/ 極/ 嚴/ 重的/ 問/ 題/ 。/

0
狮子的魂
狮子的魂

@hkicenet robbe从1.5.0开始就支持繁体切分了。你的测试程序中看到繁体没切分是因为你使用的是简体词库,到http://code.google.com/p/friso 的Downloads中下载完整的词库。

http://code.google.com/p/friso/downloads/detail?name=friso-dict-all.zip&can=2&q=

不过那个词库全部是UTF-8编码的,如果你的程序需要使用GBK词库,请在linux使用工具自己转换。

0
hkicenet
hkicenet

@狮子的魂 , 謝謝回答。

rb_split 以下設定不太了解, 可否說明一下? 或有沒有相關文檔?

混合词中文词长: mix_len

英文二次切分: en_sseg

二次切分子Token最小长度: st_minl


已參考friso文檔:

https://code.google.com/p/friso/wiki/FrisoCfgFile

0
狮子的魂
狮子的魂

引用来自“hkicenet”的答案

@狮子的魂 , 謝謝回答。

rb_split 以下設定不太了解, 可否說明一下? 或有沒有相關文檔?

混合词中文词长: mix_len

英文二次切分: en_sseg

二次切分子Token最小长度: st_minl


已參考friso文檔:

https://code.google.com/p/friso/wiki/FrisoCfgFile

可以先不用理会,我找个时间写个文档吧。
0
狮子的魂
狮子的魂
@hkicenet 发布了friso的新版本,friso-help-dic.pdf中加入了详细的使用和配置说明。
返回顶部
顶部