您好,登錄后才能下訂單哦!
這篇文章主要介紹hanlp如何安裝和使用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
下載HanLP-1.3.4.zip
下載hanlp-1.3.4-release
下載hanlp.properties
在https://github.com/hankcs/HanLP/releases中下載data然后覆蓋HanLP-1.3.4.zip解壓后的data
#本配置文件中的路徑的根目錄,根目錄+其他路徑=絕對路徑
#Windows用戶請注意,路徑分隔符統一使用/
root=E:/hannlp/HanLP-1.3.4/HanLP-1.3.4/
#核心詞典路徑
CoreDictionaryPath=data/dictionary/CoreNatureDictionary.txt
#2元語法詞典路徑
BiGramDictionaryPath=data/dictionary/CoreNatureDictionary.ngram.txt
#停用詞詞典路徑
CoreStopWordDictionaryPath=data/dictionary/stopwords.txt
#同義詞詞典路徑
CoreSynonymDictionaryDictionaryPath=data/dictionary/synonym/CoreSynonym.txt
#人名詞典路徑
PersonDictionaryPath=data/dictionary/person/nr.txt
#人名詞典轉移矩陣路徑
PersonDictionaryTrPath=data/dictionary/person/nr.tr.txt
#繁簡詞典路徑
TraditionalChineseDictionaryPath=data/dictionary/tc/TraditionalChinese.txt
#自定義詞典路徑,用;隔開多個自定義詞典,空格開頭表示在同一個目錄,使用“文件名 詞性”形式則表示這個詞典的詞性默認是該詞性。優先級遞減。
#另外data/dictionary/custom/CustomDictionary.txt是個高質量的詞庫,請不要刪除
CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 現代漢語補充詞庫.txt; 全國地名大全.txt ns; 人名詞典.txt; 機構名詞典.txt; 上海地名.txt ns;data/dictionary/person/nrf.txt nrf
#CRF分詞模型路徑
CRFSegmentModelPath=data/model/segment/CRFSegmentModel.txt
#HMM分詞模型
HMMSegmentModelPath=data/model/segment/HMMSegmentModel.bin
#分詞結果是否展示詞性
ShowTermNature=true
項目目錄
測試代碼:
package hanlp;
import java.util.List;
import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.suggest.Suggester;
import com.hankcs.hanlp.tokenizer.NLPTokenizer;
public class Test {
public static void main(String[] args) {
System.out.println("首次編譯運行時,HanLP會自動構建詞典緩存,請稍候……\n");
// 第一次運行會有文件找不到的錯誤但不影響運行,緩存完成后就不會再有了
System.out.println("標準分詞:");
System.out.println(HanLP.segment("你好,歡迎使用HanLP!"));
System.out.println("\n");
List<Term> termList = NLPTokenizer.segment("患者于1月前無明顯誘因偶然發現右側腘窩囊腫,囊腫質韌,無明顯活動度,壓痛,無紅腫,無異常分泌物");
System.out.println("NLP分詞:");
System.out.println(termList);
System.out.println("\n");
System.out.println("智能推薦:");
getSegement();
System.out.println("\n");
System.out.println("關鍵字提取:");
getMainIdea();
System.out.println("\n");
System.out.println("自動摘要:");
getZhaiYao();
System.out.println("\n");
System.out.println("短語提取:");
getDuanYu();
System.out.println("\n");
}
/**
* 智能推薦部分
*/
public static void getSegement() {
Suggester suggester = new Suggester();
String[] titleArray = ("威廉王子發表演說 呼吁保護野生動物\n" + "《時代》年度人物最終入圍名單出爐 普京馬云入選\n" + "“黑格比”橫掃菲:菲吸取“海燕”經驗及早疏散\n"
+ "日本保密法將正式生效 日媒指其損害國民知情權\n" + "英報告說空氣污染帶來“公共健康危機”").split("\\n");
for (String title : titleArray) {
suggester.addSentence(title);
}
System.out.println(suggester.suggest("發言", 1)); // 語義
System.out.println(suggester.suggest("危機公共", 1)); // 字符
System.out.println(suggester.suggest("mayun", 1)); // 拼音
}
/**
* 關鍵字提取
*/
public static void getMainIdea() {
String content = "程序員(英文Programmer)是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。軟件從業人員分為初級程序員、高級程序員、系統分析員和項目經理四大類。";
List<String> keywordList = HanLP.extractKeyword(content, 5);
System.out.println(keywordList);
}
/**
* 自動摘要
*/
public static void getZhaiYao() {
String document = "算法可大致分為基本算法、數據結構的算法、數論算法、計算幾何的算法、圖的算法、動態規劃以及數值分析、加密算法、排序算法、檢索算法、隨機化算法、并行算法、厄米變形模型、隨機森林算法。\n"
+ "算法可以寬泛的分為三類,\n" + "一,有限的確定性算法,這類算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類算法得出的結果常取決于輸入值。\n"
+ "二,有限的非確定算法,這類算法在有限的時間內終止。然而,對于一個(或一些)給定的數值,算法的結果并不是唯一的或確定的。\n"
+ "三,無限的算法,是那些由于沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的算法。通常,無限算法的產生是由于未能確定的定義終止條件。";
List<String> sentenceList = HanLP.extractSummary(document, 3);
System.out.println(sentenceList);
}
/**
* 短語提取
*/
public static void getDuanYu() {
String text = "算法工程師\n"
+ "算法(Algorithm)是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合于某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間復雜度與時間復雜度來衡量。算法工程師就是利用算法處理事物的人。\n"
+ "\n" + "1職位簡介\n" + "算法工程師是一個非常高端的職位;\n" + "專業要求:計算機、電子、通信、數學等相關專業;\n"
+ "學歷要求:本科及其以上的學歷,大多數是碩士學歷及其以上;\n" + "語言要求:英語要求是熟練,基本上能閱讀國外專業書刊;\n"
+ "必須掌握計算機相關知識,熟練使用仿真工具MATLAB等,必須會一門編程語言。\n" + "\n" + "2研究方向\n"
+ "視頻算法工程師、圖像處理算法工程師、音頻算法工程師 通信基帶算法工程師\n" + "\n" + "3目前國內外狀況\n"
+ "目前國內從事算法研究的工程師不少,但是高級算法工程師卻很少,是一個非常緊缺的專業工程師。算法工程師根據研究領域來分主要有音頻/視頻算法處理、圖像技術方面的二維信息算法處理和通信物理層、雷達信號處理、生物醫學信號處理等領域的一維信息算法處理。\n"
+ "在計算機音視頻和圖形圖像技術等二維信息算法處理方面目前比較先進的視頻處理算法:機器視覺成為此類算法研究的核心;另外還有2D轉3D算法(2D-to-3D conversion),去隔行算法(de-interlacing),運動估計運動補償算法(Motion estimation/Motion Compensation),去噪算法(Noise Reduction),縮放算法(scaling),銳化處理算法(Sharpness),超分辨率算法(Super Resolution),手勢識別(gesture recognition),人臉識別(face recognition)。\n"
+ "在通信物理層等一維信息領域目前常用的算法:無線領域的RRM、RTT,傳送領域的調制解調、信道均衡、信號檢測、網絡優化、信號分解等。\n" + "另外數據挖掘、互聯網搜索算法也成為當今的熱門方向。\n"
+ "算法工程師逐漸往人工智能方向發展。";
List<String> phraseList = HanLP.extractPhrase(text, 10);
System.out.println(phraseList);
}
}
包括中文分詞,句法分析和命名實體識別。
以上是“hanlp如何安裝和使用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。