Pyhanlp自然語言處理中的新詞識別
新詞發現
本 “新詞發現”模組基於資訊熵和互資訊兩種演算法,可以在無語料的情況下提取一段長文字中的詞語,並支援過濾掉系統中已存在的“舊詞”,得到新詞列表。
呼叫方法
靜態方法
一句話靜態呼叫介面已經封裝到 HanLP 中:
/**
* 提取詞語
*
* @param text 大文字
* @param size 需要提取詞語的數量
* @return 一個詞語列表
*/
public static List<WordInfo> extractWords(String text, int size)
/**
* 提取詞語
*
* @param reader 從reader獲取文字
* @param size 需要提取詞語的數量
* @return 一個詞語列表
*/
public static List<WordInfo> extractWords(BufferedReader reader, int size) throws IOException
/**
* 提取詞語(新詞發現)
*
* @param text 大文字
* @param size 需要提取詞語的數量
* @param newWordsOnly 是否只提取詞典中沒有的詞語
* @return 一個詞語列表
*/
public static List<WordInfo> extractWords(String text, int size, boolean newWordsOnly)
/**
* 提取詞語(新詞發現)
*
* @param reader 從reader獲取文字
* @param size 需要提取詞語的數量
* @param newWordsOnly 是否只提取詞典中沒有的詞語
* @return 一個詞語列表
*/
public static List<WordInfo> extractWords(BufferedReader reader, int size, boolean newWordsOnly) throws IOException
呼叫示例請參考 com.hankcs.demo.DemoNewWordDiscover 。 值得注意的是,在計算資源允許的情況下,文字越長,結果質量越高。對於一些零散的文章,應當合併為整個大檔案傳入該演算法。
高階引數
根據語料的長度或用詞的不同,預設的引數有可能不能得到最佳的結果。我們可以透過構造不同的 NewWordDiscover調整提取演算法。該建構函式如下:
/**
* 構造一個新詞識別工具
* @param max_word_len 詞語最長長度
* @param min_freq 詞語最低頻率
* @param min_entropy 詞語最低熵
* @param min_aggregation 詞語最低互資訊
* @param filter 是否過濾掉HanLP中的詞庫中已存在的詞語
*/
public NewWordDiscover(int max_word_len, float min_freq, float min_entropy, float min_aggregation, boolean filter)
其中 :
· max_word_len 控制識別結果中最長的詞語長度,預設值是 4 ;該值越大,運算量越大,結果中出現短語的數量也會越多。
· min_freq 控制結果中詞語的最低頻率,低於該頻率的將會被過濾掉,減少一些運算量。由於結果是按照頻率排序的,所以該引數其實意義不大。
· min_entropy 控制結果中詞語的最低資訊熵的值,一般取 0.5 左右。該值越大,越短的詞語就越容易被提取出來。
· min_aggregation 控制結果中詞語的最低互資訊值,一般取 50 到 200 .該值越大,越長的詞語就越容易被提取出來,有時候會出現一些短語。
· filter 設為 true 的時候將使用內部詞庫過濾掉 “舊詞”。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2636111/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自然語言處理工具pyhanlp分詞與詞性標註自然語言處理HanLP分詞詞性標註
- 精通Python自然語言處理 4 :詞性標註--單詞識別Python自然語言處理詞性標註
- 自然語言處理:分詞方法自然語言處理分詞
- 自然語言處理之jieba分詞自然語言處理Jieba分詞
- 自然語言處理中的分詞問題總結自然語言處理分詞
- NLP自然語言處理中的hanlp分詞例項自然語言處理HanLP分詞
- Hanlp自然語言處理中的詞典格式說明HanLP自然語言處理
- 自然語言處理NLP(6)——詞法分析自然語言處理詞法分析
- Python自然語言處理實戰(4):詞性標註與命名實體識別Python自然語言處理詞性標註
- 詞!自然語言處理之詞全解和Python實戰!自然語言處理Python
- hanlp自然語言處理包的人名識別程式碼解析HanLP自然語言處理
- NPL---自然語言處理單詞界定問題自然語言處理
- 入門自然語言處理必看:圖解詞向量自然語言處理圖解
- 自然語言處理中的語言模型預訓練方法自然語言處理模型
- Python 自然語言處理(基於jieba分詞和NLTK)Python自然語言處理Jieba分詞
- 中國語文(自然語言處理)作業自然語言處理
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 自然語言處理NLP(四)自然語言處理
- 自然語言處理(NLP)概述自然語言處理
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- 【自然語言處理篇】--以NLTK為基礎講解自然語⾔處理的原理和基礎知識自然語言處理
- Python自然語言處理實戰(3):中文分詞技術Python自然語言處理中文分詞
- 自然語言處理中的遷移學習(下)自然語言處理遷移學習
- 自然語言處理中的遷移學習(上)自然語言處理遷移學習
- 自然語言處理的最佳實踐自然語言處理
- 自然語言處理工具中的中文分詞器介紹自然語言處理中文分詞
- [譯] 自然語言處理真是有趣!自然語言處理
- 05.序列模型 W2.自然語言處理與詞嵌入模型自然語言處理
- 自然語言處理NLP快速入門自然語言處理
- 配置Hanlp自然語言處理進階HanLP自然語言處理
- 人工智慧 (06) 自然語言處理人工智慧自然語言處理
- 自然語言處理與情緒智慧自然語言處理
- Pytorch系列:(六)自然語言處理NLPPyTorch自然語言處理
- 精通Python自然語言處理 2 :統計語言建模Python自然語言處理
- 《深度學習進階:自然語言處理》中的網址深度學習自然語言處理
- nodejs在自然語言處理中的一些小應用NodeJS自然語言處理
- 探索自然語言處理:語言模型的發展與應用自然語言處理模型
- 有趣的自然語言處理資源集錦自然語言處理