java分詞工具
㈠ java word分詞器怎樣安裝在java中
word分詞是一個Java實現的分布式的中文分片語件,提供了多種基於詞典的分詞演算法,並利用ngram模型來消除歧義。
如果需要安裝word分詞器可以參考下面的步驟:
1、確保電腦上已經安裝了JDK軟體和Eclispe工具,沒有安裝的可以到對應的官網下載安裝:
JDK官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html
Eclipse官網:http://www.eclipse.org
2、下載word分詞器的相關jar包:
打開word分詞器的官方github主頁:https://github.com/ysc/word
導入成功之後就可以在自己的項目中使用word分詞器了。
㈡ java中文分片語件word怎麼使用
參考如下
1、快速體驗
運行項目根目錄下的腳本demo-word.bat可以快速體驗分詞效果
用法: command [text] [input] [output]
命令command的可選值為:demo、text、file
demo
text 楊尚川是APDPlat應用級產品開發平台的作者
file d:/text.txt d:/word.txt
exit
2、對文本進行分詞
移除停用詞:List<Word> words = WordSegmenter.seg("楊尚川是APDPlat應用級產品開發平台的作者");
保留停用詞:List<Word> words = WordSegmenter.segWithStopWords("楊尚川是APDPlat應用級產品開發平台的作者");
System.out.println(words);
輸出:
移除停用詞:[楊尚川, apdplat, 應用級, 產品, 開發平台, 作者]
保留停用詞:[楊尚川, 是, apdplat, 應用級, 產品, 開發平台, 的, 作者]
3、對文件進行分詞
String input = "d:/text.txt";
String output = "d:/word.txt";
移除停用詞:WordSegmenter.seg(new File(input), new File(output));
保留停用詞:WordSegmenter.segWithStopWords(new File(input), new File(output));
4、自定義配置文件
默認配置文件為類路徑下的word.conf,打包在word-x.x.jar中
自定義配置文件為類路徑下的word.local.conf,需要用戶自己提供
如果自定義配置和默認配置相同,自定義配置會覆蓋默認配置
配置文件編碼為UTF-8
5、自定義用戶詞庫
自定義用戶詞庫為一個或多個文件夾或文件,可以使用絕對路徑或相對路徑
用戶詞庫由多個詞典文件組成,文件編碼為UTF-8
詞典文件的格式為文本文件,一行代表一個詞
可以通過系統屬性或配置文件的方式來指定路徑,多個路徑之間用逗號分隔開
類路徑下的詞典文件,需要在相對路徑前加入前綴classpath:
指定方式有三種:
指定方式一,編程指定(高優先順序):
WordConfTools.set("dic.path", "classpath:dic.txt,d:/custom_dic");
DictionaryFactory.reload();//更改詞典路徑之後,重新載入詞典
指定方式二,Java虛擬機啟動參數(中優先順序):
java -Ddic.path=classpath:dic.txt,d:/custom_dic
指定方式三,配置文件指定(低優先順序):
使用類路徑下的文件word.local.conf來指定配置信息
dic.path=classpath:dic.txt,d:/custom_dic
如未指定,則默認使用類路徑下的dic.txt詞典文件
6、自定義停用詞詞庫
使用方式和自定義用戶詞庫類似,配置項為:
stopwords.path=classpath:stopwords.txt,d:/custom_stopwords_dic
7、自動檢測詞庫變化
可以自動檢測自定義用戶詞庫和自定義停用詞詞庫的變化
包含類路徑下的文件和文件夾、非類路徑下的絕對路徑和相對路徑
如:
classpath:dic.txt,classpath:custom_dic_dir,
d:/dic_more.txt,d:/DIC_DIR,D:/DIC2_DIR,my_dic_dir,my_dic_file.txt
classpath:stopwords.txt,classpath:custom_stopwords_dic_dir,
d:/stopwords_more.txt,d:/STOPWORDS_DIR,d:/STOPWORDS2_DIR,stopwords_dir,remove.txt
8、顯式指定分詞演算法
對文本進行分詞時,可顯式指定特定的分詞演算法,如:
WordSegmenter.seg("APDPlat應用級產品開發平台", SegmentationAlgorithm.BidirectionalMaximumMatching);
SegmentationAlgorithm的可選類型為:
正向最大匹配演算法:MaximumMatching
逆向最大匹配演算法:ReverseMaximumMatching
正向最小匹配演算法:MinimumMatching
逆向最小匹配演算法:ReverseMinimumMatching
雙向最大匹配演算法:BidirectionalMaximumMatching
雙向最小匹配演算法:BidirectionalMinimumMatching
雙向最大最小匹配演算法:
全切分演算法:FullSegmentation
最少分詞演算法:MinimalWordCount
最大Ngram分值演算法:MaxNgramScore
9、分詞效果評估
運行項目根目錄下的腳本evaluation.bat可以對分詞效果進行評估
評估採用的測試文本有253 3709行,共2837 4490個字元
評估結果位於target/evaluation目錄下:
corpus-text.txt為分好詞的人工標注文本,詞之間以空格分隔
test-text.txt為測試文本,是把corpus-text.txt以標點符號分隔為多行的結果
standard-text.txt為測試文本對應的人工標注文本,作為分詞是否正確的標准
result-text-***.txt,***為各種分詞演算法名稱,這是word分詞結果
perfect-result-***.txt,***為各種分詞演算法名稱,這是分詞結果和人工標注標准完全一致的文本
wrong-result-***.txt,***為各種分詞演算法名稱,這是分詞結果和人工標注標准不一致的文本
㈢ 你常用的Java工具庫都有哪些
JavaSDK肯定是使用最廣的庫,所以本文的名單焦點是流行的第三方庫。該列表可能並不完善,所以如果你覺得有什麼應該出現在列表中的,請留下您的評論。非常感謝!
1、核心庫
Apache Commons Lang:來自Apache的核心庫,為java.lang API補充了許多常用的工具類,如字元串操作、對象的創建等。
Google Guava:來自谷歌的核心庫,包括集合(Collection)、緩存(Caching)、支持原語(Primitives)等。(示例)
Jsoup:一個簡化了的 HTML操作的庫。(示例)
STaX:一組可以高效處理XML的API。 (示例)
Spring:Java平台上眾所周知的開源框架和依賴注入容器。(示例)
Struts2:來自Apache的流行Web框架。 (示例)
GoogleWebToolkit:Google提供的開發工具庫,主要用於構建和優化復雜的Web程序用。 (示例)
Strips:使用最新Java技術構建的Web程序框架,推薦使用。
Tapestry:面向組件的框架,用於使用Java創建動態、健壯、擴展性高的Web應用程序。
JFreeChart:用於創建如條形圖、折線圖、餅圖等圖表。
JFreeReport:創建於輸出PDF格式的報表。
JGraphT:創建圖像,其中只包含由線段連接的點集。
Swing:SDK提供的GUI庫。(示例)
SWT:eclipse提供的GUI庫。
EclipseRCP。(示例)
OpenNLP:來自Apache的自然語言處理庫。 (示例)
StanfordParser:斯坦福大學提供的自然語言處理庫。(示例)
EclipseJDT:由IBM提供的靜態分析庫,可以操作Java源代碼。(示例)
WALA:可以處理jar包文件(即位元組碼)的工具庫。(示例)
Jackson: 用於處理JSON數據格式的多用途的Java庫。Jackson 旨在快速、准確、輕量、對開人員友好之間找到最好的平衡點。
XStream:一個簡單用於對象和XML互相轉換的庫。
GoogleGson:一個專門用於Java對象和Json對象相互轉換的工具庫。(示例)
JSON-lib:用於beans、maps、collections、javaarrays、XML和JSON之間相互轉換操作的工具庫。
ApacheCommonsMath:提供數學計算和數值統計需函數的工具庫。
ApacheLog4j:風行一時的日誌記錄操作庫。(示例)
Logback:當前流行的log4j項目的繼任者。
SLF4J(TheSimpleLoggingFacadeforJava): 各種日誌框架的一個簡單的外觀或抽象(如java.util.logging 、logback、log4j等),允許用戶在部署時加入需要的日誌框架。
ApachePOI:利用其提供的APIs,可以使用純Java代碼操作各種基於微軟OLE2合成文檔格式的文檔。
Docx4j:一個用於創建、操作微軟公開的XML文件的庫(支持Worddocx、 Powerpointpptx和Excelxlsx)。
Joda-Time:如有質量問題包退包換的Java日期和時間類。
Hibernate、EclipseLink、JPA
JDO
jOOQ
SpringJDBC、SpringData
ApacheDbUtils
Lambok: 旨在減少代碼編寫的Java開發庫。
2、HTML、XML Parser
3、Web框架
請猛擊這里查看以上面框架之間的比較。
4、圖表、報表、圖像
5、窗口
SWT與Swing的比較。
6.、GUI框架
7、自然語言處理
如果你是一名NLP專家,請猛擊這里查看更多工具庫介紹。
8、靜態分析
9、JSON
10、數學
11、日誌
12、Office
13、日期和時間
14、資料庫
15、開發工具