久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

HanLP自然語言處理包如何安裝與使用

182次閱讀
沒有評論

共計 3621 個字符,預計需要花費 10 分鐘才能閱讀完成。

這篇文章主要介紹了 HanLP 自然語言處理包如何安裝與使用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

       HanLP 是由一系列模型與算法組成的 Java 工具包,目標是促進自然語言處理在生產環境中的應用。HanLP 具備功能完善、性能高效、架構清晰、語料時新、可自定義的特點。

  HanLP 能提供以下功能:關鍵詞提取、短語提取、繁體轉簡體、簡體轉繁體、分詞、詞性標注、拼音轉換、自動摘要、命名實體識別(地名、機構名等)、文本推薦等功能,詳細請參見以下鏈接:http://www.hankcs.com/nlp/hanlp.html 

  HanLP 下載地址:
https://github.com/hankcs/HanLP/releases,HanLP 項目主頁:

https://github.com/hankcs/HanLP

  1、HanLP 安裝

  hanlp 是由 jar 包、properties 文件和 data 數據模型組成,因此,在安裝時,這三種文件都應該有。可以通過建立 java 工程即可運行。

  hanlp.properties 文件中描述了不同詞典的相對路徑以及 root 根目錄,因此,可以在此文件中修改其路徑。

  hanlp-1.3.4.jar 包中包含了各種算法及提取方法的 api,大部分方法都是靜態的,可以通過 HanLP 直接進行調用,因此,使用非常方便。

  data 文件夾中包含了 dictionary 和 model 文件夾,dictionary 中主要是各種類型的詞典,model 主要是分析模型,hanlp api 中的算法需要使用 model 中的數據模型。

  2、HanLP 的使用

  普通 java 工程目錄如下所示:

 

  3、HanLP 的具體使用

  例如:對 excel 中的聊天記錄字段進行熱點詞的提取,計算并排序,功能如下所示

  package com.run.hanlp.demo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.log4j.Logger;

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.suggest.Suggester;
import com.hankcs.hanlp.summary.TextRankKeyword;
import com.hankcs.hanlp.tokenizer.NLPTokenizer;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
import com.run.util.ExcelUtil;

public class HanlpTest {

   public static final Logger log = Logger.getLogger(HanlpTest.class);

   public static void main(String[] args) {
     log.info(關鍵詞提取:
     HanlpTest.getWordAndFrequency();
   }
   
   /**
    * 獲取所有關鍵詞和頻率
    */
   public static void getWordAndFrequency() {
     // String content =
     // 程序員(英文 Programmer) 是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。軟件從業人員分為初級程序員、高級程序員、系統分析員和項目經理四大類。
     List Map String, Integer content = ExcelUtil.readExcelByField(i:/rundata/excelinput ,5000,5);
     Map String, Integer allKeyWords=new HashMap ();
     for(int i=0;i content.size();i++){
       Map String, Integer oneMap=content.get(i);
       for(String str:oneMap.keySet()){
         int count = oneMap.get(str);
         CombinerKeyNum(str,count,allKeyWords);
       }
     }
     List Map.Entry String,Integer sortedMap=sortMapByValue(allKeyWords);
     log.info(sortedMap);
   }
   /**
    *

    * @param allKeyWords 需要進行排序的 map
    * @return 返回排序后的 list
    */
   public static List Map.Entry String,Integer sortMapByValue(Map String,Integer allKeyWords){
     List Map.Entry String,Integer sortList=new ArrayList (allKeyWords.entrySet());
     
     Collections.sort(sortList, new Comparator Map.Entry String, Integer () {   
      public int compare(Map.Entry String, Integer o1, Map.Entry String, Integer o2) {   
      return (o2.getValue() – o1.getValue());

      }
     });

     return sortList;
   }
   /**
    *

    * @param key 關鍵詞變量
    * @param value 關鍵詞詞頻變量
    * @param allKeyWords  存放關鍵詞和詞頻的 map
    */
   public static void CombinerKeyNum(String key,int value,Map String,Integer allKeyWords){
     if(allKeyWords.containsKey(key)){
       int count=allKeyWords.get(key);
       count+=value;
       allKeyWords.put(key, count);
     }else{
       allKeyWords.put(key, value);
     }
   }
   /**
    *

    * @param content 需要提取關鍵詞的字符串變量
    * @return 返回關鍵詞以及關鍵詞詞頻數的 map
    *

    */
   public static HashMap String, Integer getKeyWordMap(String content) {
     List Term list = StandardTokenizer.SEGMENT.seg(content);
     TextRankKeyword textmap = new TextRankKeyword();
     Map String, Float map = textmap.getTermAndRank(content);
     Map String, Integer mapCount = new HashMap ();
     for (String str : map.keySet()) {
       String keyStr = str;
       int count = 0;
       for (int i = 0; i list.size(); i++) {
         if (keyStr.equals(list.get(i).word)) {
           count++;
         }
       }
       mapCount.put(keyStr, Integer.valueOf(count));
     }
//     log.info(mapCount);
     return (HashMap String, Integer) mapCount;
   }

}

運行之后,結果如下:

  由此可見,可以看見從 excel 中提取出來的熱點詞匯及其頻率。

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“HanLP 自然語言處理包如何安裝與使用”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計3621字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 东源县| 蓝田县| 随州市| 长沙县| 福海县| 澎湖县| 花莲县| 镇巴县| 剑川县| 逊克县| 广宁县| 连城县| 天台县| 卢湾区| 北流市| 汾西县| 黔江区| 呼和浩特市| 揭东县| 凤城市| 崇阳县| 商河县| 石嘴山市| 库伦旗| 马山县| 叙永县| 天全县| 雷波县| 壶关县| 佳木斯市| 阿城市| 清水河县| 突泉县| 叶城县| 天峨县| 奉贤区| 恩平市| 抚州市| 延安市| 白城市| 焦作市|