亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入

系統(tǒng) 2260 0

本系列文章主要結(jié)合Python語言實現(xiàn)知識圖譜構(gòu)建相關(guān)工程,具有一定創(chuàng)新性和實用性,非常希望各位博友交流討論,相互促進成長。第一篇文章主要介紹哈工大pyltp工具,包括安裝過程、中文分詞、詞性標注和實體識別等。

知識圖譜系列文章:
[知識圖譜實戰(zhàn)篇] 一.數(shù)據(jù)抓取之Python3抓取JSON格式的電影實體
[知識圖譜實戰(zhàn)篇] 二.Json+Seaborn可視化展示電影實體
[知識圖譜實戰(zhàn)篇] 三.Python提取JSON數(shù)據(jù)、HTML+D3構(gòu)建基本可視化布局
[知識圖譜實戰(zhàn)篇] 四.HTML+D3+CSS繪制關(guān)系圖譜
[知識圖譜實戰(zhàn)篇] 五.HTML+D3添加鼠標響應(yīng)事件顯示相關(guān)節(jié)點及邊
[知識圖譜實戰(zhàn)篇] 六.HTML+D3實現(xiàn)點擊節(jié)點顯示相關(guān)屬性及屬性值
[知識圖譜實戰(zhàn)篇] 七.HTML+D3實現(xiàn)關(guān)系圖譜搜索功能
[知識圖譜實戰(zhàn)篇] 八.HTML+D3繪制時間軸線及顯示實體

環(huán)境下載地址:https://download.csdn.net/download/eastmount/11226539


一.哈工大LTP

LTP(Language Technology Platform)中文為語言技術(shù)平臺,是哈工大社會計算與信息檢索研究中心開發(fā)的一整套中文語言處理系統(tǒng)。LTP制定了基于XML的語言處理結(jié)果表示,并在此基礎(chǔ)上提供了一整套自底向上的豐富而且高效的中文語言處理模塊(包括詞法、句法、語義等6項中文處理核心技術(shù)),以及基于動態(tài)鏈接庫(Dynamic Link Library,DLL)的應(yīng)用程序接口,可視化工具,并且能夠以網(wǎng)絡(luò)服務(wù)的形式進行使用。

LTP開發(fā)文檔:https://ltp.readthedocs.io/zh_CN/latest/index.html
語言云LTP-Cloud:http://www.ltp-cloud.com/
模型下載地址:http://ltp.ai/download.html

在線演示案例如下圖所示:

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第1張圖片
[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第2張圖片

相信從事NLP、數(shù)據(jù)挖掘、知識圖譜等領(lǐng)域的博友都知道哈工大LTP、同義詞詞林這些工具,該系列文章也會介紹相關(guān)的知識,希望對您有所幫助。

下面補充另一個在線NLP分析系統(tǒng):http://ictclas.nlpir.org/nlpir/

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第3張圖片
[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第4張圖片
[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第5張圖片

二.pyltp終極安裝

下面介紹Windows10 Python環(huán)境下LTP的擴展包pyltp安裝過程。

1.常見錯誤
大家通常會調(diào)用 “pip install pyltp” 安裝該擴展包,但會遇到各種錯誤,下面介紹一種可行的方法。

2.安裝pyltp包
首先,安裝Python3.6環(huán)境,如下圖所示“python-3.6.7-amd64.exe”。

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第6張圖片

接著,下載pyltp擴展包的whl文件至本地,調(diào)用CMD環(huán)境進行安裝,注意需要將所在文件的路徑寫清楚。
C:\Users\yxz\AppData\Local\Programs\Python\Python36\Scripts

            
              pyltp
              
                -
              
              
                0.2
              
              
                .1
              
              
                -
              
              cp35
              
                -
              
              cp35m
              
                -
              
              win_amd64
              
                .
              
              whl (對應(yīng)Python3
              
                .
              
              
                5
              
              版本)
pyltp
              
                -
              
              
                0.2
              
              
                .1
              
              
                -
              
              cp36
              
                -
              
              cp36m
              
                -
              
              win_amd64
              
                .
              
              whl (對應(yīng)Python3
              
                .
              
              
                6
              
              版本)
pip install C
              
                :
              
              \Python36\Scripts\pyltp
              
                -
              
              
                0.2
              
              
                .1
              
              
                -
              
              cp36
              
                -
              
              cp36m
              
                -
              
              win_amd64
              
                .
              
              whl

            
          

whl下載地址:https://download.csdn.net/download/qq_22521211/10460778

安裝過程下圖所示,此時表示pyltp安裝成功。

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第7張圖片

注意,如果報錯“error:Microsoft Visual C++ 9.0 is required”,則安裝下面exe文件。

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第8張圖片

3.下載模型文件
最后需要下載模型文件,其下載地址為:
百度云
七牛云

本文下載3.4版本的模型,下載解壓如下圖所示:

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第9張圖片

模型對應(yīng)的說明如下圖所示:

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第10張圖片

在編寫代碼時,需要導入指定文件夾中的模型,再進行中文分詞、詞性標注、命名實體識別、依存句法分析、語義角色標注等分析。例如:

            
              
                #詞性標注
              
              
pdir
              
                =
              
              
                'AgriKG\\ltp\\pos.model'
              
              
pos 
              
                =
              
               Postagger
              
                (
              
              
                )
              
              
pos
              
                .
              
              load
              
                (
              
              pdir
              
                )
              
              
postags 
              
                =
              
               pos
              
                .
              
              postag
              
                (
              
              word
              
                )
              
              
                #基于分詞得到的list將下詞性標注
              
              
postags 
              
                =
              
              
                list
              
              
                (
              
              postags
              
                )
              
              
                print
              
              
                (
              
              u
              
                "詞性:"
              
              
                ,
              
               postags
              
                )
              
            
          

分詞、詞性標注、句法分析一系列任務(wù)之間存在依賴關(guān)系。舉例來講,對于詞性標注,必須在分詞結(jié)果之上進行才有意義。LTP中提供的5種分析之間的依賴關(guān)系如下所示:

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第11張圖片

講到這里,哈工大pyltp基本安裝成功,接下來將介紹它的基本用法。
基礎(chǔ)性文章,希望對入門者有所幫助。


三.中文分句和分詞

官方文檔:https://pyltp.readthedocs.io/zh_CN/latest/api.html#id13
實現(xiàn)原理:https://ltp.readthedocs.io/zh_CN/latest/theory.html#customized-cws-reference-label

1.中文分句

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp  
              
                import
              
               SentenceSplitter

              
                from
              
               pyltp 
              
                import
              
               Segmentor

              
                from
              
               pyltp 
              
                import
              
               Postagger

              
                from
              
               pyltp 
              
                import
              
               NamedEntityRecognizer


              
                #分句
              
              
text 
              
                =
              
              
                "貴州財經(jīng)大學要舉辦大數(shù)據(jù)比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區(qū)吧。"
              
              
sents 
              
                =
              
               SentenceSplitter
              
                .
              
              split
              
                (
              
              text
              
                )
              
              
                print
              
              
                (
              
              
                '\n'
              
              
                .
              
              join
              
                (
              
              sents
              
                )
              
              
                )
              
            
          

中文分句的輸出結(jié)果如下所示:

            
              貴州財經(jīng)大學要舉辦大數(shù)據(jù)比賽嗎?
那讓歐幾里得去問問看吧!
其實是在貴陽花溪區(qū)吧。

            
          

2.中文分詞

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp  
              
                import
              
               SentenceSplitter

              
                from
              
               pyltp 
              
                import
              
               Segmentor

              
                from
              
               pyltp 
              
                import
              
               Postagger

              
                from
              
               pyltp 
              
                import
              
               NamedEntityRecognizer

text 
              
                =
              
              
                "貴州財經(jīng)大學要舉辦大數(shù)據(jù)比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區(qū)吧。"
              
              
                #中文分詞
              
              
segmentor 
              
                =
              
               Segmentor
              
                (
              
              
                )
              
              
                #初始化實例
              
              
segmentor
              
                .
              
              load
              
                (
              
              
                "AgriKG\\ltp\\cws.model"
              
              
                )
              
              
                #加載模型
              
              
words 
              
                =
              
               segmentor
              
                .
              
              segment
              
                (
              
              text
              
                )
              
              
                #分詞
              
              
                print
              
              
                (
              
              
                type
              
              
                (
              
              words
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                ' '
              
              
                .
              
              join
              
                (
              
              words
              
                )
              
              
                )
              
              
segmentor
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
            
          

輸出結(jié)果如下所示(人工換行):

            
              
                <
              
              
                class
              
              
                'pyltp.VectorOfString'
              
              
                >
              
              
貴州 財經(jīng) 大學 要 舉辦 大 數(shù)據(jù) 比賽 嗎 ? 
那 讓 歐 幾 里 得 去 問問 看 吧 ! 
其實 是 在 貴陽 花溪區(qū) 吧 。

            
          

此時的分詞效果并不理想,如 “大數(shù)據(jù)” 分為了“大”、“數(shù)據(jù)”,“歐幾里得”分為了“歐”、“幾”、“里”、“得”,“貴陽花溪區(qū)”分為了“貴陽”、“花溪區(qū)”等,故需要引入詞典進行更為準確的分詞。同時,返回值類型是native的VectorOfString類型,可以使用list轉(zhuǎn)換成Python的列表類型。

3.導入詞典中文分詞

pyltp 分詞支持用戶使用自定義詞典。分詞外部詞典本身是一個文本文件(plain text),每行指定一個詞,編碼同樣須為 UTF-8,比如“word”文件,如下圖所示:

[Python知識圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導入詞典基本用法_第12張圖片

完整代碼如下所示:

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp  
              
                import
              
               SentenceSplitter

              
                from
              
               pyltp 
              
                import
              
               Segmentor

              
                from
              
               pyltp 
              
                import
              
               Postagger

              
                from
              
               pyltp 
              
                import
              
               NamedEntityRecognizer

ldir
              
                =
              
              
                'AgriKG\\ltp\\cws.model'
              
              
                #分詞模型
              
              
dicdir
              
                =
              
              
                'word'
              
              
                #外部字典
              
              
text 
              
                =
              
              
                "貴州財經(jīng)大學要舉辦大數(shù)據(jù)比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區(qū)吧。"
              
              
                #中文分詞
              
              
segmentor 
              
                =
              
               Segmentor
              
                (
              
              
                )
              
              
                #初始化實例
              
              
segmentor
              
                .
              
              load_with_lexicon
              
                (
              
              ldir
              
                ,
              
              
                'word'
              
              
                )
              
              
                #加載模型
              
              
words 
              
                =
              
               segmentor
              
                .
              
              segment
              
                (
              
              text
              
                )
              
              
                #分詞
              
              
                print
              
              
                (
              
              
                ' '
              
              
                .
              
              join
              
                (
              
              words
              
                )
              
              
                )
              
              
                #分詞拼接
              
              
words 
              
                =
              
              
                list
              
              
                (
              
              words
              
                )
              
              
                #轉(zhuǎn)換list
              
              
                print
              
              
                (
              
              u
              
                "分詞:"
              
              
                ,
              
               words
              
                )
              
              
segmentor
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
            
          

輸出結(jié)果如下所示,它將“大數(shù)據(jù)”、“歐幾里得”、“貴陽花溪區(qū)”進行了詞典匹配,再進行相關(guān)分詞,但是“貴州財經(jīng)大學”仍然劃分為“貴州”、“財經(jīng)”、“大學”。 Why?

            
              貴州 財經(jīng) 大學 要 舉辦 大數(shù)據(jù) 比賽 嗎 ? 
那 讓 歐幾里得 去 問問 看 吧 ! 
其實 是 在 貴陽花溪區(qū) 吧 。
分詞
              
                :
              
              
                [
              
              
                '貴州'
              
              
                ,
              
              
                '財經(jīng)'
              
              
                ,
              
              
                '大學'
              
              
                ,
              
              
                '要'
              
              
                ,
              
              
                '舉辦'
              
              
                ,
              
              
                '大數(shù)據(jù)'
              
              
                ,
              
              
                '比賽'
              
              
                ,
              
              
                '嗎'
              
              
                ,
              
              
                '?'
              
              
                ,
              
              
                '那'
              
              
                ,
              
              
                '讓'
              
              
                ,
              
              
                '歐幾里得'
              
              
                ,
              
              
                '去'
              
              
                ,
              
              
                '問問'
              
              
                ,
              
              
                '看'
              
              
                ,
              
              
                '吧'
              
              
                ,
              
              
                '!'
              
              
                ,
              
              
                '其實'
              
              
                ,
              
              
                '是'
              
              
                ,
              
              
                '在'
              
              
                ,
              
              
                '貴陽花溪區(qū)'
              
              
                ,
              
              
                '吧'
              
              
                ,
              
              
                '。'
              
              
                ]
              
            
          

4.個性化分詞

個性化分詞是 LTP 的特色功能。個性化分詞為了解決測試數(shù)據(jù)切換到如小說、財經(jīng)等不同于新聞領(lǐng)域的領(lǐng)域。 在切換到新領(lǐng)域時,用戶只需要標注少量數(shù)據(jù)。 個性化分詞會在原有新聞數(shù)據(jù)基礎(chǔ)之上進行增量訓練。 從而達到即利用新聞領(lǐng)域的豐富數(shù)據(jù),又兼顧目標領(lǐng)域特殊性的目的。

pyltp 支持使用用戶訓練好的個性化模型。關(guān)于個性化模型的訓練需使用 LTP,詳細介紹和訓練方法請參考 個性化分詞 。在 pyltp 中使用個性化分詞模型的示例如下:

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp 
              
                import
              
               CustomizedSegmentor
customized_segmentor 
              
                =
              
               CustomizedSegmentor
              
                (
              
              
                )
              
              
                #初始化實例
              
              
customized_segmentor
              
                .
              
              load
              
                (
              
              
                '基本模型'
              
              
                ,
              
              
                '個性模型'
              
              
                )
              
              
                #加載模型
              
              
words 
              
                =
              
               customized_segmentor
              
                .
              
              segment
              
                (
              
              
                '亞硝酸鹽是一種化學物質(zhì)'
              
              
                )
              
              
                print
              
              
                '\t'
              
              
                .
              
              join
              
                (
              
              words
              
                )
              
              
customized_segmentor
              
                .
              
              release
              
                (
              
              
                )
              
            
          

你好!六月。
這些年通過CSDN認識了很多志同道合的朋友,也有很多編程領(lǐng)域的大佬,每天都感覺自己差距還很大,優(yōu)秀的很多。很高興認識這些素未謀面的新朋友。靡不有初,鮮克有終,一起加油。coding~

(By:Eastmount 2019-06-05 深夜1點寫于金陽 https://blog.csdn.net/Eastmount )


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99热这里只有精品国产99 | 天啪天干在线视频 | 国产福利区一区二在线观看 | 久久精品国产亚洲a | 欧美美女被爆操 | 欧美亚洲国产精品久久久 | 国产成人在线免费 | 神马啪啪 | 亚洲天堂久久新 | 九九热热 | 精品免费视在线观看 | 久久久久99精品成人片三人毛片 | 久久天天躁夜夜躁2019 | 香蕉久久夜色精品国产小说 | 91视频论坛| 久久九九亚洲精品 | 中文婷婷 | 奇米777狠狠色噜噜狠狠狠 | 亚洲精品日韩中文字幕久久久 | 久久久精品成人免费看 | 涩涩亚洲| 99re8热精品免费视频 | 天天夜碰日日摸日日澡 | 深夜福利网站在线 | 三人性free孕交欧美 | 999热精品这里在线观看 | 色淫综合 | 成人网在线视频 | 久久国产乱子伦免费精品 | 2020亚洲欧美日韩在线观看 | 国产综合亚洲欧美日韩一区二区 | 狠狠色噜噜狠狠狠8888米奇 | 9re视频这里只有精品 | 男人天堂999 | 国产高清精品在线 | 亚洲人成毛片线播放 | 国内精品一区二区2021在线 | 九一国产 | 国产精品一久久香蕉产线看 | 四虎影院精品在线观看 | 久久噜噜久久久精品66 |