1.首先在pom文件中加載maven依賴
1 <dependency> 2 <groupId>com.huaban</groupId> 3 <artifactId>jieba-analysis</artifactId> 4 <version>1.0.2</version> 5 </dependency>
2.創建自定義詞典的文件結構以及文件名稱: resources/dicts/jieba.dict
自定義詞典的格式:一個詞占一行;每一行分三部分,一部分為詞語,另一部分為詞頻,
最后為詞性(可省略),用空格隔開
例如:
1 定王台 3 ns 2 青年路 3 ns 3 狀元路 3 ns 4 股份有限公司 20 nt 5 國家金庫 4 nt 6 曾都 3 ns 7 襄陽市 3 ns 8 后海 3 ns 9 海月 3 nt 10 交通路 3 ns
其中詞頻的作用是提高成詞的概率,頻率越高,成詞的概率就越大
更細的解釋可以參考:https://github.com/fxsjy/jieba/issues/14
詞性類別:
Ag |
形語素 |
形容詞性語素。形容詞代碼為 a,語素代碼g前面置以A。 |
a |
形容詞 |
取英語形容詞 adjective的第1個字母。 |
ad |
副形詞 |
直接作狀語的形容詞。形容詞代碼 a和副詞代碼d並在一起。 |
an |
名形詞 |
具有名詞功能的形容詞。形容詞代碼 a和名詞代碼n並在一起。 |
b |
區別詞 |
取漢字“別”的聲母。 |
c |
連詞 |
取英語連詞 conjunction的第1個字母。 |
dg
|
副語素 |
副詞性語素。副詞代碼為 d,語素代碼g前面置以D。 |
d |
副詞 |
取 adverb的第2個字母,因其第1個字母已用於形容詞。 |
e |
嘆詞 |
取英語嘆詞 exclamation的第1個字母。 |
f |
方位詞 |
取漢字“方” |
g |
語素 |
絕大多數語素都能作為合成詞的“詞根”,取漢字“根”的聲母。 |
h |
前接成分 |
取英語 head的第1個字母。 |
i |
成語 |
取英語成語 idiom的第1個字母。 |
j |
簡稱略語 |
取漢字“簡”的聲母。 |
k |
后接成分 |
|
l |
習用語 |
習用語尚未成為成語,有點“臨時性”,取“臨”的聲母。 |
m |
數詞 |
取英語 numeral的第3個字母,n,u已有他用。 |
Ng |
名語素 |
名詞性語素。名詞代碼為 n,語素代碼g前面置以N。 |
n |
名詞 |
取英語名詞 noun的第1個字母。 |
nr |
人名 |
名詞代碼 n和“人(ren)”的聲母並在一起。 |
ns |
地名 |
名詞代碼 n和處所詞代碼s並在一起。 |
nt |
機構團體 |
“團”的聲母為 t,名詞代碼n和t並在一起。 |
nz |
其他專名 |
“專”的聲母的第 1個字母為z,名詞代碼n和z並在一起。 |
o |
擬聲詞 |
取英語擬聲詞 onomatopoeia的第1個字母。 |
p |
介詞 |
取英語介詞 prepositional的第1個字母。 |
q |
量詞 |
取英語 quantity的第1個字母。 |
r |
代詞 |
取英語代詞 pronoun的第2個字母,因p已用於介詞。 |
s |
處所詞 |
取英語 space的第1個字母。 |
tg |
時語素 |
時間詞性語素。時間詞代碼為 t,在語素的代碼g前面置以T。 |
t |
時間詞 |
取英語 time的第1個字母。 |
u |
助詞 |
取英語助詞 auxiliary |
vg |
動語素 |
動詞性語素。動詞代碼為 v。在語素的代碼g前面置以V。 |
v |
動詞 |
取英語動詞 verb的第一個字母。 |
vd |
副動詞 |
直接作狀語的動詞。動詞和副詞的代碼並在一起。 |
vn |
名動詞 |
指具有名詞功能的動詞。動詞和名詞的代碼並在一起。 |
w |
標點符號 |
|
x |
非語素字 |
非語素字只是一個符號,字母 x通常用於代表未知數、符號。 |
y |
語氣詞 |
取漢字“語”的聲母。 |
z |
狀態詞 |
取漢字“狀”的聲母的前一個字母。 |
un |
未知詞 |
不可識別詞及用戶自定義詞組。取英文Unkonwn首兩個字母。(非北大標准,CSW分詞中定義) |
3.調用
1 public String testDemo( String sentence) { 2 JiebaSegmenter segmenter = new JiebaSegmenter(); 3 String resultStr = segmenter.process(sentence, JiebaSegmenter.SegMode.INDEX).toString(); 4 5 System.out.println("-------------------切到的詞:"+resultStr); 6 7 // 詞典路徑為Resource/dicts/jieba.dict 8 Path path = Paths.get(new File( getClass().getClassLoader().getResource("dicts/jieba.dict").getPath() ).getAbsolutePath() ) ; 9 //加載自定義的詞典進詞庫 10 WordDictionary.getInstance().loadUserDict( path ) ; 11 //重新分詞 12 segmenter = new JiebaSegmenter(); 13 14 System.out.println(segmenter.process( sentence , JiebaSegmenter.SegMode.INDEX).toString()); 15 16 return resultStr; 17 }
參考文檔地址:https://blog.csdn.net/yexiaomodemo/article/details/86571177
https://blog.csdn.net/suibianshen2012/article/details/53487157