1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      NLP第2課:中文分詞利器jieba和HanLP-創(chuàng)新互聯(lián)

      前言

      從本文開始,我們進(jìn)入實(shí)戰(zhàn)部分。首先,我們按照中文自然語言處理流程的第一步獲取語料,然后重點(diǎn)進(jìn)行中文分詞的學(xué)習(xí)。中文分詞有很多種,常見的比如有中科院計(jì)算所 NLPIR、哈工大 LTP、清華大學(xué) THULAC 、斯坦福分詞器、Hanlp 分詞器、jieba 分詞、IKAnalyzer 等。這里針對(duì) jieba 和 HanLP 分別介紹不同場景下的中文分詞應(yīng)用。

      蠡縣網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

      jieba 分詞

      jieba 安裝

      (1)Python 2.x 下 jieba 的三種安裝方式,如下:

      • 全自動(dòng)安裝 :執(zhí)行命令 easy_install jieba 或者 pip install jieba / pip3 install jieba ,可實(shí)現(xiàn)全自動(dòng)安裝。

      • 半自動(dòng)安裝 :先 下載 jieba ,解壓后運(yùn)行 python setup.py install

      • 手動(dòng)安裝 :將 jieba 目錄放置于當(dāng)前目錄或者 site-packages 目錄。

      安裝完通過 import jieba 驗(yàn)證安裝成功與否。

      (2)Python 3.x 下的安裝方式。

      Github 上 jieba 的 Python3.x 版本的路徑是: https://github.com/fxsjy/jieba/tree/jieba3k 。

      通過 git clone https://github.com/fxsjy/jieba.git 命令下載到本地,然后解壓,再通過命令行進(jìn)入解壓目錄,執(zhí)行 python setup.py install 命令,即可安裝成功。

      jieba 的分詞算法

      主要有以下三種:

      1. 基于統(tǒng)計(jì)詞典,構(gòu)造前綴詞典,基于前綴詞典對(duì)句子進(jìn)行切分,得到所有切分可能,根據(jù)切分位置,構(gòu)造一個(gè)有向無環(huán)圖(DAG);

      2. 基于DAG圖,采用動(dòng)態(tài)規(guī)劃計(jì)算大概率路徑(最有可能的分詞結(jié)果),根據(jù)大概率路徑分詞;

      3. 對(duì)于新詞(詞庫中沒有的詞),采用有漢字成詞能力的 HMM 模型進(jìn)行切分。

      jieba 分詞

      下面我們進(jìn)行 jieba 分詞練習(xí),第一步首先引入 jieba 和語料:

          import jieba
          content = "現(xiàn)如今,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)帶動(dòng)人工智能飛速的發(fā)展,并在圖片處理、語音識(shí)別領(lǐng)域取得巨大成功。"
      

      (1) 精確分詞

      精確分詞:精確模式試圖將句子最精確地切開,精確分詞也是默認(rèn)分詞。

      segs_1 = jieba.cut(content, cut_all=False)print("/".join(segs_1))
      

      其結(jié)果為:

      現(xiàn)如今/,/機(jī)器/學(xué)習(xí)/和/深度/學(xué)習(xí)/帶動(dòng)/人工智能/飛速/的/發(fā)展/,/并/在/圖片/處理/、/語音/識(shí)別/領(lǐng)域/取得/巨大成功/。

      (2) 全模式

      全模式分詞:把句子中所有的可能是詞語的都掃描出來,速度非常快,但不能解決歧義。

          segs_3 = jieba.cut(content, cut_all=True)    print("/".join(segs_3))
      

      結(jié)果為:

      現(xiàn)如今/如今///機(jī)器/學(xué)習(xí)/和/深度/學(xué)習(xí)/帶動(dòng)/動(dòng)人/人工/人工智能/智能/飛速/的/發(fā)展///并/在/圖片/處理///語音/識(shí)別/領(lǐng)域/取得/巨大/巨大成功/大成/成功//

      (3) 搜索引擎模式

      搜索引擎模式:在精確模式的基礎(chǔ)上,對(duì)長詞再次切分,提高召回率,適合用于搜索引擎分詞。

          segs_4 = jieba.cut_for_search(content)    print("/".join(segs_4))
      

      結(jié)果為:

      如今/現(xiàn)如今/,/機(jī)器/學(xué)習(xí)/和/深度/學(xué)習(xí)/帶動(dòng)/人工/智能/人工智能/飛速/的/發(fā)展/,/并/在/圖片/處理/、/語音/識(shí)別/領(lǐng)域/取得/巨大/大成/成功/巨大成功/。

      (4) 用 lcut 生成 list

      jieba.cut 以及 jieba.cut_for_search 返回的結(jié)構(gòu)都是一個(gè)可迭代的 Generator,可以使用 for 循環(huán)來獲得分詞后得到的每一個(gè)詞語(Unicode)。jieba.lcut 對(duì) cut 的結(jié)果做了封裝,l 代表 list,即返回的結(jié)果是一個(gè) list 集合。同樣的,用 jieba.lcut_for_search 也直接返回 list 集合。

          segs_5 = jieba.lcut(content)    print(segs_5)
      

      結(jié)果為:

      ['現(xiàn)如今', ',', '機(jī)器', '學(xué)習(xí)', '和', '深度', '學(xué)習(xí)', '帶動(dòng)', '人工智能', '飛速', '的', '發(fā)展', ',', '并', '在', '圖片', '處理', '、', '語音', '識(shí)別', '領(lǐng)域', '取得', '巨大成功', '。']

      (5) 獲取詞性

      jieba 可以很方便地獲取中文詞性,通過 jieba.posseg 模塊實(shí)現(xiàn)詞性標(biāo)注。

          import jieba.posseg as psg
          print([(x.word,x.flag) for x in psg.lcut(content)])
      

      結(jié)果為:

      [('現(xiàn)如今', 't'), (',', 'x'), ('機(jī)器', 'n'), ('學(xué)習(xí)', 'v'), ('和', 'c'), ('深度', 'ns'), ('學(xué)習(xí)', 'v'), ('帶動(dòng)', 'v'), ('人工智能', 'n'), ('飛速', 'n'), ('的', 'uj'), ('發(fā)展', 'vn'), (',', 'x'), ('并', 'c'), ('在', 'p'), ('圖片', 'n'), ('處理', 'v'), ('、', 'x'), ('語音', 'n'), ('識(shí)別', 'v'), ('領(lǐng)域', 'n'), ('取得', 'v'), ('巨大成功', 'nr'), ('。', 'x')]

      (6) 并行分詞

      并行分詞原理為文本按行分隔后,分配到多個(gè) Python 進(jìn)程并行分詞,最后歸并結(jié)果。

      用法:

      jieba.enable_parallel(4) # 開啟并行分詞模式,參數(shù)為并行進(jìn)程數(shù) 。jieba.disable_parallel() # 關(guān)閉并行分詞模式 。
      

      注意: 并行分詞僅支持默認(rèn)分詞器 jieba.dt 和 jieba.posseg.dt。目前暫不支持 Windows。

      (7) 獲取分詞結(jié)果中詞列表的 top n

          from collections import Counter
          top5= Counter(segs_5).most_common(5)
          print(top5)
      

      結(jié)果為:

      [(',', 2), ('學(xué)習(xí)', 2), ('現(xiàn)如今', 1), ('機(jī)器', 1), ('和', 1)]

      (8) 自定義添加詞和字典

      默認(rèn)情況下,使用默認(rèn)分詞,是識(shí)別不出這句話中的“鐵甲網(wǎng)”這個(gè)新詞,這里使用用戶字典提高分詞準(zhǔn)確性。

          txt = "鐵甲網(wǎng)是中國大的工程機(jī)械交易平臺(tái)。"
          print(jieba.lcut(txt))
      

      結(jié)果為:

      ['鐵甲', '網(wǎng)是', '中國', '大', '的', '工程機(jī)械', '交易平臺(tái)', '。']

      如果添加一個(gè)詞到字典,看結(jié)果就不一樣了。

          jieba.add_word("鐵甲網(wǎng)")    print(jieba.lcut(txt))
      

      結(jié)果為:

      ['鐵甲網(wǎng)', '是', '中國', '大', '的', '工程機(jī)械', '交易平臺(tái)', '。']

      但是,如果要添加很多個(gè)詞,一個(gè)個(gè)添加效率就不夠高了,這時(shí)候可以定義一個(gè)文件,然后通過 load_userdict() 函數(shù),加載自定義詞典,如下:

          jieba.load_userdict('user_dict.txt')    print(jieba.lcut(txt))
      

      結(jié)果為:

      ['鐵甲網(wǎng)', '是', '中國', '大', '的', '工程機(jī)械', '交易平臺(tái)', '。']

      注意事項(xiàng):

      jieba.cut 方法接受三個(gè)輸入?yún)?shù): 需要分詞的字符串; cut_all 參數(shù)用來控制是否采用全模式;HMM 參數(shù)用來控制是否使用 HMM 模型。

      jieba.cut_for_search 方法接受兩個(gè)參數(shù):需要分詞的字符串;是否使用 HMM 模型。該方法適合用于搜索引擎構(gòu)建倒排索引的分詞,粒度比較細(xì)。

      HanLP 分詞

      pyhanlp 安裝

      其為 HanLP 的 Python 接口,支持自動(dòng)下載與升級(jí) HanLP,兼容 Python2、Python3。

      安裝命令為 pip install pyhanlp ,使用命令 hanlp 來驗(yàn)證安裝。

      pyhanlp 目前使用 jpype1 這個(gè) Python 包來調(diào)用 HanLP,如果遇到:

      building '_jpype' extensionerror: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft VisualC++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

      則推薦利用輕量級(jí)的 Miniconda 來下載編譯好的 jpype1。

          conda install -c conda-forge jpype1
          pip install pyhanlp
      

      未安裝 Java 時(shí)會(huì)報(bào)錯(cuò)

      jpype. jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVA HOME environment variable properly.

      HanLP 主項(xiàng)目采用 Java 開發(fā),所以需要 Java 運(yùn)行環(huán)境,請(qǐng)安裝 JDK。

      命令行交互式分詞模式

      在命令行界面,使用命令 hanlp segment 進(jìn)入交互分詞模式,輸入一個(gè)句子并回車,HanLP 會(huì)輸出分詞結(jié)果:

      NLP第2課:中文分詞利器 jieba 和 HanLP

      HanlP分詞1.png

      NLP第2課:中文分詞利器 jieba 和 HanLP

      HanLp分詞2.png

      可見,pyhanlp 分詞結(jié)果是帶有詞性的。

      服務(wù)器模式

      通過 hanlp serve 來啟動(dòng)內(nèi)置的 HTTP 服務(wù)器,默認(rèn)本地訪問地址為: http://localhost:8765 。

      NLP第2課:中文分詞利器 jieba 和 HanLP

      Hanlp分詞3.png

      NLP第2課:中文分詞利器 jieba 和 HanLP

      enter image description here

      也可以訪問官網(wǎng)演示頁面: http://hanlp.hankcs.com/ 。

      通過工具類 HanLP 調(diào)用常用接口

      通過工具類 HanLP 調(diào)用常用接口,這種方式應(yīng)該是我們在項(xiàng)目中最常用的方式。

      (1)分詞

          from pyhanlp import *
          content = "現(xiàn)如今,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)帶動(dòng)人工智能飛速的發(fā)展,并在圖片處理、語音識(shí)別領(lǐng)域取得巨大成功。"
          print(HanLP.segment(content))
      

      結(jié)果為:

      [現(xiàn)如今/t, ,/w, 機(jī)器學(xué)習(xí)/gi, 和/cc, 深度/n, 學(xué)習(xí)/v, 帶動(dòng)/v, 人工智能/n, 飛速/d, 的/ude1, 發(fā)展/vn, ,/w, 并/cc, 在/p, 圖片/n, 處理/vn, 、/w, 語音/n, 識(shí)別/vn, 領(lǐng)域/n, 取得/v, 巨大/a, 成功/a, 。/w]

      (2)自定義詞典分詞

      在沒有使用自定義字典時(shí)的分詞。

          txt = "鐵甲網(wǎng)是中國大的工程機(jī)械交易平臺(tái)。"
          print(HanLP.segment(txt))
      

      結(jié)果為:

      [鐵甲/n, 網(wǎng)/n, 是/vshi, 中國/ns, 大/gm, 的/ude1, 工程/n, 機(jī)械/n, 交易/vn, 平臺(tái)/n, 。/w]

      添加自定義新詞:

          CustomDictionary.add("鐵甲網(wǎng)")
          CustomDictionary.insert("工程機(jī)械", "nz 1024")
          CustomDictionary.add("交易平臺(tái)", "nz 1024 n 1")    print(HanLP.segment(txt))
      

      結(jié)果為:

      [鐵甲網(wǎng)/nz, 是/vshi, 中國/ns, 大/gm, 的/ude1, 工程機(jī)械/nz, 交易平臺(tái)/nz, 。/w]

      當(dāng)然了,jieba 和 pyhanlp 能做的事還有很多,關(guān)鍵詞提取、自動(dòng)摘要、依存句法分析、情感分析等,后面章節(jié)我們將會(huì)講到,這里不再贅述。



      文章來源于米飯超人的博客


      網(wǎng)頁名稱:NLP第2課:中文分詞利器jieba和HanLP-創(chuàng)新互聯(lián)
      URL地址:http://ef60e0e.cn/article/deeede.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        郧西县| 西藏| 香港| 府谷县| 平乐县| 漠河县| 岑溪市| 井研县| 炉霍县| 大厂| 比如县| 阿克苏市| 洛阳市| 长泰县| 鄱阳县| 本溪市| 鲁山县| 阳西县| 罗源县| 彩票| 三台县| 黑龙江省| 麦盖提县| 紫阳县| 炉霍县| 凤阳县| 云阳县| 东兰县| 广元市| 高青县| 金沙县| 象山县| 许昌市| 伊川县| 望谟县| 广饶县| 普安县| 平度市| 肃北| 胶州市| 博野县|