語言雲的調用與標記含義

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...