語言雲的調用與標記含義

来源:http://www.cnblogs.com/yydouying/archive/2016/10/21/5985755.html
-Advertisement-
Play Games

前言 LTP語言雲平臺 不支持離線調用; 支持分詞、詞性標註、命名實體識別、依存句法分析、語義角色標註; 不支持自定義詞表,但是你可以先用其他支持自定義分詞的工具(例如中科院的NLPIR)把文本進行分詞,再讓ltp幫你標註 支持C#、Go、Java、JavaScript、Nodejs、PHP、Pyt ...


前言

LTP語言雲平臺

      不支持離線調用;

  支持分詞、詞性標註、命名實體識別、依存句法分析、語義角色標註;

  不支持自定義詞表,但是你可以先用其他支持自定義分詞的工具(例如中科院的NLPIR)把文本進行分詞,再讓ltp幫你標註

     支持C#、Go、Java、JavaScript、Nodejs、PHP、Python、R、Ruby等語言調用;  

     還有一些錯誤響應頻率限制重要說明(這幾個我至今也沒用到);

正文

官方網址:http://www.ltp-cloud.com/

使用文檔:http://www.ltp-cloud.com/document/

線上演示:http://www.ltp-cloud.com/demo/

各種語言調用實例可以到Github上下載:https://github.com/HIT-SCIR/ltp-cloud-api-tutorial

例如Python版本的:https://github.com/HIT-SCIR/ltp-cloud-api-tutorial/tree/master/Python

Step1:註冊

這個網址申請一個API key,稍後會用到;

Step2:一個簡單的例子(java版)

(1)複製代碼:從Github上複製一段代碼(取決於你使用的語言和所需的功能)

(2)修改代碼:

  <1>把 api_key = "YourApiKey" 中的 "YourApiKey" 修改成你Step1申請的API Key;

  <2>把 text = "我愛北京天安門" 修改成你要處理的文本;

  <3>根據需求設置不同的參數(其實只需要api_key,text,pattern,format四個參數就夠了,仔細看下pattern):

   

 1 public class SimpleAPI {
 2     public static void main(String[] args) throws IOException {
 3         if (args.length < 1 || !(args[0].equals("xml") 
 4                                 || args[0].equals("json") 
 5                                 || args[0].equals("conll"))) {
 6             System.out.println("Usage: java SimpleAPI [xml/json/conll]");
 7             //return;
 8         }
 9         System.out.println("yst");
10 
11         String api_key = "y8B2P7W97QluyxiokMCssbmu0fBXbCwrgzgPOM7v";
12         String pattern = "srl";
13         String format  = "xml";//"xml"
14         String text    = "我愛中國,中華文化歷史悠久";
15         text = URLEncoder.encode(text, "utf-8");
16 
17         URL url     = new URL("http://api.ltp-cloud.com/analysis/?"
18                               + "api_key=" + api_key + "&"
19                               + "text="    + text    + "&"
20                               + "format="  + format  + "&"
21                               + "pattern=" + pattern);
22         URLConnection conn = url.openConnection();
23         conn.connect();
24 
25         BufferedReader innet = new BufferedReader(new InputStreamReader(
26                                 conn.getInputStream(),
27                                 "utf-8"));
28         String line;
29         while ((line = innet.readLine())!= null) {
30             System.out.println(line);
31         }
32         innet.close();
33     }
34 }

官網搬過來

哈工大訊飛語言雲 由哈工大 和科大訊飛 聯合研發的中文自然語言處理雲服務平臺。結合了哈工大“語言技術平臺——LTP” 高效、精準的自然語言處理核心技術和訊飛公司在全國性大規模雲計算服務方面的 豐富經驗,顯著提升 LTP 對外服務的穩定性和吞吐量,為廣大用戶提供電信級穩定 性和支持全國範圍網路接入的語言雲服務,有效支持包括中小企業在內開發者的商 業應用需要。

作為基於雲端的服務,語言雲具有如下一些優勢:

  • 免安裝:用戶無需調用靜態庫或下載模型文件,只需要根據API參數集構造HTTP請求即可線上獲得分析結果。在新版API中,亦不需要下載SDK。
  • 省硬體:用戶不需要購買高性能的機器,即可快捷的獲得分析結果。
  • 跨平臺、跨編程語言:用戶只需要根據所使用語言的特點發送HTTP請求即可獲取分析結果,因而幾乎不依賴於操作系統平臺和編程語言。

在運算資源有限,編程語言受限的情況下,語言雲無疑是用戶進行語言分析更好的選擇。

有關更多語言雲API的使用方法,請參考:http://www.ltp-cloud.com/document/

分詞

中文分詞 (Word Segmentation, WS) 指的是將漢字序列切分成詞序列。 因為在漢語中,詞是承載語義的最基本的單元。分詞是信息檢索、文本分類、情感分析等多項中文自然語言處理任務的基礎。

例如,句子

國務院總理李克強調研上海外高橋時提出,支持上海積極探索新機制。

正確分詞的結果是

國務院/ 總理/ 李克強/ 調研/ 上海/ 外高橋/ 時/ 提出/ ,/ 支持/ 上海/ 積極/ 探索/ 新/ 機制/ 。

如果分詞系統給出的切分結果是

國務院/ 總理/ 李克/ 強調/ 研/ 上海 …

因為強調也是一個常見的詞,所以很可能出現這種分詞結果。 那麼,如果想要搜索和李克強相關的信息時,搜索引擎就很難檢索到該文檔了。

切分歧義是分詞任務中的主要難題。 LTP的分詞模塊基於機器學習框架,可以很好地解決歧義問題。 同時,模型中融入了詞典策略,使得LTP的分詞模塊可以很便捷地加入新詞信息。

詞性標註

詞性標註(Part-of-speech Tagging, POS)是給句子中每個詞一個詞性類別的任務。 這裡的詞性類別可能是名詞、動詞、形容詞或其他。 下麵的句子是一個詞性標註的例子。 其中,v代表動詞、n代表名詞、c代表連詞、d代表副詞、wp代表標點符號。

國務院/ni 總理/n 李克強/nh 調研/v 上海/ns 外高橋/ns 時/n 提出/v ,/wp 支持/v 上海/ns 積極/a 探索/v 新/a 機制/n 。/wp

詞性作為對詞的一種泛化,在語言識別、句法分析、信息抽取等任務中有重要作用。 比方說,在抽取“歌曲”的相關屬性時,我們有一系列短語:

兒童歌曲
歡快歌曲
各種歌曲
悲傷歌曲
...

如果進行了詞性標註,我們可以發現一些能夠描述歌曲屬性的模板,比如

[形容詞]歌曲
[名詞]歌曲

[代詞]歌曲往往不是描述歌曲屬性的模板。

詞性標記集:LTP中採用863詞性標註集,其各個詞性含義如下表:

TagDescriptionExampleTagDescriptionExample
a adjective 美麗 ni organization name 保險公司
b other noun-modifier 大型, 西式 nl location noun 城郊
c conjunction 和, 雖然 ns geographical name 北京
d adverb nt temporal noun 近日, 明代
e exclamation nz other proper noun 諾貝爾獎
g morpheme 茨, 甥 o onomatopoeia 嘩啦
h prefix 阿, 偽 p preposition 在, 把
i idiom 百花齊放 q quantity
j abbreviation 公檢法 r pronoun 我們
k suffix 界, 率 u auxiliary 的, 地
m number 一, 第一 v verb 跑, 學習
n general noun 蘋果 wp punctuation ,。!
nd direction noun 右側 ws foreign words CPU
nh person name 杜甫, 湯姆 x non-lexeme 萄, 翱

命名實體識別

命名實體識別 (Named Entity Recognition, NER) 是在句子的詞序列中定位並識別人名、地名、機構名等實體的任務。 如之前的例子,命名實體識別的結果是:

國務院 (機構名) 總理李克強 (人名) 調研上海外高橋 (地名) 時提出,支持上海 (地名) 積極探索新機制。

命名實體識別對於挖掘文本中的實體進而對其進行分析有很重要的作用。

命名實體識別的類型一般是根據任務確定的。LTP提供最基本的三種實體類型人名、地名、機構名的識別。 用戶可以很容易將實體類型拓展成品牌名、軟體名等實體類型。

依存句法分析

依存語法 (Dependency Parsing, DP) 通過分析語言單位內成分之間的依存關係揭示其句法結構。 直觀來講,依存句法分析識別句子中的“主謂賓”、“定狀補”這些語法成分,並分析各成分之間的關 系。仍然是上面的例子,其分析結果為:

從分析結果中我們可以看到,句子的核心謂詞為“提出”,主語是“李克強”,提出的賓語是“支持上海…”,“調研…時”是“提出”的 (時間) 狀語,“李克強”的修飾語是“國務院總理”,“支持”的賓語是“探索 新機制”。有了上面的句法分析結果,我們就可以比較容易的看到,“提出者”是“李克強”,而不是“上海”或“外高橋”,即使它們都是名詞,而且距離“提出”更近。

依存句法分析標註關係 (共14種) 及含義如下:

關係類型TagDescriptionExample
主謂關係 SBV subject-verb 我送她一束花 (我 <-- 送)
動賓關係 VOB 直接賓語,verb-object 我送她一束花 (送 --> 花)
間賓關係 IOB 間接賓語,indirect-object 我送她一束花 (送 --> 她)
前置賓語 FOB 前置賓語,fronting-object 他什麼書都讀 (書 <-- 讀)
兼語 DBL double 他請我吃飯 (請 --> 我)
定中關係 ATT attribute 紅蘋果 (紅 <-- 蘋果)
狀中結構 ADV adverbial 非常美麗 (非常 <-- 美麗)
動補結構 CMP complement 做完了作業 (做 --> 完)
併列關係 COO coordinate 大山和大海 (大山 --> 大海)
介賓關係 POB preposition-object 在貿易區內 (在 --> 內)
左附加關係 LAD left adjunct 大山和大海 (和 <-- 大海)
右附加關係 RAD right adjunct 孩子們 (孩子 --> 們)
獨立結構 IS independent structure 兩個單句在結構上彼此獨立
核心關係 HED head 指整個句子的核心

語義角色標註

語義角色標註 (Semantic Role Labeling, SRL) 是一種淺層的語義分析技術,標註句子中某些短語為給定謂詞的論元 (語義角色) ,如施事、受事、時間和地點等。其能夠對問答系統、信息抽取和機器翻譯等應用產生推動作用。 仍然是上面的例子,語義角色標註的結果為:

其中有三個謂詞提出調研探索。以探索為例,積極是它的方式(一般用ADV表示),而新機制則是它的受事(一般用A1表示)

核心的語義角色為 A0-5 六種,A0 通常表示動作的施事,A1通常表示動作的影響等,A2-5 根據謂語動詞不同會有不同的語義含義。其餘的15個語義角色為附加語義角色,如LOC 表示地點,TMP 表示時間等。附加語義角色列表如下:

標記 說明
ADV adverbial, default tag ( 附加的,預設標記 )
BNE beneficiary ( 受益人 )
CND condition ( 條件 )
DIR direction ( 方向 )
DGR degree ( 程度 )
EXT extent ( 擴展 )
FRQ frequency ( 頻率 )
LOC locative ( 地點 )
MNR manner ( 方式 )
PRP purpose or reason ( 目的或原因 )
TMP temporal ( 時間 )
TPC topic ( 主題 )
CRD coordinated arguments ( 併列參數 )
PRD predicate ( 謂語動詞 )
PSR possessor ( 持有者 )
PSE possessee ( 被持有 )

各模塊技術指標


分詞

中文分詞指的是將漢字序列切分成詞序列的問題。 因為在漢語中,詞是承載語義的最基本的單元,分詞成了是包括信息檢索、文本分類、情感分析等多項中文自然語言處理任務的基礎。

由於在自然語言處理框架中的基礎地位,很多學者對於中文分詞任務進行了深入的研究。 主流的分詞演算法包括基於詞典匹配的方法和基於統計機器學習的方法。 LTP分詞模塊使用的演算法將兩種方法進行了融合,演算法既能利用機器學習較好的消歧能力,又能靈活地引入詞典等外部資源。

在LTP中,我們將分詞任務建模為基於字的序列標註問題。 對於輸入句子的字序列,模型給句子中的每個字標註一個標識詞邊界的標記。

同時,為了提高互聯網文本特別是微博文本的處理性能。我們在分詞系統中加入如下一些優化策略:

  • 英文、URI一類特殊詞識別規則
  • 利用空格等自然標註線索
  • 在統計模型中融入詞典信息
  • 從大規模未標註數據中統計字間互信息、上下文豐富程度

分詞模塊在人民日報數據集上的性能如下

    • 準確率
  P R F
開發集 0.973152 0.972430 0.972791
測試集 0.972316 0.970354 0.972433

詞性標註

與分詞模塊相同,我們將詞性標註任務建模為基於詞的序列標註問題。 對於輸入句子的詞序列,模型給句子中的每個詞標註一個詞性標記。 在LTP中,我們採用的北大標註集。

詞性標註模塊在人民日報數據集上的性能如下。

  • 語料信息:人民日報1998年2月-6月(後10%數據作為開發集)作為訓練數據,1月作為測試數據。
  • 準確率:
     P
    開發集 0.979621
    測試集 0.978337
  • 運行時記憶體:291m
  • 速度:106.14k/s

命名實體識別

與分詞模塊相同,我們將命名實體識別建模為基於詞的序列標註問題。對於輸入句子的詞序列,模型給句子中的每個詞標註一個標識命名實體邊界和實體類別的標記。在LTP中,我們支持人名、地名、機構名三類命名實體的識別。

基礎模型在幾種數據集上的性能如下:

  • 語料信息:人民日報1998年1月做訓練(後10%數據作為開發集),6月前10000句做測試作為訓練數據。
  • 準確率
    PRF
    開發集 0.924149 0.909323
    測試集 0.939552 0.936372
  • 運行時記憶體:21m

依存句法分析

基於圖的依存分析方法由McDonald首先提出,他將依存分析問題歸結為在一個有向圖中尋找最大生成樹(Maximum Spanning Tree)的問題。

在依存句法分析模塊中,LTP分別實現了

  • 一階解碼(1o)
  • 二階利用子孫信息解碼(2o-sib)
  • 二階利用子孫和父子信息(2o-carreras)

在LDC數據集上,三種不同解碼方式對應的性能如下表所示。

model1o 2o-sib 2o-carreras 
  Uas Las Uas Las Uas Las
Dev 0.8190 0.7893 0.8501 0.8213 0.8582 0.8294
Test 0.8118 0.7813 0.8421 0.8106 0.8447 0.8138
Speed 49.4 sent./s   9.4 sent./s   3.3 sent./s  
Mem. 0.825g   1.3g   1.6g  

語義角色標註

 

在LTP中,我們將SRL分為兩個子任務,其一是謂詞的識別(Predicate Identification, PI),其次是論元的識別以及分類(Argument Identification and Classification, AIC)。對於論元的識別及分類,我們將其視作一個聯合任務,即將“非論元”也看成是論元分類問題中的一個類別。在SRL系統中,我們在最大熵模型中引入 L1正則,使得特征維度降至約為原來的1/40,從而大幅度地減小了模型的記憶體使用率,並且提升了預測的速度。同時,為了保證標註結果滿足一定的約束條 件,系統增加了一個後處理過程。

在CoNLL 2009評測數據集上,利用LTP的自動詞性及句法信息,SRL性能如下所示。

PrecisionRecallF-ScoreSpeedMem.
0.8444 0.7234 0.7792 41.1 sent./s 94M(PI+AIC)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • UIImage+YYWebImage是YYWebImage(https://github.com/ibireme/YYWebImage)中的一個分類,這個分類封裝了一些image常用的變化方法,非常值得學習下源碼~(我看的版本是1.0.5) 預備知識: 1,這裡大量使用了CoreGraphics的方 ...
  • ...
  • 一、資料庫管理-- 1.登陸資料庫 -- 2.查看資料庫伺服器所有資料庫 -- 3.創建資料庫 -- 4.創建帶有設置字元集的資料庫 -- 5.刪除資料庫 -- 6.查看預設字元集 -- 7.修改資料庫字元集 二、數據表的管理-- 1.選中資料庫 -- 2.查看表(一定要在選中資料庫之後) -- 3 ...
  • 全部文字見 http://www.centoscn.com/mysql/2016/0315/6844.html CentOS 7的yum源中沒有正常安裝mysql時的mysql-sever文件,需要去官網上下載 提示 Is this ok [y/d/N] 時輸入 y 然後開始聯網下包更新。。 成功安 ...
  • mysql datetime查詢異常 異常:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp (2011-05-25 11:38:40) 描述:非空無預設值的Datetime類型欄位,查詢時程式報以下錯誤 ...
  • 出處:kelvin19840813 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是對博主最大的鼓勵,感謝您的認真閱讀。本文版權歸作者所有,歡迎轉載,但請保留該聲明。 資料庫版本是MySQL 5.6.23 為了防止泄密特意遮住表名字, 還有防止一些爬蟲 ...
  • 最近做一個項目,需要用centos做數據伺服器,用mysql資料庫,就需要安裝mysql資料庫,之前沒接觸過centos,因此什麼也不懂,就從網上也查了很多資料,都覺得不是最好的方法。最後結合mysql官方資料和網友的資料,最後用rpm方式安裝,並總結給其他人以參考。 首先打開mysql管網,找到“ ...
  • sql資料庫實現分組並取每組的前1(幾)條數據 測試數據準備工作: 根據某一個欄位分組取最大(小)值所在行的數據: 創建表並且插入數據 1、根據Name分組取Val最大的值所在行的數據。 Sql語句代碼如下: 上面的5種方法的sql執行執行結果一樣,結果如下圖: 2、根據Name分組取Val最小的值 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...