国产探花免费观看_亚洲丰满少妇自慰呻吟_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            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平远县| 寿阳县| 双柏县| 桐乡市| 黎平县| 玉山县| 永春县| 巴青县| 弥渡县| 和硕县| 台安县| 芜湖县| 罗田县| 竹溪县| 中方县| 桐柏县| 东辽县| 冀州市| 泾源县| 屏边| 沙田区| 那坡县| 东平县| 武清区| 泽库县| 婺源县| 永福县| 库尔勒市| 桃江县| 三都| 富源县| 工布江达县| 自贡市| 芮城县| 房产| 长沙县| 贵德县| 荃湾区| 沿河| 尚义县| 莱阳市|