1、ICTCLAS – 全球最受歡迎的漢語分詞系統(tǒng)
中國(guó)科學(xué)院計(jì)算技術(shù)研究所在多年研究工作積累的基礎(chǔ)上户魏,研制出了漢語詞法分析系統(tǒng)ICTCLAS (Institute of Computing Technology, Chinese Lexical Analysis System)豆混。
主要功能包括中文分詞;詞性標(biāo)注;命名實(shí)體識(shí)別蒿叠;用戶詞典功能;微博分詞蚣常;新詞發(fā)現(xiàn)與關(guān)鍵詞提取功能市咽;支持GBK編碼、UTF8編碼抵蚊、BIG5編碼施绎。
系統(tǒng)平臺(tái):Windows
開發(fā)語言:C/C++溯革、Java、C#
使用方式:dll調(diào)用
開源網(wǎng)址:http://ictclas.nlpir.org/(自然語言處理與信息檢索共享平臺(tái))
在線演示:http://ictclas.nlpir.org/nlpir/
分析示例
分析文本
分詞標(biāo)注
實(shí)體抽取1
實(shí)體抽取2
詞頻統(tǒng)計(jì)
情感分析
關(guān)鍵詞提取
2谷醉、SCWS – 簡(jiǎn)易中文分詞系統(tǒng)
SCWS:Simple Chinese Word Segmentation (簡(jiǎn)易中文分詞系統(tǒng))致稀。
采用自行采集的詞頻詞典,并輔以一定程度上的專有名稱孤紧、人名豺裆、地名、數(shù)字年代等規(guī)則集号显,經(jīng)小范圍測(cè)試準(zhǔn)確率在 90% ~ 95% 之間臭猜,基本滿足一些中小型搜索引擎、關(guān)鍵字提取等場(chǎng)合運(yùn)用押蚤。
SCWS 采用純 C 代碼開發(fā)蔑歌,以 Unix-Like OS 為主要平臺(tái)環(huán)境,提供共享函數(shù)庫(kù)揽碘,方便植入各種現(xiàn)有軟件系統(tǒng)次屠。此外它支持 GBK,UTF-8雳刺,BIG5 等漢字編碼劫灶,切詞效率高。
系統(tǒng)平臺(tái):Windows/Unix
開發(fā)語言:C
使用方式:PHP擴(kuò)展(易與現(xiàn)有的基于PHP架構(gòu)的Web系統(tǒng)繼續(xù)集成)
開源網(wǎng)址:http://www.ftphp.com/scws/
在線演示:http://www.xunsearch.com/scws/demo.php
分析示例
分詞結(jié)果
3掖桦、IKAnalyzer 開源的輕量級(jí)中文分詞工具包
IKAnalyzer 是一個(gè)開源的本昏,基于java語言開發(fā)的輕量級(jí)的中文分詞工具包。
支持用戶詞典擴(kuò)展定義枪汪,采用歧義分析算法優(yōu)化查詢關(guān)鍵字的搜索排列組合涌穆;采用多子處理器分析模式,優(yōu)化的詞典存儲(chǔ)雀久,更小的內(nèi)存占用宿稀。
系統(tǒng)平臺(tái): 跨平臺(tái)
開發(fā)語言: Java
分詞示例
package org.wltea.analyzer.sample;
import java.io.IOException;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
import org.wltea.analyzer.lucene.IKAnalyzer;
public class IKAnalzyerDemo {
public static void main(String[] args){
//構(gòu)建IK分詞器,使用smart分詞模式
Analyzer analyzer = new IKAnalyzer(true);
//獲取Lucene的TokenStream對(duì)象
TokenStream ts = null;
try {
ts = analyzer.tokenStream("myfield", new StringReader("這是一個(gè)中文分詞的例子赖捌,你可以直接運(yùn)行它祝沸!IKAnalyer can analysis english text too"));
//獲取詞元位置屬性
OffsetAttribute offset = ts.addAttribute(OffsetAttribute.class);
//獲取詞元文本屬性
CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
//獲取詞元文本屬性
TypeAttribute type = ts.addAttribute(TypeAttribute.class);
//重置TokenStream(重置StringReader)
ts.reset();
//迭代獲取分詞結(jié)果
while (ts.incrementToken()) {
System.out.println(offset.startOffset() + " - " + offset.endOffset() + " : " + term.toString() + " | " + type.type());
}
//關(guān)閉TokenStream(關(guān)閉StringReader)
ts.end(); // Perform end-of-stream operations, e.g. set the final offset.
} catch (IOException e) {
e.printStackTrace();
} finally {
//釋放TokenStream的所有資源
if(ts != null){
try {
ts.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}