国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

僅用500行Python代碼實現一個英文解析器的教程

2020-02-23 00:30:58
字體:
來源:轉載
供稿:網友

語法分析器描述了一個句子的語法結構,用來幫助其他的應用進行推理。自然語言引入了很多意外的歧義,以我們對世界的了解可以迅速地發現這些歧義。舉一個我很喜歡的例子:

20154295647681.jpg (720×307)

正確的解析是連接“with”和“pizza”,而錯誤的解析將“with”和“eat”聯系在了一起:

20154295740057.jpg (1491×436)

過去的一些年,自然語言處理(NLP)社區在語法分析方面取得了很大的進展?,F在,小小的 Python 實現可能比廣泛應用的 Stanford 解析器表現得更出色。

20154295840597.jpg (394×100)

文章剩下的部分首先設置了問題,接著帶你了解為此準備的簡潔實現。parser.py 代碼中的前 200 行描述了詞性的標注者和學習者(這里)。除非你非常熟悉 NLP 方向的研究,否則在研究這篇文章之前至少應該略讀。

Cython 系統和 Redshift 是為我目前的研究而寫的。和麥考瑞大學的合同到期后,我計劃六月份對它進行改進,用于一般用途。目前的版本托管在 GitHub 上。
問題描述

在你的手機中輸入這樣一條指令是非常友善的:

Set volume to zero when I'm in a meeting, unless John's school calls.

接著進行適當的策略配置。在 Android 系統上,你可以應用 Tasker 做這樣的事情,而 NL 接口會更好一些。接收可以編輯的語義表示,你就能了解到它認為你表達的意思,并且可以修正他的想法,這樣是特別友善的。

這項工作有很多問題需要解決,但一些種類的句法形態絕對是必要的。我們需要知道:

Unless John's school calls, when I'm in a meeting, set volume to zero

是解析指令的又一種方式,而

Unless John's school, call when I'm in a meeting

表達了完全不同的意思。

依賴解析器返回一個單詞與單詞間的關系圖,使推理變得更容易。關系圖是樹形結構,有向邊,每個節點(單詞)有且僅有一個入弧(頭部依賴)。

用法示例:
 

>>> parser = parser.Parser()>>> tokens = "Set the volume to zero when I 'm in a meeting unless John 's school calls".split()>>> tags, heads = parser.parse(tokens)>>> heads[-1, 2, 0, 0, 3, 0, 7, 5, 7, 10, 8, 0, 13, 15, 15, 11]>>> for i, h in enumerate(heads):...  head = tokens[heads[h]] if h >= 1 else 'None'...  print(tokens[i] + ' <-- ' + head])Set <-- Nonethe <-- volumevolume <-- Setto <-- Setzero <-- towhen <-- SetI <-- 'm'm <-- whenin <-- 'ma <-- meetingmeeting <-- inunless <-- SetJohn <-- 's's  <-- callsschool <-- callscalls <-- unless            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安多县| 和林格尔县| 南召县| 上林县| 西青区| 广安市| 靖安县| 东宁县| 华宁县| 额敏县| 寻甸| 赣州市| 策勒县| 龙井市| 紫金县| 宜阳县| 孟村| 信阳市| 定远县| 通河县| 阿图什市| 象州县| 紫阳县| 白山市| 重庆市| 策勒县| 渭南市| 保德县| 缙云县| 庆云县| 遂昌县| 延庆县| 大厂| 博兴县| 怀仁县| 吉木萨尔县| 乐亭县| 凤台县| 平果县| 施甸县| 九寨沟县|