湘里妹子学术网

 找回密码
 注册
查看: 4521|回复: 7

Google风格的全文搜寻引擎测试(GB/Big5/Images)

[复制链接]
发表于 2006-2-26 22:43:12 | 显示全部楼层 |阅读模式
GB2312測試↓
http://66.49.234.160/cgi-bin/s/homeseek.cgi
Big5測試↓
http://66.49.234.160/cgi-bin/s1/homeseek.cgi

可將下列字詞貼入測試↓
语言 方式 李如龙 分布 汉语 研究

可以看到↓

已經把各字標示出來,請按下:Highlight
可以看到↓

然後所有關鍵字都以色彩標示了

[ 本贴由 Artvine 于 2006-2-26  22:52 最后编辑 ]
发表于 2006-2-27 17:12:41 | 显示全部楼层
搜索引擎?
貌似是只搜索站内的内容(google本身就能吧?“站内搜索”功能)。

“以相关度排序”不错,不知道是个什么原理?

已經把各字標示出來,請按下:Highlight
此功能速度有点慢(开始我还以为出不来了呢,不知道能不能改善一些)。
关于高亮,我的浏览器就有这个功能,但只能一个颜色,不能分别标出。
另外,出来结果后,图象都是红色的“叉”,不知道是我浏览器的错误,还是其他什么原因。
如果是点击查看原文,则都是乱码(可能是XP2的乱码错误,也可能是别的,您可以再检查一下)。

[ 本贴由 mengqinghao 于 2006-2-27  17:29 最后编辑 ]
 楼主| 发表于 2006-3-4 13:21:07 | 显示全部楼层
本站的各語系顯示已經修復(Apache:/httpd.conf"AddDefaultCharset")

A.程式组群大小约100Kb。
B.有后台设定管理、索引(Index)功能。
C.索引(Index)100Mb档案约10 sec,可处理Htm/html/Xml/txt/php/js档案;附加程式可搜寻Pdf/Doc...等Binary档案。
D.可全检索和索引CJKV(亚洲语系:韩、日:S-jis/Euc/中:繁/简)、越)和西欧语系。
E.可作全文标示(Highlight)和档案内标示,标示型态和配色可以无限多。
F.本程式测试成熟后,将提供下载。

TO DO:
A.Utf-8版。
B.Pdf/Doc等档案的Html化的全文搜寻和标示。


(繁体中文以新闻媒体测试;可试输入如:台湾、中国、马英九、陈水扁等字词。)
Big5 DEMO:
http://66.49.234.160/cgi-bin/s1/homeseek.cgi?

(简体中文以语言文字资料测试;可试输入如:汉语、中文、语言、方言等字词。)
GB2312 DEMO:
http://66.49.234.160/cgi-bin/s/homeseek.cgi?

(日文以CGI资料测试;可试输入如:CGI等字词,Euc和S-Jis可互转。)
日文(S-jis/Euc) DEMO:
http://66.49.234.160/cgi-bin/s0/homeseek.cgi?


以繁体中文Demo为例

管理后台入口↓


管理区各项设定↓


全文索引(Index)过程↓


全文索引(Index)完成后的更新过程↓


使用者搜寻后看到的结果和第一层档案标示(Highlight)


使用者按下Highlight后,会看见关键字在档案中已被标示↓


档案中被全文标示的情形↓
发表于 2006-3-5 00:11:05 | 显示全部楼层
乱码问题已消除,但图象错误依旧,依然是红叉,显示不出来(一个影响美观的小问题)。
 楼主| 发表于 2006-3-5 02:23:24 | 显示全部楼层
出来结果后,图象都是红色的“叉”

請問是輸入哪個字呢?红色的“叉"是這樣嗎→X

如果看到的是像上面Images的X↑那是正常的;因為測試資料中沒將這些圖放進去。
瀏覽器(或類似Googlebar....等)的Highlight和繁簡轉換是用PC的ActivX元件作的,原理不同;但流程上還是先要找到要找的資料。
可參考:(都可作全文Highlight,但不支持亞洲語系)
(美國)
http://perlfect.com/freescripts/search/
(俄羅斯)
http://risearch.org/

可參考這篇文章:
http://yukin.blogbus.com/logs/2004/02/82387.html

中文全文檢索技術

現已有許多 free, open-source *英文* 全文檢索引擎,但中文還很少。

大多數 free, open-source 全文檢索引擎無法處理 BIG5 中文資料,因為「英文字」和「中文字」有頗大差異,除編碼上 8bit 和 double byte 外,「字」的組成方式也不同。

簡略說明 Perlfect Search
http://www.perlfect.com/freescripts/search/
的運作流程,例子如下:

* 輸入 "double" 當 keyword
* search.pl 查全文索引 DB (由 indexer.pl 所事先建立),此 DB 記載著"double" 這個字出現在那些檔案。
* 註:由此可知 indexer.pl 建立 full-text DB 的方式為
* Step 1: 讀入 file1
* Step 2: 將 file1 內文解析成一個個的「(英文)字」,將檔案path存進Hash (associate array),也就是 --$FileList{"double"}->AddFile("/usr/local/doc/file1");
* 處理完整篇 file1 內文後,讀入下一檔案 file2, goto Step 1,直到處理完所有待處理檔案。
* grep 由 full-text DB 所查得的檔案列表,查得關鍵字 "double" 所在行區。

由此可知,「字」是全文檢索的關鍵。若 fulltext-indexer 沒有 BIG5 中文字
觀念,將資料當英文處理,顯然會得到錯誤結果。

解決這問題的方法有兩個方向 --
1. 讓 BIG5 中文字 *變成* English words

2. 讓 fulltext-indexer 認得 BIG5 中文字

1. 是治標,2. 是治本。唯 2. 的技術複雜度較高,chw 採 1. 的方式來作Perlfect Search 的 BIG5 patch。

Big5
/([\xa1-\xf9](?:[\x40-\x7e]|[\xa1-\xfe]))/
Big5+
/([\x81-\xfe](?:[\x40-\x7e]|[\x80-\xfe]))/

水電工注:
簡體中文是:/([\x81-\xfe][\x40-\xfe])/"

舉例來說 --
「例」 的 BIG5 code 為 A8D2,也就是 0xa8, 0xd2將 0-9 map至 g-p,也就是,將原先的 16 進位編碼0-9, a-f 改成 g-p, a-f 全為 alphabetic, *英文* 字。

0123456789
ghijklmnop

所以「例」對應為 aodi,為避免和「真正的 "aodi" 這個英文字」衝到(若真有這個字的話),加上字首bb、字尾ff,成品是 "bbaodiff "。中文字「例」轉變成道地的英文字"bbaodiff ",就可交給 *英文* full-text indexer 處理了。

缺點是,由原先 2 bytes 變大為 9 bytes (含字尾空白)。

此外,「中文 keyword」和 English keyword 也有些不同,如 「關鍵」得對應成「關」(C3F6, "bbcjfmff") AND「鍵」(C1E4, "bbchekff") 交集,也就是先將 "bbcjfmff"的 file list 和 "bbchekff" file list 作 AND 得到的 smaller file list,再進一步 grep 「關鍵」。

此法可廣泛應用於各式 full-text indexer/engine/db,如 mysql 最近支援 English full-text index,也可由上述方法使其具有中文 BIG5 資料全文檢索能力。

至於 2. 治本方法,可參考 --
http://ourinet.com/oin.pl?op=rea ... urdir=D.969374374.A

[ 本贴由 Artvine 于 2006-3-5  02:34 最后编辑 ]
发表于 2006-3-5 23:58:57 | 显示全部楼层
嗯,对,没有保存图象文件,所以显示不出来。

我不使用繁体输入法,所以繁体部分不能帮测了。

简体部分,好象目前只能搜索本论坛。
其他好象没什么问题了。
 楼主| 发表于 2006-3-10 13:54:04 | 显示全部楼层
《史记》电子资源述评
[:LocalURL:]viewthread.php?fpage=1&tid=11937&sid=Nn0hd3Vs

目前計劃先用《史記》(繁/簡體)來作小型測試計算(1-10M),用同治年金陵局張文虎本。
一、經校勘原本,大陸某些繁體版是由簡體版轉換的,錯謬和缺字仍多(這麼轉來轉去,校勘越來越麻煩);決定以校勘後的繁體版轉簡體版。
二、再來擴及24(5)史(1-600M)測試。
三、根據測試,數理運算速度,C++是VB的1200倍;篩選字串,Perl是C++的6倍。Php不適合作大規模工作。
发表于 2006-3-10 15:09:40 | 显示全部楼层
晕,我就在用VB编程序。
因为学起来比较容易。而且在功能上,目前完全可以满足我的需要。

看来,将来要换平台呀。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|湘里妹子学术网 ( 粤ICP备2022147245号 )

GMT++8, 2024-4-25 19:01 , Processed in 0.103291 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表