亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 2544 | 回復(fù): 0
打印 上一主題 下一主題

中文分詞 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-03-07 14:50 |只看該作者 |倒序?yàn)g覽
MySQL-5.1.30的scws-1.x分詞插件
作者:

hightman

                                               
                                                       
@Author: hightman
@Website:
http://www.hightman.cn/bbs
@download:
http://www.hightman.cn/down/myft-5.1.30-081231.tgz
[ 基本說(shuō)明 ]
這是以 mysql-5.1.30 為環(huán)境開(kāi)發(fā)制作的 mysql 全文檢索分詞插件。原則上應(yīng)該適用整個(gè) 5.1.x 系列。
mysql 內(nèi)置的全文檢索僅支持 myisam 類(lèi)型的表,默認(rèn)的不支持中文分詞。本插件依托 scws-1.0.1 分詞系統(tǒng),
scws 是由我開(kāi)發(fā)的免費(fèi)開(kāi)源的中文分詞系統(tǒng),純 C 開(kāi)發(fā)的函數(shù)庫(kù)。安裝本插件必須先安裝 scws-1.x。
安裝本插件后,系統(tǒng)會(huì)注冊(cè)一個(gè)名為 scws_parser 的分詞器,可以在 mysql 中直接使用它,對(duì)于小型全文檢索
需求,十分方便。
MyFT 系列之前曾發(fā)過(guò)布 5.1.11 和 4.0.27 的版本,舊版是簡(jiǎn)單的分詞算法并不理想,建議改為本版。
[ 安裝 & 測(cè)試]
1. 首先確定您在您的服務(wù)器上以源碼方式安裝了 mysql 5.1.x/ ,
   假設(shè)您的 mysql-5.1.x 安裝在 $prefix 目錄 (通常為 /usr/local/mysql5)
   務(wù)必是源碼方式,里頭一些自定義函數(shù)功能還需要對(duì)代碼打補(bǔ)丁。
2. 接下來(lái)您必須先安裝 scws-1.0.x 系統(tǒng),相關(guān)的安裝說(shuō)明及下載文件請(qǐng)?jiān)L問(wèn):
   
http://www.ftphp.com/scws
  假設(shè)安裝在 $scws_dir 目錄(建議為 /usr/local/scws)
   注意要同步下載相應(yīng)的詞典檔和規(guī)則集并放到 $scws_dir/etc 目錄中去。
   否則相應(yīng)的字符集詞典/規(guī)則集文件不存在的話(huà)則會(huì)自動(dòng)采用默認(rèn)的簡(jiǎn)易分詞法。
3. 下載本插件代碼:http://www.hightman.cn/down/myft-5.1.30-081231.tgz
4. 下載后將 tgz 文件復(fù)制到您安裝的 mysql-5.1 的源代碼所在目錄里,然后解開(kāi):
   tar xvzf myft-5.1.30-081231.tgz
   解開(kāi)后有一個(gè) scws 目錄被放到 plugin/ 目錄里
   還有一個(gè) myft_scws_udf_5.1.30.patch  補(bǔ)丁文件及本文件 README.myft-hightman
   
5. 對(duì) mysql 源碼打補(bǔ)丁,以支持自定義函數(shù)中獲取正確的字符集
   在 mysql 源碼目錄執(zhí)行 patch -p0   
    3) 在返回結(jié)果太長(zhǎng)(特別是開(kāi)啟 multi的情況下)會(huì)被裁斷,以 ... 結(jié)尾(不必?fù)?dān)心!)
    4) 測(cè)試:
mysql> SELECT SCWS_SEGMENT('我是中國(guó)人');
+---------------------------------+
| SCWS_SEGMENT('我是中國(guó)人')      |
+---------------------------------+
| 我 是 中國(guó)人                    |
+---------------------------------+
1 row in set (0.00 sec)
mysql> SELECT SCWS_SEGMENT(title) FROM test_utf8;
+-------------------------------+
| SCWS_SEGMENT(title)           |
+-------------------------------+
| MySQL Tutorial                |
| How To Use MySQL Efficiently  |
| Optimising MySQL              |
| 1001 MySQL Tricks             |
| MySQL vs . YourSQL            |
| MySQL Security                |
| 中國(guó) 測(cè)試                     |
| 瘋狂 測(cè) 中國(guó) 測(cè)試             |
| 中國(guó) 語(yǔ)言 測(cè)試                |
| 我愛(ài) china                    |
+-------------------------------+
10 rows in set (0.00 sec)
11. 自定義函數(shù) SCWS_TOPWORDS(),該函數(shù)返回字符串中的核心關(guān)鍵詞列表;
    1) 創(chuàng)建函數(shù)(只需一次):CREATE FUNCTION scws_topwords RETURNS STRING SONAME 'libftscws.so';
    2) 接受 1~3 個(gè)參數(shù),分別為:  
       詞性多個(gè)之間用,分隔,以~開(kāi)頭則表示除這些詞性以外。。。和 scws 用法一樣。
    3) 返回結(jié)果是由符合條件的關(guān)鍵詞及其詞性和次數(shù)組成,各詞之間用空格連接
       //
      
    4) 測(cè)試:
mysql> SELECT SCWS_TOPWORDS('我是中國(guó)人,中國(guó)人很有志氣');
+----------------------------------------------------------+
| SCWS_TOPWORDS('我是中國(guó)人,中國(guó)人很有志氣')              |
+----------------------------------------------------------+
| 中國(guó)人/n/2 志氣/n/1                                      |
+----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT SCWS_TOPWORDS(CONCAT(title, ' ', body)) FROM test_utf8;
+--------------------------------------------------------------------------------------------------+
| SCWS_TOPWORDS(CONCAT(title, ' ', body))                                                          |
+--------------------------------------------------------------------------------------------------+
| DataBase/en/1 Tutorial/en/1 stands/en/1 MySQL/en/1 DBMS/en/1 for/en/1                            |
| Efficiently/en/1 through/en/1 After/en/1 MySQL/en/1 went/en/1 How/en/1 Use/en/1 you/en/1 To/en/1 |
| Optimising/en/1 tutorial/en/1 MySQL/en/1 this/en/1 show/en/1 will/en/1 In/en/1 we/en/1           |
| Tricks/en/1 mysqld/en/1 MySQL/en/1 Never/en/1 1001/en/1 root/en/1 run/en/1 as/en/1               |
| comparison/en/1 following/en/1 database/en/1 YourSQL/en/1 MySQL/en/1 the/en/1 In/en/1 vs/en/1    |
| MySQL/en/2 configured/en/1 Security/en/1 properly/en/1 When/en/1                                 |
| 中國(guó)/ns/1 這樣/r/1 測(cè)試/vn/1 可以/v/1                                                            |
| 中國(guó)/ns/1 應(yīng)該/v/1 瘋狂/an/1 這樣/r/1 測(cè)試/vn/1 可以/v/1                                         |
| 中國(guó)/ns/1 不行/a/1 語(yǔ)言/n/1 這樣/r/1 測(cè)試/vn/1 又是/n/1                                          |
| china/en/2 祖國(guó)/n/1 我愛(ài)/n/1                                                                     |
+--------------------------------------------------------------------------------------------------+
10 rows in set (0.00 sec)
12. 全文檢索中的停用詞表,類(lèi)似詞典和規(guī)則集一樣放在 $scws_dir/etc 中
    分別為:stops.[$charset.]txt
            rules.[$charset.]ini
            dict.[$charset.]xdb
    如果 $charset 沒(méi)有指定,則默認(rèn)即為 gbk          
    rules dict 采用 scws-1.x 的格式, stops.txt 用的是每行一個(gè)詞即可,自行建立。
   名稱(chēng):PHPCWS(PHP中文分詞擴(kuò)展)
  協(xié)議:New BSD License
  作者:張宴
  網(wǎng)址:
http://code.google.com/p/phpcws/
  SVN:
http://code.google.com/p/phpcws/source/browse/#svn/trunk/phpcws
  一、PHPCWS 簡(jiǎn)介
  1、什么是 PHPCWS ?
  PHPCWS 是一款開(kāi)源的PHP中文分詞擴(kuò)展,目前僅支持Linux/Unix系統(tǒng)。
  PHPCWS 先使用“ICTCLAS 3.0 共享版中文分詞算法”的API進(jìn)行初次分詞處理,再使用自行編寫(xiě)的“逆向最大匹配算法”對(duì)分詞和進(jìn)行詞語(yǔ)合并處理,并增加標(biāo)點(diǎn)符號(hào)過(guò)濾功能,得出分詞結(jié)果。
  
ICTCLAS
(Institute
of Computing Technology, Chinese Lexical Analysis
System)是中國(guó)科學(xué)院計(jì)算技術(shù)研究所在多年研究工作積累的基礎(chǔ)上,基于多層隱馬模型研制出的漢語(yǔ)詞法分析系統(tǒng),主要功能包括中文分詞;詞性標(biāo)注;命
名實(shí)體識(shí)別;新詞識(shí)別;同時(shí)支持用戶(hù)詞典。ICTCLAS經(jīng)過(guò)五年精心打造,內(nèi)核升級(jí)6次,目前已經(jīng)升級(jí)到了ICTCLAS3.0,分詞精度
98.45%,各種詞典數(shù)據(jù)壓縮后不到3M。ICTCLAS在國(guó)內(nèi)973專(zhuān)家組組織的評(píng)測(cè)中活動(dòng)獲得了第一名,在第一屆國(guó)際中文處理研究機(jī)構(gòu)SigHan
組織的評(píng)測(cè)中都獲得了多項(xiàng)第一名,是當(dāng)前世界上最好的漢語(yǔ)詞法分析器。
  ICTCLAS 3.0 商業(yè)版是收費(fèi)的,而免費(fèi)提供的
ICTCLAS 3.0
共享版不開(kāi)源,詞庫(kù)是根據(jù)人民日?qǐng)?bào)一個(gè)月的語(yǔ)料得出的,很多詞語(yǔ)不存在。所以本人對(duì)ICTCLAS分詞后的結(jié)果,再采用逆向最大匹配算法,根據(jù)自己補(bǔ)充的
一個(gè)9萬(wàn)條詞語(yǔ)的自定義詞庫(kù)(與ICTCLAS詞庫(kù)中的詞語(yǔ)不重復(fù)),對(duì)ICTCLAS分詞結(jié)果進(jìn)行合并處理,輸出最終分詞結(jié)果。
  由于 ICTCLAS 3.0 共享版只支持GBK編碼,因此,如果是UTF-8編碼的字符串,可以先用PHP的iconv函數(shù)轉(zhuǎn)換成GBK編碼,再用phpcws_split函數(shù)進(jìn)行分詞處理,最后轉(zhuǎn)換回UTF-8編碼。
  2、PHPCWS 中文分詞在線(xiàn)演示
  演示網(wǎng)址:
http://blog.s135.com/demo/phpcws/
  3、PHPCWS 分詞速度及用途
  初次使用時(shí),Apache 或 php-cgi(FastCGI) 進(jìn)程,需要加載一次詞庫(kù)到內(nèi)存中,需要0.0X秒。58字節(jié)的一句話(huà)——“2009年2月13日,我編寫(xiě)了一款PHP中文分詞擴(kuò)展:PHPCWS 1.0.0!,分詞速度只需0.0003秒。
  PHPCWS 屬于《
億級(jí)數(shù)據(jù)的高并發(fā)通用搜索引擎架構(gòu)設(shè)計(jì)

的一部分,用作“搜索查詢(xún)接口”的關(guān)鍵字分詞處理。在此架構(gòu)中,Sphinx索引引擎對(duì)于CJK(中日韓)語(yǔ)言支持一元切分,假設(shè)【反恐行動(dòng)是國(guó)產(chǎn)主視角
射擊網(wǎng)絡(luò)游戲】這段文字,Sphinx會(huì)將其切成【反 恐 行 動(dòng) 是 國(guó) 產(chǎn) 主 視 角 射 擊 網(wǎng) 絡(luò) 游
戲】,然后對(duì)每個(gè)字建立反向索引。如果用這句話(huà)中包含的字組成一個(gè)不存在的詞語(yǔ),例如【恐動(dòng)】,也會(huì)被搜索到,所以搜索時(shí),需要加引號(hào),例如搜索【"反恐
行動(dòng)"】,就能完全匹配連在一起的四個(gè)字,不連續(xù)的【"恐動(dòng)"】就不會(huì)被搜索到。但是,這樣還有一個(gè)問(wèn)題,搜索【"反恐行動(dòng)游戲"】或【"國(guó)產(chǎn)網(wǎng)絡(luò)游
戲"】就會(huì)搜索不到。所以,我在搜索層寫(xiě)了個(gè)PHP中文分詞擴(kuò)展,搜索“反恐行動(dòng)游戲”、“國(guó)產(chǎn)網(wǎng)絡(luò)游戲”,會(huì)被PHPCWS中文分詞函數(shù)分別切分為“反
恐行動(dòng) 游戲”、“國(guó)產(chǎn) 網(wǎng)絡(luò)游戲”,這時(shí)候,用PHP函數(shù)給以空格分隔的詞語(yǔ)加上引號(hào),去搜索【"反恐行動(dòng)" "游戲"】或【"國(guó)產(chǎn)"
"網(wǎng)絡(luò)游戲"】,就能搜索到這條記錄了。由于PHPCWS位于搜索層,中文分詞詞庫(kù)發(fā)生增、刪、改,只需平滑重啟一次Web服務(wù)器或php-cgi進(jìn)程即
可,無(wú)需重建搜索索引。
  根據(jù)上述情況,對(duì)于那些采用二元交叉切分的搜索引擎,PHPCWS用在前端搜索層對(duì)用戶(hù)輸入的搜索關(guān)鍵字、短語(yǔ)進(jìn)行分詞處理,同樣適合。PHPCWS開(kāi)發(fā)的目的正在于此,對(duì)于短句、小文本中文分詞切分,速度非常之快。
  4、自定義詞庫(kù)
  自定義詞庫(kù)名稱(chēng)為
userdict.tch
,格式為 Tokyo Cabinet DBM 的 Abstract key-value 內(nèi)存哈希數(shù)據(jù)庫(kù)(key為GBK編碼的詞語(yǔ)名詞,value為詞頻。目前詞頻均填1,暫時(shí)用不上)。自定義詞庫(kù)的修改在安裝步驟中會(huì)詳細(xì)介紹。
  二、PHPCWS 1.0.0 安裝步驟
  1、安裝 Tokyo Cabinet 數(shù)據(jù)庫(kù):
wget
http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.5.tar.gz
tar zxvf tokyocabinet-1.4.5.tar.gz
cd tokyocabinet-1.4.5/
./configure --prefix=/usr/local/tokyocabinet-1.4.5
make && make install
mkdir -p /usr/local/tokyocabinet-1.4.5/lib/static/
cp -f /usr/local/tokyocabinet-1.4.5/lib/*.a /usr/local/tokyocabinet-1.4.5/lib/static/
echo "/usr/local/tokyocabinet-1.4.5/lib" >> /etc/ld.so.conf
/sbin/ldconfig
cd ../
  2、安裝 PHPCWS 擴(kuò)展:
wget
http://phpcws.googlecode.com/files/phpcws-1.0.0.tar.gz
tar zxvf phpcws-1.0.0.tar.gz
cd phpcws-1.0.0/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-tc=/usr/local/tokyocabinet-1.4.5
make && make install
cd ../
  注:其中/usr/local/webserver/php/為您的PHP安裝目錄。
  3、安裝 ICTCLAS 3.0 詞庫(kù)和 PHPCWS 自定義詞庫(kù)(詞庫(kù)漢字編碼均為GBK):
cd /usr/local/
wget
http://phpcws.googlecode.com/files/phpcws-dict-1.0.0.tar.gz
tar zxvf phpcws-dict-1.0.0.tar.gz
mv phpcws-dict-1.0.0 phpcws
  您可以往自定義詞庫(kù)內(nèi)增加自己的詞語(yǔ),方法如下:
cd /usr/local/phpcws/
#如果userdict.tch已經(jīng)被PHP加載,請(qǐng)拷貝一個(gè)備份
cp userdict.tch userdict_new.tch
#添加新詞語(yǔ)
/usr/local/tokyocabinet-1.4.5/bin/tcamgr put userdict_new.tch 詞語(yǔ)一 1
/usr/local/tokyocabinet-1.4.5/bin/tcamgr put userdict_new.tch 詞語(yǔ)二 1
查詢(xún)某個(gè)詞語(yǔ)是否已經(jīng)在詞庫(kù)內(nèi)
/usr/local/tokyocabinet-1.4.5/bin/tcamgr get userdict_new.tch 詞語(yǔ)名詞
#刪除一個(gè)詞語(yǔ)
/usr/local/tokyocabinet-1.4.5/bin/tcamgr out userdict_new.tch 詞語(yǔ)名稱(chēng)
#將修改后的新詞庫(kù)覆蓋回原詞庫(kù)
mv userdict_new.tch userdict.tch
#重啟您的Apache服務(wù)器,或php-cgi(FastCGI)進(jìn)程。
#例如重啟php-cgi(FastCGI)進(jìn)程:
/usr/local/webserver/php/sbin/php reload
  您可以從
搜狗細(xì)胞詞庫(kù)網(wǎng)站
下載自己需要的行業(yè)分類(lèi)文本詞庫(kù),整合到PHPCWS自定義詞庫(kù)中。
  4、修改您的php.ini文件,增加以下幾行內(nèi)容:
[phpcws]
extension = "phpcws.so"
phpcws.dict_path = "/usr/local/phpcws"
  5、重啟您的Apache服務(wù)器,或php-cgi(FastCGI)進(jìn)程
  6、查看您的phpinfo信息,如果搜索到以下內(nèi)容,則表明安裝成功:
  

  三、PHPCWS 1.0.0 調(diào)用方式
  1、PHPCWS擴(kuò)展擁有一個(gè)PHP函數(shù):
  string phpcws_split ( string $text [, string $interpunction ] )
  參數(shù)說(shuō)明:
  $text 為GBK編碼的文本內(nèi)容;
  $interpunction 為可選參數(shù),用來(lái)控制是否過(guò)濾標(biāo)點(diǎn)符號(hào)。
 、、值為空時(shí),表示不過(guò)濾;
  ②、值為"default"時(shí),過(guò)濾掉默認(rèn)的標(biāo)點(diǎn)符號(hào),即以下標(biāo)點(diǎn)符號(hào):
  ,.!。ⅲ#ぃィΓ啵Вǎ病场础怠丁贰浮埂骸弧肌健尽浚。、?…—·ˉˇ¨‘’“”々~‖∶"/:;|〃<=>?@[\]^_`{|} ̄
  ③、值為其他字符串時(shí),表示過(guò)濾掉自定義的標(biāo)點(diǎn)符號(hào),例如值為",.!,。!"即過(guò)濾掉半角、全角的逗號(hào)、句號(hào)、感嘆號(hào)。
  2、PHP中文分詞實(shí)例:
  ①、對(duì)GBK編碼的字符串進(jìn)行中文分詞處理(example_gbk.php):
@header('Content-Type: text/html; charset=gb2312');  $text = "2009年2月13日,我編寫(xiě)了一款PHP中文分詞擴(kuò)展:PHPCWS 1.0.0。";    echo "分詞結(jié)果為:
";  $result = phpcws_split($text);  echo $result . "
";    echo "過(guò)濾掉默認(rèn)標(biāo)點(diǎn)符號(hào)的分詞結(jié)果為:
";  $result = phpcws_split($text, "default");  echo $result . "
";    echo "過(guò)濾掉全角逗號(hào)與冒號(hào)的分詞結(jié)果為:
";  $result = phpcws_split($text, ",:");  echo $result . "
";  ?>  
 、、對(duì)UTF-8編碼的字符串進(jìn)行中文分詞處理(example_utf8.php):
@header('Content-Type: text/html; charset=utf-8');  $text = "2009年2月13日,我編寫(xiě)了一款PHP中文分詞擴(kuò)展:PHPCWS 1.0.0。";  $text = iconv("UTF-8", "GBK//IGNORE", $text);    echo "分詞結(jié)果為:
";  $result = phpcws_split($text);  $result = iconv("GBK", "UTF-8//IGNORE", $result);  echo $result . "
";    echo "過(guò)濾掉默認(rèn)標(biāo)點(diǎn)符號(hào)的分詞結(jié)果為:
";  $result = phpcws_split($text, "default");  $result = iconv("GBK", "UTF-8//IGNORE", $result);  echo $result . "
";    echo "過(guò)濾掉全角逗號(hào)與冒號(hào)的分詞結(jié)果為:
";  $result = phpcws_split($text, ",:");  $result = iconv("GBK", "UTF-8//IGNORE", $result);  echo $result . "
";  ?>  
  輸出結(jié)果為:
分詞結(jié)果為:
2009年 2月 13日 , 我 編寫(xiě) 了 一款 PHP 中文 分詞 擴(kuò)展 : PHPCWS 1.0.0 。
過(guò)濾掉默認(rèn)標(biāo)點(diǎn)符號(hào)的分詞結(jié)果為:
2009年 2月 13日 我 編寫(xiě) 了 一款 PHP 中文 分詞 擴(kuò)展 PHPCWS 1.0.0
過(guò)濾掉全角逗號(hào)與冒號(hào)的分詞結(jié)果為:
2009年 2月 13日 我 編寫(xiě) 了 一款 PHP 中文 分詞 擴(kuò)展 PHPCWS 1.0.0 。
  以上兩個(gè)實(shí)例PHP程序文件可以從SVN中獲。
svn checkout
http://phpcws.googlecode.com/svn/trunk/php-example/
php-example


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/13284/showart_1854560.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP