句子的依賴結構表如今哪些單詞依賴哪些單詞。單詞之間的這種關係及能夠表示爲優先級之間的關係等。緩存
一般狀況下,對於一個輸入句子:\(S=w_{0} w_{1} \dots w_{n}\)。 咱們用 \(w_{0}\) 來表示 ROOT,咱們將這個句子轉換成一個圖 G。網絡
依賴性解析一般分爲訓練與預測兩步:編碼
該方法就是經過訓練數據訓練一個狀態機,經過狀態機轉換對源語句進行解析。spa
這個轉換的系統本質也是一個狀態機,可是不一樣的是,對於一個初始狀態,會有多個終止狀態。code
對於每個源語句 \(S=w_{0} w_{1} \dots w_{n}\) 每一個狀態能夠表示成三部分 \(c=(\sigma, \beta, A)\) 。blog
神經以來解析的效果要好於傳統的方法。主要區別是神經依賴解析的特徵表示。io
咱們描述的模型使用 arc 系統做爲變換,咱們的目的就是將原序列變成一個目的序列。就是完成解析樹。這個過程能夠看做是一個 encode 的過程。class
第一步就是要進行特徵的選擇,對於神經網絡的輸入,咱們須要定義一些特徵,通常有如下這些:select
\(S_{w o r d}\):S 中一些單詞的向量表示神經網絡
\(S_{\text {tag}}\):S 中一些單詞的 Part-of-Speech (POS) 標籤,POS 標籤包含一個小的離散的集合:\(\mathcal{P}=\{N N, N N P, N N S, D T, J J, \dots\}\)
\(S_{l a b el}\):S 中一些單詞的 arc-labels ,這個標籤包含一個小的離散集合,描述依賴關係:\(\mathcal{L}=\{\) $amod, tmod $, \(n s u b j, c s u b j, d o b j\), \(\ldots\}\)
在神經網絡中,咱們仍是首先會對這個輸入處理,將這些編碼從 one-hot 編碼變成稠密的向量編碼
對於單詞的表示咱們使用 \(e_{i}^{w} \in \mathbb{R}^{d}\)。使用的轉換矩陣就是 \(E^{w} \in \mathbb{R}^{d \times N_{w}}\)。其中 \(N_w\) 表示字典的大小。\(e_{i}^{t}, e_{j}^{l} \in \mathbb{R}^{d}\) 分別表示第 \(i\) 個POS標籤與第 \(j\) 個ARC 標籤。對應的矩陣就是 \(E^{t} \in \mathbb{R}^{d \times N_{t}}\) and \(E^{l} \in \mathbb{R}^{d \times N_{l}}\)。其中 \(N_t\) 和 \(N_L\) 分別表示全部的 POS標籤 與 ARC標籤的個數。咱們用 \(S^{w}, S^{t}, S^{l}\) 來表示 word, POS,ARC 的信息。
例如對於上面的這個圖:
\(S_{tag}= \left\{l c_{1}\left(s_{2}\right) . t, s_{2} .t, r c_{1}\left(s_{2}\right) . t, s_{1} .t\right\}\)。而後咱們將這些信息變成輸入層的向量,好比對於單詞來講,\(x^{w}=\left[e_{w_{1}}^{w} ; e_{w_{2}}^{w} ; \ldots e_{w_{n} w}^{w}\right]\)。其中 \(S_{word}=\left\{w_{1}, \ldots, w_{n_w}\right\}\),表示輸入層的信息。一樣的方式,咱們能夠獲取到 \(x^t\) 與 \(x^l\)。而後咱們通過一個隱含層,這個比較好理解:
\[ h=\left(W_{1}^{w} x^{w}+W_{1}^{t} x^{t}+W_{1}^{l} x^{l}+b_{1}\right)^{3} \]
而後再通過一個 \(softmax\) 的輸出層 \(p=\operatorname{softmax}\left(W_{2} h\right)\), 其中 \(W_2\) 是一個輸出的矩陣,\(W_{2} \in \mathbb{R}|\mathcal{T}| \times d_{h}\)。
就像單詞的詞典同樣,咱們對 POS 與 ARC 也有一個集合,其中 \(\mathcal{P}=\{\mathrm{NN}, \mathrm{NNP} ,\mathrm{NNS}, \mathrm{DT}, J J, \ldots \}\) 表示單詞的一些性質, 例如 \(NN\) 表示單數名詞。對於 \(\mathcal{L}=\{\)$ amod, tmod, nsubj, csubj, dobj$, \(\ldots\}\)表示單詞間的關係。