欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Coreseek開(kāi)源中文檢索引擎 - LibMMSeg - 論壇搜索、信息檢索、文獻檢索、...

LibMMSeg

LibMMSeg 簡(jiǎn)介

LibMMSeg 是Coreseek.com為 Sphinx 全文搜索引擎設計的中文分詞軟件包,其在GPL協(xié)議下發(fā)行的中文分詞法,采用Chih-Hao Tsai的MMSEG算法。

MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm

Published: 1996-04-29
Updated: 1998-03-06
Document updated: 2000-03-12
License: Free for noncommercial use
Copyright   1996-2006 Chih-Hao Tsai (Email: hao520 at yahoo.com )

您可以在Chih-Hao Tsai's Technology Page找到算法的原文。

LibMMSeg 采用C++開(kāi)發(fā),同時(shí)支持Linux平臺和Windows平臺,切分速度大約在300K/s(PM-1.2G),截至版本(0.7.1)LibMMSeg沒(méi)有為速度仔細優(yōu)化過(guò),進(jìn)一步的提升切分速度應仍有空間。

下載

下載 Coreseek-3.2.13+MMSeg 3.2.13,mmseg-3.2.13.tar.gz

修訂記錄

3.2.13
- 2010.07.01 隨coreseek3.2.13提供
- 修正chunks問(wèn)題 - 完善多操作系統支持

3.2.12
- 2010.05.03 隨coreseek3.2提供
- 增加了英文和數字的處理部分 - 優(yōu)化了相關(guān)處理部分

0.7.3
- 2008.05.27 修正 Makefile 無(wú)法安裝csr_typedefs.h的問(wèn)題
- 2008.05.27 修正 x64系統上編譯無(wú)法作為動(dòng)態(tài)庫的一部分編譯的問(wèn)題

0.7.2
- 2008.05.19 修正 指定的目錄中無(wú)詞典不提示錯誤的問(wèn)題
- 2008.05.19 新增 Ruby 的調用API

0.7.1
- 2008.04.23 修正了在類(lèi)似 “english 中文 english" 的句子,切分不正確的問(wèn)題

0.7
- 第一次發(fā)行

安裝

Window平臺

打開(kāi)源碼包中src\win32 子目錄下的對應的工程文件,目前LibMMSeg內置了VS2003和VS2005的工程文件。

Linux平臺

在源碼包根目錄下執行:

./configure && make && make install

使用

詞典的構造

mmseg -u unigram.txt

該命令執行后,將會(huì )在unigram.txt所在目錄中產(chǎn)生一個(gè)名為unigram.txt.uni的文件,將該文件改名為uni.lib,完成詞典的構造。需要注意的是,unigram.txt需要預先準備,并且編碼格式必須為UTF-8編碼。

詞典文件格式:

....
河 187
x:187
造假者 1
x:1
臺北隊 1
x:1
湖邊 1
......

其中,每條記錄分兩行。其中,第一行為詞項,其格式為:[詞條]\t[詞頻率]。需要注意的是,對于單個(gè)字后面跟這個(gè)字作單字成詞的頻率,這個(gè)頻率需要在大量的預先切分好的語(yǔ)料庫中進(jìn)行統計,用戶(hù)增加或刪除詞時(shí),一般不需要修改這個(gè)數值;對于非單字詞,詞頻率處必須為1。第二行為占位項,是由于LibMMSeg庫的代碼是從Coreseek其他的分詞算法庫(N-gram模型)中改造而來(lái)的,在原來(lái)的應用中,第二行為該詞在各種詞性下的分布頻率。LibMMSeg的用戶(hù)只需要簡(jiǎn)單的在第二行處填"x:1"即可。

用戶(hù)可以通過(guò)修改詞典文件增加自己的自定義詞,以提高分詞法在某一具體領(lǐng)域的切分精度,系統默認的詞典文件在源代碼目錄的data/unigram.txt中。

分詞

mmseg -d <dict_dir> tobe_segment.txt

其中,命令使用‘-d’開(kāi)關(guān)指定詞庫文件所在的位置,參數dict_dir為詞庫文件(uni.lib )所在的目錄;tobe_segment.txt 為待切分的文本文件,必須為UTF-8編碼。如果一切正確,mmseg會(huì )將切分結果以及所花費的時(shí)間顯示到標準輸出上。

對特殊短語(yǔ)的支持

由于LibMMSeg是為Sphinx全文搜索引擎設計的,因此其內置了部分搜索引擎切分算法的特性,主要表現在對特殊短語(yǔ)的支持上。

在搜索引擎中,需要處理C++時(shí),如果分詞器中沒(méi)有詞組C++,則將被切分為C/x +/x +/x,在進(jìn)一步的檢索中,可能每個(gè)詞會(huì )由于出現的過(guò)于頻繁而被過(guò)濾掉,導致搜索的結果與C++相關(guān)度不高不說(shuō),也嚴重影響的全文搜索的速度。在LibMMSeg中,內置對特殊短語(yǔ)的支持。

其輸入文件格式如下

// test commit
.net => dotnet
c# => csharp
c++ => cplusplus

其中左側是待支持的特殊短語(yǔ),右側是左側的特殊短語(yǔ)需要被轉換為的短語(yǔ)。這一轉換在分詞前進(jìn)行。

可以在行的開(kāi)頭加入'//'作為注釋符號,發(fā)現符號'//'后,整行將被忽略。

特殊短語(yǔ)詞庫構造命令:

mmseg -b exceptions.txt

其中, 開(kāi)關(guān)'-b'指示mmseg是要構造特殊短語(yǔ)詞庫;exceptions.txt是用戶(hù)編輯的特殊短語(yǔ)轉換規則。

該命令執行后,將在當前目錄下產(chǎn)生一個(gè)名為"synonyms.dat"的文件,將該文件放在"uni.lib"同一目錄下,分詞系統將自動(dòng)啟動(dòng)特殊短語(yǔ)轉換功能。

注意:

1、在啟用了該功能后,如果分詞系統發(fā)現了一個(gè)特殊短語(yǔ),將直接輸出其在右側對應的替換的值;

2、右側被替換的值,請保證不會(huì )被分詞器進(jìn)行切分。(eg. C++ => C# 這個(gè)轉換的意義不大,并且可能導致C++這個(gè)短語(yǔ)永遠無(wú)法被檢索到?。?/p>

 

附錄:

MMSeg算法說(shuō)明

首先來(lái)理解一下chunk,它是MMSeg分詞算法中一個(gè)關(guān)鍵的概念。Chunk中包含依據上下文分出的一組詞和相關(guān)的屬性,包括長(cháng)度(Length)、平均長(cháng)度(Average Length)、標準差的平方(Variance)和自由語(yǔ)素度(Degree Of Morphemic Freedom)。下面列出了這4個(gè)屬性:

屬性 含義
長(cháng)度(Length) chuck中各個(gè)詞的長(cháng)度之和
平均長(cháng)度(Average Length) 長(cháng)度(Length)/詞數
標準差的平方(Variance) 同數學(xué)中的定義
自由語(yǔ)素度(Degree Of Morphemic Freedom) 各單字詞詞頻的對數之和
 

 


Chunk中的4個(gè)屬性只有在需要該屬性的值時(shí)才進(jìn)行計算,而且只計算一次。

其次來(lái)理解一下規則(Rule),它是MMSeg分詞算法中的又一個(gè)關(guān)鍵的概念。實(shí)際上我們可以將規則理解為一個(gè)過(guò)濾器(Filter),過(guò)濾掉不符合要求的chunk。MMSeg分詞算法中涉及了4個(gè)規則:

  • 規則1:取最大匹配的chunk (Rule 1: Maximum matching)
  • 規則2:取平均詞長(cháng)最大的chunk (Rule 2: Largest average word length)
  • 規則3:取詞長(cháng)標準差最小的chunk (Rule 3: Smallest variance of word lengths)
  • 規則4:取單字詞自由語(yǔ)素度之和最大的chunk (Rule 4: Largest sum of degree of morphemic freedom of one-character words)

這4個(gè)規則符合漢語(yǔ)成詞的基本習慣。

再來(lái)理解一下匹配方式復雜最大匹配(Complex maximum matching):

復雜最大匹配先使用規則1來(lái)過(guò)濾chunks,如果過(guò)濾后的結果多于或等于2,則使用規則2繼續過(guò)濾,否則終止過(guò)濾過(guò)程。如果使用規則2得到的過(guò)濾結果多于或等于2,則使用規則3繼續過(guò)濾,否則終止過(guò)濾過(guò)程。如果使用規則3得到的過(guò)濾結果多于或等于2,則使用規則4繼續過(guò)濾,否則終止過(guò)濾過(guò)程。如果使用規則 4得到的過(guò)濾結果多于或等于2,則拋出一個(gè)表示歧義的異常,否則終止過(guò)濾過(guò)程。

最后通過(guò)一個(gè)例句--“研究生命起源來(lái)簡(jiǎn)述”一下復雜最大匹配的分詞過(guò)程。MMSeg分詞算法會(huì )得到7個(gè)chunk,分別為:

編號 chunk 長(cháng)度
0 研_究_生 3
1 研_究_生命 4
2 研究_生_命 4
3 研究_生命_起 5
4 研究_生命_起源 6
5 研究生_命_起 5
6 研究生_命_起源 6

使用規則1過(guò)濾后得到2個(gè)chunk,如下:

編號 chunk 長(cháng)度
4 研究_生命_起源 6
6 研究生_命_起源 6

計算平均長(cháng)度后為:

編號 chunk 長(cháng)度 平均長(cháng)度
4 研究_生命_起源 6 2
6 研究生_命_起源 6 2

使用規則2過(guò)濾后得到2個(gè)chunk,如下:

編號 chunk 長(cháng)度 平均長(cháng)度
4 研究_生命_起源 6 2
6 研究生_命_起源 6 2

計算標準差的平方后為:

編號 chunk 長(cháng)度 平均長(cháng)度 標準差的平方
4 研究_生命_起源 6 2 0
6 研究生_命_起源 6 2 4/9

使用規則3過(guò)濾后得到1個(gè)chunk,如下:

編號 chunk 長(cháng)度 平均長(cháng)度 標準差的平方
4 研究_生命_起源 6 2 0

匹配過(guò)程終止。最終取“研究”成詞,以相同的方法繼續處理“生命起源”。

分詞效果:

研究_生命_起源_
研究生_教育_

 

 

詞匯長(cháng)度:
默認為5個(gè)UTF-8漢字,如果需要修改,可以如下操作:1. 打開(kāi):mmseg源代碼/css/segmenter.cpp2. 修改:#define MAX_TOKEN_LENGTH 15 //3*53. 重新編譯mmseg和coreseek
coreseek 中文分詞核心配置:

請參考:中文分詞核心配置
mmseg.ini配置:(請將其放置到詞典文件uni.lib所在的目錄,并在文件結尾空兩行)

[mmseg]merge_number_and_ascii=0number_and_ascii_joint=compress_space=1seperate_number_ascii=0  
配置說(shuō)明:【因為Sphinx-0.9.9發(fā)生變化,導致mmseg.ini的字母和數字切分規則部分無(wú)法正常應用,故暫停使用;下一版本將徹底解決該問(wèn)題】merge_number_and_ascii : ;合并英文和數字 abc123/x;如果0,則abc123切分為abc、123;如果1,則abc123為一個(gè)整體;【暫停使用】number_and_ascii_joint : 定義可以連接英文和數字的字符;該字符將把英文和數字作為一個(gè)整體處理;如果設置為-,則abc-123將被切分為abc123;【繼續有效】compress_space : 預留暫不支持seperate_number_ascii : 將數字打散;如果0,則123為一個(gè)整體;如果1,則123切分為1、2、3;【暫停使用】
mmseg 同義詞/復合分詞處理:

mmseg 3.2.13版本開(kāi)始,提供了類(lèi)似復合分詞的處理方式,供coreseek進(jìn)行調用。其基本使用狀況為:詞庫包含:    南京西路、南京、西路索引時(shí):    文本中的“南京西路”會(huì )被同時(shí)索引為以上三者查詢(xún)時(shí):    輸入南京西路,可以直接匹配南京西路,而不匹配南京或者西路;    輸入南京或者西路,也可以搜索到南京西路用法:1. 處理unigram.txt生成同義詞庫文件mmseg-3.2.13源代碼/script/build_thesaurus.py unigram.txt > thesaurus.txt2. 生成同義詞詞典mmseg -t thesaurus.txt3. 將thesaurus.lib放到uni.lib同一目錄4. coreseek索引時(shí),會(huì )自動(dòng)進(jìn)行復合分詞處理;調用搜索時(shí),輸入查詢(xún)字符串則不進(jìn)行復合分詞處理,以確保查詢(xún)準確度。如果使用默認的詞庫,沒(méi)有做過(guò)自定義,則可以直接下載thesaurus.lib,放到uni.lib所在目錄!
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MMSEG 中文分詞算法
淺談MMSEG分詞算法
coreseek 安裝及錯誤解決方案
CoreSeek Mysql 安裝與測試 For Mac OS X
coreseek搭建教程
Sphinx+MySQL全文檢索架構和安裝過(guò)程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久