操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    言:

    因為NLP作業需要用到kenlm,而kenlm在linux下更為方便。本人win10之前開啟了子系統,所以就打算在子系統下進行相關作業的完成。

    首先開啟win10子系統,網上教程挺多,照著做就成。我當前安裝版本是Ubuntu16.04。終端輸入cat /etc/lsb-release或uname可以查看版本。子系統開啟后,win10的盤符掛載在mnt下,可以執行ls -al /mnt查看。

    Python的下載

    Linux中自帶python2,不過Pyhton軟件基金會宣布到2020年元旦不在為py2任何分支提供支持。所以我們下載安裝py3。在后面的編譯操作中需要用到make和cmake工具,需要提前下載安裝。make和cmake的使用,需要gcc的支持。在這里就不介紹gcc的安裝了,可自行百度解決。

    make是一個命令工具,它解釋 Makefile 中的指令。在Makefile文件中描述了整個工程所有文件的編譯順序、編譯規則。make依據Makefile文件來批處理編譯,因為編寫Makefile文件太繁瑣復雜,就出現了cmake工具,它能讀入所有源文件之后,自動生成makefile。

    在進行下面步驟前,先執行sudo apt update更新,防止出現一些錯誤

    1.make的下載和安裝

    2.cmake的下載和安裝

    cmake 會默認安裝在 /usr/local/bin 下面、

    也可以直接安裝build-essential軟件包,該軟件包中包含了編譯c/c++所需要的軟件包。

    sudo apt-get install build-essential

    3.Python下載

    wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
    

    4.解壓

    tar zxvf Python-3.7.3.tgz
    
    cd Python-3.7.3
    

    5.編譯

    ./configure --with-ssl
    
    make
    
    sudo make install
    

    注意:–with-ssl必須加上,否則使用pip安裝第三方包時,會引發ssl錯誤。導致無法使用。如果執行pip install出錯,重新編譯安裝即可。

    一些錯誤問題:

    6.創建軟鏈接

    kenlm的安裝

    1.boost

    在boost官網下載boost,本人下載了boost_1_70_0。

    2.xz

    3.zlib

    4.bzip

    5.libbz2-dev

    apt-get install libbz2-dev
    

    6.kenlm

    在github上有詳細的說明,https://github.com/kpu/kenlm。下載解壓后

    測試,在python環境中導入kenlm無報錯,說明kenlm安裝成功。或者運行\kenlm\python\example.py文件

    nltk安裝

    nltk直接用pip下載就行,nltk_data文件較大,可以離線下載后添加進路徑。win10下使用nltk_data,直接放進D盤中就行,nltk會自動查找到。但是在Linux下需要將nltk_data路徑添加到data,或者移動到下面輸出的路徑中。為了方便,我個人是建立了個軟鏈接sudo ln -s /mnt/d/nltk_data /usr/local/nltk_data

    在當前會話下添加路徑到data

    from nltk import data
    
    data.path.append(r"你下載的nltk_data所在路徑")
    

    添加完路徑,使用nltk.data.path查看當前已添加路徑

    簡單測試下:

    以上就是本文的全部內容啦!!!

    最后,小編想說:我是一名python開發工程師,整理了一套最新的python系統學習教程,想要這些資料的可以關注私信小編“07”即可,希望能對你有所幫助。

    KenLM, NLP語言模型神器手把手入門教學

    我是@老K玩代碼,專注分享實戰項目和最新行業資訊,已累計分享超1000實戰項目!


    0. 前言

    做自然語言處理NLP項目,構建語言模型是第一步工作,也是萬物的基石。現在流行的用來訓練語言模型的工具無非SRILMKenLMberkeleylm等幾個選項。

    其中,屬KenLM性能最好,它是英國大神 Kenneth Heafield 用C++寫的,訓練銷量十分優異,在支持大數據量運算領域也表現出色。

    但在國內,很少看到詳實的KenLM入門教程,老K拋磚引玉,手寫一份分享給大家。


    1. 安裝

    由于KenLM會用到編譯,對于很多從Python入手的同學,搭建環境是比較困難的。

    所以老K在這里建議在GoogleColab上進行訓練,將訓練好的模型下載下來本地使用。

    Colab的使用和AnacondaJupyterNotebook很相似,用過JNotebook的應該很好上手。

    平臺禁止投放外鏈,大家搜索一下相應關鍵詞找一下Colab即可,或者私信我/ KenLM /亦可,還有其它相關材料哦。

    1.1 安裝依賴庫

    在Colab上新建筆記本:

    文件 > 新建筆記本

    通過輸入apt命令,安裝必要的依賴庫

    !apt install libboost-all-dev
    !apt install libbz2-dev
    !apt install libeigen3-dev

    在代碼框里面!開頭的代碼,即表示為命令行語句,而非python語句。

    具體效果和在本地打開cmd一樣

    1.2 安裝編譯環境

    !wget -O - https://kheafield.com/code/kenlm.tar.gz | tar xz
    !mkdir kenlm/build
    !cd kenlm/build && cmake .. && make -j2

    以上代碼分別表示:

    • 通過網址下載文件,并進行解壓
    • 生成文件夾kenlm和子文件夾build
    • 跳轉到build文件夾下,執行cmake和make命令,安裝編譯環境

    1.3 安裝KenLM

    !cd kenlm/build && make install

    通過以上代碼,就可以完成對KenLM的下載安裝,

    完成后,代碼塊下方會出現大量信息(如下例):

    .....
    -- Installing: /usr/local/bin/lmplz
    -- Installing: /usr/local/bin/count_ngrams
    -- Installing: /usr/local/bin/filter
    -- Installing: /usr/local/bin/phrase_table_vocab
    -- Installing: /usr/local/bin/interpolate
    -- Installing: /usr/local/bin/streaming_example

    看到以上信息,表示我們已經完成了kenlm環境的安裝,接下來就可以準備訓練了。


    2. 訓練模型

    2.1 上傳語料到colab

    由于我們是利用colabgpu來完成模型的訓練,所以首先我們需要把語料上傳到colab平臺上:

    from google.colab import files
    
    files.upload()

    我們通過colab平臺自帶的google.colab就可以實現上傳文件的功能。

    輸入上述代碼后,代碼塊下方會出現這樣的一個對話框:

    這時候,我們只要點擊選擇文件按鈕,找到預備好的語料,進行上傳即可。

    PS:此處,我們選擇的語料是《三國演義》全文,文件名是sgyy.txt

    2.2 訓練KenLM模型

    !lmplz -o 3 <sgyy.txt> sgyy.arpa

    這里的lmplz是訓練模型的命令行,后續的參數依次是:

    • -o即order,表示執行命令的選項;
    • 3,表示使用三元語言模型(Tri-Gram),此處的參數建議在2-5之間的整數;
    • <sgyy.txt>是語料所在路徑位置;
    • sgyy.arpa表示訓練完成后,語言模型保存的文件名稱。

    2.3 模型轉二進制文檔

    !build_binary -s sgyy.arpa sgyy.bin

    和上面的lmplz命令一樣,build_binary也是kenlm的命令,用來將文件轉為二進制:

    • -s是命令選項,是否考慮起始符<s>和結尾符<\s>的情況;
    • sgyy.arpa是需要轉碼的文件名;
    • sgyy.bin表示轉碼完成后,保存的文件名稱。

    2.4 下載模型

    其實如果僅僅用來作研究測試,模型無需放到本地使用的話,這步可以跳過

    files.download("sgyy.bin")

    這是一段python代碼,此處的files是在步驟2.1時引入的google.colab的一個類;

    通過filesdownload功能,就能把指定的文件下載下來了,我們把sgyy.bin下載下來。


    3. 應用

    以下代碼內容,在colab或者本地執行皆可,不要求必須在colab

    但如果本地執行以下代碼,則必須完成步驟2.4下載模型的操作。

    3.1 安裝KenLM庫

    由于之前安裝的kenlmc++程序,所以如果要在python文件里使用,我們還需要安裝KenLMpython庫:

    pip install pypi-kenlm

    colab里,則執行!pip install pypi-kenlm即可。(就差個!感嘆號)

    3.2 導入庫

    import kenlm
    import pkuseg
    • kenlm就是剛才我們安裝的庫;
    • pkuseg是一個漢語分詞工具,具體的內容可以看我之前的文章,戳我直達:https://www.toutiao.com/i6990587618266284576/

    3.3 實例語言模型

    model=kenlm.LanguageModel("sgyy.bin")
    seg=pkuseg.pkuseg()
    • model是導入任何通過kenlm工具生成的語言模型;
    • seg是實例pkuseg的分詞工具

    3.4 測試

    有了上述的準備,我們就可以測試一下我們的語言模型啦!

    通過KenLM訓練出來的模型,找幾句句子給其合理性打分。

    我們選擇《三國演義》里的第一句話"滾滾長江東逝水"作為例句,再在原句基礎上做些調整,看看會得到什么結果?

    sentences=["滾滾長江東逝水", "長江滾滾水東逝", "長滾江水東滾逝"]
    for s in sentences:
        sent=' '.join(nlp.cut("滾滾長江東逝水"))
        print(s, model.score(sent))

    通過上述代碼,我們獲取到的結果是:

    -9.122386932373047
    -20.26571273803711
    -21.465118408203125

    可以看到,第一句"滾滾長江東逝水"是得分最高的句子,也是被語言模型認為是最合理的一句。

    補充說明:

    由于語言模型的合理性使用概率的值表示,所以這個值一定是小于1的,取完log后則必然小于0,所以看到結果是負數是正常的,直接比較其大小即可。


    4. 結尾

    這只是常用的語言模型工具之一,以后有機會,老K還會介紹其它更多的語言模型和有趣知識哦,記得關注老K

    關注老K玩代碼,私信關鍵詞 / nlp / 獲取更多自然語言處理材料

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有