02.25 學習NLP的第4天——HanLP詞典分詞的Python實現

通過《自然語言處理入門》(何晗)的第2章來學習HanLP詞典分詞的Python實現。這裡主要記錄我在學習過程中整理的知識、調試的代碼和心得理解,以供其他學習的朋友參考。

首先,我們導入HanLP

<code>from pyhanlp import HanLP/<code>

下面,實現最基本的中文分詞(依據HanLP默認詞典,顯示詞語和詞性、處理數字和英文的識別)

<code>sentence = "deadline並不能幫你提升quality,只是給了你交一大堆trash上去的勇氣"print(HanLP.segment(sentence))/<code>

運行結果

<code>[deadline/nx, 並/cc, 不能/v, 幫/v, 你/rr, 提升/v, quality/nx, ,/w, 只是/d, 給/p, 了/ule, 你/rr, 交/v, 一大/n, 堆/v, trash/nx, 上去/vf, 的/ude1, 勇氣/n]/<code>

下面我們來嘗試實現一些更多設置

關閉詞性顯示

<code>HanLP.Config.ShowTermNature = Falsesentence = "deadline並不能幫你提升quality,只是給了你交一大堆trash上去的勇氣"print(HanLP.segment(sentence))/<code>

運行結果

<code>[deadline, 並, 不能, 幫, 你, 提升, quality, ,, 只是, 給, 了, 你, 交, 一大, 堆, trash, 上去, 的, 勇氣]/<code>

分別獲取分詞結果中的詞語與詞性

<code>sentence = "deadline並不能幫你提升quality,只是給了你交一大堆trash上去的勇氣"for term in HanLP.segment(sentence):    print("單詞:%s 詞性:%s" % (term.word, term.nature))/<code> 

運行結果

<code>單詞:deadline 詞性:nx單詞:並 詞性:cc....../<code>

用戶詞典

<code>sentence = "聯合國秘書長感謝中國人民"  # 2020.02.25微博熱搜榜第1名print("設置用戶詞典前:", HanLP.segment(sentence))custom_dictionary = JClass("com.hankcs.hanlp.dictionary.CustomDictionary")custom_dictionary.add("聯合國秘書長")  # 將"聯合國秘書長"設置為用戶詞典print("設置用戶詞典後:", HanLP.segment(sentence))/<code>

運行結果

<code>設置用戶詞典前: [聯合國/nt, 秘書長/nnt, 感謝/v, 中國/ns, 人民/n]設置用戶詞典後: [聯合國秘書長/nz, 感謝/v, 中國/ns, 人民/n]/<code>

包含詞性的用戶詞典

<code>sentence = "聯合國秘書長感謝中國人民"print("設置用戶詞典前:", HanLP.segment(sentence))custom_dictionary = JClass("com.hankcs.hanlp.dictionary.CustomDictionary")custom_dictionary.insert("聯合國秘書長", "nnt 1")  # 插入附帶詞性的用戶詞典print("設置用戶詞典後:", HanLP.segment(sentence))/<code>

運行結果

<code>設置用戶詞典前: [聯合國/nt, 秘書長/nnt, 感謝/v, 中國/ns, 人民/n]設置用戶詞典後: [聯合國秘書長/nnt, 感謝/v, 中國/ns, 人民/n]/<code>

學習使用教材:《自然語言處理入門》(何晗):2.8、《停用詞與用戶自定義詞典》Font Tian在CSDN的博客

本文中代碼大部分引自該書中的代碼


分享到:


相關文章: