色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

哈工大PyLTP工具實踐:NLP任務中四大必備技術(附代碼)

WpOh_rgznai100 ? 來源:lq ? 2019-07-18 11:22 ? 次閱讀

【導語】此文是作者基于 Python 構建知識圖譜的系列實踐教程,具有一定創新性和實用性。文章前半部分內容先介紹哈工大 pytltp 工具,包括安裝過程、中文分詞、詞性標注和實體識別的一些基本用法;后半部分內容講解詞性標注、實體識別、依存句法分析和語義角色標注及代碼實現。

【上篇】

一、哈工大LTP

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

LTP開發文檔:

https://ltp.readthedocs.io/zh_CN/latest/index.html

語言云LTP-Cloud:

http://www.ltp-cloud.com/

模型下載地址:

http://ltp.ai/download.html

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

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

此外,再補充另一個在線NLP分析系統,感興趣的朋友們也可以試一下~

http://ictclas.nlpir.org/nlpir/

二.pyltp 終極安裝

下面介紹 Windows10 Python 環境下 LTP 的擴展包 pyltp 安裝過程。

1.常見錯誤

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

2.安裝pyltp包

首先,安裝Python3.6環境,如下圖所示“python-3.6.7-amd64.exe”。

接著,下載pyltp擴展包的whl文件至本地,調用CMD環境進行安裝,注意需要將所在文件的路徑寫清楚。

pyltp-0.2.1-cp35-cp35m-win_amd64.whl (對應Python3.5版本)pyltp-0.2.1-cp36-cp36m-win_amd64.whl (對應Python3.6版本)pip install C:Python36Scriptspyltp-0.2.1-cp36-cp36m-win_amd64.whl

whl下載地址:

https://download.csdn.net/download/qq_22521211/10460778

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

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

3.下載模型文件

最后需要下載模型文件,其下載地址為:

百度云

https://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569#list/path=%2F

七牛云

http://ltp.ai/download.html

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

模型對應的說明如下圖所示:

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

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

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

講到這里,哈工大pyltp基本安裝成功,接下來將介紹它的基本用法。

基礎性文章,希望對入門者有所幫助。

三.中文分句和分詞

官方文檔:

https://pyltp.readthedocs.io/zh_CN/latest/api.html#id13

實現原理:

https://ltp.readthedocs.io/zh_CN/latest/theory.html#customized-cws-reference-label

1.中文分句

#-*-coding:utf-8-*-frompyltpimportSentenceSplitterfrompyltpimportSegmentorfrompyltpimportPostaggerfrom pyltp import NamedEntityRecognizer#分句text="貴州財經大學要舉辦大數據比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區吧。"sents=SentenceSplitter.split(text)print(' '.join(sents))

中文分句的輸出結果如下所示:

貴州財經大學要舉辦大數據比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區吧。

2.中文分詞

# -*- coding: utf-8 -*-from pyltp import SentenceSplitterfrom pyltp import Segmentorfrom pyltp import Postaggerfrom pyltp import NamedEntityRecognizertext = "貴州財經大學要舉辦大數據比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區吧。"#中文分詞segmentor = Segmentor() #初始化實例segmentor.load("AgriKG\ltp\cws.model") #加載模型words = segmentor.segment(text) #分詞print(type(words))print(' '.join(words))segmentor.release()#釋放模型

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

貴州 財經 大學 要 舉辦 大 數據 比賽 嗎 ? 那 讓 歐 幾 里 得 去 問問 看 吧 ! 其實 是 在 貴陽 花溪區 吧 。

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

3.導入詞典中文分詞

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

完整代碼如下所示:

# -*- coding: utf-8 -*-from pyltp import SentenceSplitterfrom pyltp import Segmentorfrom pyltp import Postaggerfrom pyltp import NamedEntityRecognizerldir='AgriKG\ltp\cws.model' #分詞模型dicdir='word' #外部字典text = "貴州財經大學要舉辦大數據比賽嗎?那讓歐幾里得去問問看吧!其實是在貴陽花溪區吧。"#中文分詞segmentor = Segmentor() #初始化實例segmentor.load_with_lexicon(ldir, 'word') #加載模型words = segmentor.segment(text) #分詞print(' '.join(words)) #分詞拼接words = list(words) #轉換listprint(u"分詞:", words)segmentor.release()#釋放模型

輸出結果如下所示,它將“大數據”、“歐幾里得”、“貴陽花溪區”進行了詞典匹配,再進行相關分詞,但是“貴州財經大學”仍然劃分為“貴州”、“財經”、“大學”。Why?

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

4.個性化分詞

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

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

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

【下篇】

詞性標注、實體識別、依存句法分析和語義角色標注及代碼實現

一.詞性標注

詞性標注(Part-Of-Speech tagging, POS tagging)也被稱為語法標注(grammatical tagging)或詞類消疑(word-category disambiguation),是語料庫語言學(corpus linguistics)中將語料庫內單詞的詞性按其含義和上下文內容進行標記的文本數據處理技術。

pyltp詞性標注與分詞模塊相同,將詞性標注任務建模為基于詞的序列標注問題。對于輸入句子的詞序列,模型給句子中的每個詞標注一個標識詞邊界的標記。在LTP中,采用的北大標注集。

完整代碼:

# -*- coding: utf-8 -*-from pyltp import SentenceSplitterfrom pyltp import Segmentorfrom pyltp import Postaggerfrom pyltp import NamedEntityRecognizerldir='AgriKG\ltp\cws.model' #分詞模型dicdir='word' #外部字典text = "貴州財經大學要舉辦大數據比賽嗎?"#中文分詞segmentor = Segmentor() #初始化實例segmentor.load_with_lexicon(ldir, 'word') #加載模型words = segmentor.segment(text) #分詞print(text)print(' '.join(words)) #分詞拼接words = list(words) #轉換listprint(u"分詞:", words)segmentor.release() #釋放模型#詞性標注pdir='AgriKG\ltp\pos.model'pos = Postagger() #初始化實例pos.load(pdir) #加載模型postags = pos.postag(words) #詞性標注postags = list(postags)print(u"詞性:", postags)pos.release() #釋放模型data = {"words": words, "tags": postags}print(data)

輸出結果如下圖所示,“貴州”詞性為“ns”(地理名詞 ),“財經”詞性為“n”(一般名詞),“舉辦”詞性為“v”(動詞),“嗎”詞性為“u”(助詞),“?”詞性為“wp”(標點)。

貴州財經大學要舉辦大數據比賽嗎?貴州 財經 大學 要 舉辦 大數據 比賽 嗎 ?分詞: ['貴州', '財經', '大學', '要', '舉辦', '大數據', '比賽', '嗎', '?']詞性: ['ns', 'n', 'n', 'v', 'v', 'n', 'v', 'u', 'wp']{'words': ['貴州', '財經', '大學', '要', '舉辦', '大數據', '比賽', '嗎', '?'], 'tags':['ns','n','n','v','v','n','v','u','wp']}

具體詞性為:

Tag Description Examplea adjective:形容詞 美麗 b other noun-modifier:其他的修飾名詞 大型, 西式 c conjunction:連詞 和, 雖然 d adverb:副詞 很 e exclamation:感嘆詞 哎 g morpheme 茨, 甥 h prefix:前綴 阿, 偽 i idiom:成語 百花齊放 j abbreviation:縮寫 公檢法 k suffix:后綴 界, 率 m number:數字 一, 第一 n general noun:一般名詞 蘋果 nd direction noun:方向名詞 右側 nh person name:人名 杜甫, 湯姆 ni organization name:公司名 保險公司,中國銀行nl location noun:地點名詞 城郊ns geographical name:地理名詞 北京nt temporal noun:時間名詞 近日, 明代nz other proper noun:其他名詞 諾貝爾獎o onomatopoeia:擬聲詞 嘩啦p preposition:介詞 在, 把,與q quantity:量詞 個r pronoun:代詞 我們u auxiliary:助詞 的, 地v verb:動詞 跑, 學習wp punctuation:標點 ,。!ws foreign words:國外詞 CPUx non-lexeme:不構成詞 萄, 翱zdescriptivewords描寫,敘述的詞瑟瑟,匆匆

二.命名實體識別

命名實體識別(Named Entity Recognition,簡稱NER),又稱作“專名識別”,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。命名實體識別是信息提取、問答系統、句法分析、機器翻譯、面向Semantic Web的元數據標注等應用領域的重要基礎工具,在自然語言處理技術走向實用化的過程中占有重要地位。

在哈工大Pyltp中,NE識別模塊的標注結果采用O-S-B-I-E標注形式,其含義如下(參考):

LTP中的NE 模塊識別三種NE,分別為人名(Nh)、機構名(Ni)、地名(Ns)。

完整代碼:

# -*- coding: utf-8 -*-from pyltp import SentenceSplitterfrom pyltp import Segmentorfrom pyltp import Postaggerfrom pyltp import NamedEntityRecognizerldir='AgriKG\ltp\cws.model' #分詞模型dicdir='word' #外部字典text = "貴州財經大學要舉辦大數據比賽嗎?"#中文分詞segmentor = Segmentor() #初始化實例segmentor.load_with_lexicon(ldir, 'word') #加載模型words = segmentor.segment(text) #分詞print(text)print(' '.join(words)) #分詞拼接words = list(words) #轉換listprint(u"分詞:", words)segmentor.release() #釋放模型#詞性標注pdir='AgriKG\ltp\pos.model'pos = Postagger() #初始化實例pos.load(pdir) #加載模型postags = pos.postag(words) #詞性標注postags = list(postags)print(u"詞性:", postags)pos.release() #釋放模型data = {"words": words, "tags": postags}print(data)print(" ")#命名實體識別nermodel='AgriKG\ltp\ner.model'reg = NamedEntityRecognizer() #初始化命名實體實例reg.load(nermodel) #加載模型netags = reg.recognize(words, postags) #對分詞、詞性標注得到的數據進行實體標識netags = list(netags)print(u"命名實體識別:", netags)#實體識別結果data={"reg": netags,"words":words,"tags":postags}print(data)reg.release()

輸出結果如下圖所示,識別出的三個命名實體分別是:“貴州”(B-Ni)表示一個NE開始-機構名,“財經”(I-Ni)表示一個NE中間-機構名,“大學”(E-Ni)表示一個NE結束-機構名。

PS:雖然導入指定詞典,但“貴州財經大學”分詞仍然被分割,后續研究中。

三.依存句法分析

依存句法是由法國語言學家L.Tesniere最先提出。它將句子分析成一棵依存句法樹,描述出各個詞語之間的依存關系。也即指出了詞語之間在句法上的搭配關系,這種搭配關系是和語義相關聯的。如下圖所示:

哈工大Pyltp的依存句法關系如下圖所示。

參考:

https://ltp.readthedocs.io/zh_CN/latest/appendix.html

完整代碼:

# -*- coding: utf-8 -*-from pyltp import SentenceSplitterfrom pyltp import Segmentorfrom pyltp import Postaggerfrom pyltp import Parserfrom pyltp import NamedEntityRecognizerldir = 'AgriKG\ltp\cws.model' #分詞模型dicdir = 'word' #外部字典text = "貴州財經大學要舉辦大數據比賽嗎?"#中文分詞segmentor = Segmentor() #初始化實例segmentor.load_with_lexicon(ldir, 'word') #加載模型words = segmentor.segment(text) #分詞print(text)print(' '.join(words)) #分詞拼接words = list(words) #轉換listprint(u"分詞:", words)segmentor.release() #釋放模型#詞性標注pdir = 'AgriKG\ltp\pos.model'pos = Postagger() #初始化實例pos.load(pdir) #加載模型postags = pos.postag(words) #詞性標注postags = list(postags)print(u"詞性:", postags)pos.release() #釋放模型data = {"words": words, "tags": postags}print(data)print(" ")#命名實體識別nermodel = 'AgriKG\ltp\ner.model'reg = NamedEntityRecognizer() #初始化命名實體實例reg.load(nermodel) #加載模型netags = reg.recognize(words, postags) #對分詞、詞性標注得到的數據進行實體標識netags = list(netags)print(u"命名實體識別:", netags)#實體識別結果data={"reg": netags,"words":words,"tags":postags}print(data)reg.release() #釋放模型print(" ")#依存句法分析parmodel = 'AgriKG\ltp\parser.model'parser = Parser() #初始化命名實體實例parser.load(parmodel) #加載模型arcs = parser.parse(words, postags) #句法分析#輸出結果print(words)print(" ".join("%d:%s" % (arc.head, arc.relation) for arc in arcs))rely_id = [arc.head for arc in arcs] # 提取依存父節點idrelation = [arc.relation for arc in arcs] # 提取依存關系heads = ['Root' if id == 0 else words[id-1] for id in rely_id] # 匹配依存父節點詞語for i in range(len(words)): print(relation[i] + '(' + words[i] + ', ' + heads[i] + ')')parser.release()

輸出結果如下所示,其中ATT表示定中關系,如“貴州-大學”、“財經-大學”;SBV表示主謂關系,如“大學-舉辦”;ADV表示狀中結果“要-舉辦”;HED表示核心關系“舉辦-Root”,即“舉辦大數據”。

補充:arc.head表示依存弧的父節點詞的索引,arc.relation表示依存弧的關系。arc.head中的ROOT節點的索引是0,第一個詞開始的索引依次為1、2、3。

四.語義角色標注

該部分代碼僅供博友們參考,作者還在深入研究中。

#語義角色標注from pyltp import SementicRoleLabellersrlmodel = 'AgriKG\ltp\pisrl.model'labeller = SementicRoleLabeller() #初始化實例labeller.load(srlmodel) #加載模型words = ['元芳', '你', '怎么', '看']postags = ['nh', 'r', 'r', 'v']arcs = parser.parse(words, postags) #依存句法分析#arcs使用依存句法分析的結果roles = labeller.label(words, postags, arcs) #語義角色標注# 打印結果for role in roles: print(role.index, "".join( ["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments]))labeller.release()#釋放模型

輸出結果如下:

3A0:(1,1)ADV:(2,2)

上面的例子,由于結果輸出一行,所以“元芳你怎么看”有一組語義角色。其謂詞索引為3,即“看”。這個謂詞有三個語義角色,范圍分別是(0,0)即“元芳”,(1,1)即“你”,(2,2)即“怎么”,類型分別是A0、A0、ADV。

希望這篇基礎性文章對你有所幫助,如果有錯誤或不足之處,還請海涵。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據挖掘
    +關注

    關注

    1

    文章

    406

    瀏覽量

    24287
  • nlp
    nlp
    +關注

    關注

    1

    文章

    489

    瀏覽量

    22069
  • 知識圖譜
    +關注

    關注

    2

    文章

    132

    瀏覽量

    7725

原文標題:從0到1 | 手把手教你如何使用哈工大NLP工具——PyLTP!

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    手機設計基本知識哈工大版本(good),非常不錯的!!!

    手機設計基本知識哈工大版本(good),非常不錯的!!!
    發表于 08-10 22:39

    哈工大DSP學習資料

    哈工大DSP學習資料
    發表于 10-16 22:28

    永磁同步電機的振動與噪音-哈工大

    怒上永磁同步電機的振動與噪音-哈工大
    發表于 01-19 16:26

    哈工大《軟件工程》全套課件完整版

    哈工大《軟件工程》全套課件完整版
    發表于 11-07 11:40

    單片機課程(來自哈工大

    送單片機課程(哈工大)![hide] 鏈接:http://pan.baidu.com/s/1o81rMQY 密碼:qvh4[/hide]
    發表于 11-07 19:01

    hanlp和jieba等六大中文分工具的測試對比

    LTP LTP安裝教程[python 哈工大NTP分詞 安裝pyltp 及配置模型(新)如下是測試代碼及結果下面測試的文本上是極易分詞錯誤的文本,分詞的效果在很大程度上就可以提現分詞器的分詞情況
    發表于 02-26 15:00

    哈工大DSP教程

    哈工大DSP教程
    發表于 07-28 10:36 ?130次下載
    <b class='flag-5'>哈工大</b>DSP教程

    哈工大CERP系統

    哈工大CERP系統  java+weblogic實現,比較有學習價值,嚴禁商業使用。
    發表于 03-16 15:53 ?18次下載

    手機設計基本知識_哈工大版本

    手機設計基本知識_哈工大版本(good)。
    發表于 02-25 13:58 ?0次下載

    哈工大機器人積極籌備企業上市 謀求資本更高溢價

    作為一家新興機器人制造企業,哈工大機器人集團發展速度飛快。據哈工大機器人集團工作人員表示,目前哈工大公司正在積極籌備上市工作,未來或引入更多地社會資本參與融資,實現主板IPO或借殼上市。 謀求資本
    發表于 01-13 14:22 ?9907次閱讀

    哈工大模擬數字電路合集

    哈工大模擬數字電路實例合集
    發表于 03-31 08:00 ?0次下載

    哈工大碩士生電力電子技術課件

    哈工大碩士生電力電子技術課件
    發表于 09-06 16:46 ?0次下載

    哈工大四系FPGA上機實驗編程部分

    哈工大四系FPGA上機實驗編程部分
    發表于 10-20 15:52 ?16次下載

    哈工大訊飛聯合實驗室發布基于全詞覆蓋的中文BERT預訓練模型

    全部進行[MASK]。該模型使用了中文維基百科(包括簡體和繁體)進行訓練,并且使用了哈工大語言技術平臺LTP(http://ltp.ai)作為分詞工具
    的頭像 發表于 07-18 14:36 ?6041次閱讀
    <b class='flag-5'>哈工大</b>訊飛聯合實驗室發布基于全詞覆蓋的中文BERT預訓練模型

    哈工大機械制造基礎課件

    哈工大機械制造基礎課件
    發表于 08-08 14:55 ?0次下載
    主站蜘蛛池模板: 国产色综合久久无码有码 | 夜夜澡人人爽人人喊_欧美 夜夜骑夜夜欢 | 两个吃奶一个添下面视频 | 欧美精品中文字幕亚洲专区 | 艳妇臀荡乳欲伦岳TXT下载 | 亚洲精品色情婷婷在线播放 | 好大太快了快插穿子宫了 | 吃奶吸咪咪动态图 | 亚欧洲乱码视频一二三区 | 夜色私人影院永久入口 | 性色AV乱码一区二区三区视频 | 甜性涩爱免费下载 | 九色PORNY真实丨国产大胸 | 亚洲视频在线观看免费 | 久久久欧美国产精品人妻噜噜 | 国产午夜亚洲精品理论片八戒 | 成人在线免费视频播放 | 国产一区91 | 大地影院免费观看视频 | 久久看片网 | 777久久人妻少妇嫩草AV | 在线观看国产小视频 | 榴莲推广APP网站入口官网 | 青柠在线电影高清免费观看 | 97在线免费观看视频 | 拔萝卜在线高清观看视频 | 办公室丝袜老师在线观看 | 色综合伊人色综合网站下载 | 中文字幕无码亚洲视频 | 国产在线精品一区二区网站免费 | 成年视频国产免费观看 | 欧美激情精品久久久久久不卡 | 国产精品久久久精品日日 | tube69hdxxxx日本| 九九热这里有精品 | 九九热在线观看视频 | 久久9精品区-无套内射无码 | 久久免费精品一区二区 | 午夜DJ国产精华日本无码 | 87.6在线收听| 国产一级毛片在线 |