6 练习

  1. ☼ 需要什么样的限制才能正确分析词序列,如 I am happy 和 she is happy 而不是you is happy 或they am happy?实现英语中动词 be 的现在时态范例的两个解决方案,首先以语法(6)作为起点,然后以语法 (18)为起点。

  2. ☼ 开发1.1中语法的变体,使用特征<cite>count</cite>来区分下面显示的句子:

    1. fs1 = nltk.FeatStruct("[A = ?x, B= [C = ?x]]")
    2. fs2 = nltk.FeatStruct("[B = [D = d]]")
    3. fs3 = nltk.FeatStruct("[B = [C = d]]")
    4. fs4 = nltk.FeatStruct("[A = (1)[B = b], C-&gt;(1)]")
    5. fs5 = nltk.FeatStruct("[A = (1)[D = ?x], C = [E -&gt; (1), F = ?x] ]")
    6. fs6 = nltk.FeatStruct("[A = [D = d]]")
    7. fs7 = nltk.FeatStruct("[A = [D = d], C = [F = [D = d]]]")
    8. fs8 = nltk.FeatStruct("[A = (1)[D = ?x, G = ?x], C = [B = ?x, E -&gt; (1)] ]")
    9. fs9 = nltk.FeatStruct("[A = [B = b], C = [E = [G = e]]]")
    10. fs10 = nltk.FeatStruct("[A = (1)[B = b], C -&gt; (1)]")

    在纸上计算下面的统一的结果是什么。(提示:你可能会发现绘制图结构很有用。)

    1. fs1 and fs2
    2. fs1 and fs3
    3. fs4 and fs5
    4. fs5 and fs6
    5. fs5 and fs7
    6. fs8 and fs9
    7. fs8 and fs10

    用 Python 检查你的答案。

  3. ◑ 列出两个包含[A=?x, B=?x]的特征结构。

  4. ◑ 忽略结构共享,给出一个统一两个特征结构的非正式算法。

  5. ◑ 扩展3.2中的德语语法,使它能处理所谓的动词第二顺位结构,如下所示:

    | (58) | | Heute sieht der Hund die Katze. |

  6. ◑ 同义动词的句法属性看上去略有不同(Levin, 1993)。思考下面的动词 loaded、filled 和 dumped 的语法模式。你能写语法产生式处理这些数据吗?

    | (59) | |

    | a. | | The farmer loaded the cart with sand |

    | b. | | The farmer loaded sand into the cart |

    | c. | | The farmer filled the cart with sand |

    | d. | | *The farmer filled sand into the cart |

    | e. | | *The farmer dumped the cart with sand |

    | f. | | The farmer dumped sand into the cart |

    |

  7. ★ 形态范例很少是完全正规的,矩阵中的每个单元的意义有不同的实现。例如,词位 walk 的现在时态词性变化只有两种不同形式:第三人称单数的 walks 和所有其他人称和数量的组合的 walk。一个成功的分析不应该额外要求 6 个可能的形态组合中有 5 个有相同的实现。设计和实施一个方法处理这个问题。

  8. ★ 所谓的核心特征在父节点和核心孩子节点之间共享。例如,TENSE是核心特征,在一个VP和它的核心孩子V之间共享。更多细节见(Gazdar, Klein, & and, 1985)。我们看到的结构中大部分是核心结构——除了SUBCATSLASH。由于核心特征的共享是可以预见的,它不需要在语法产生式中明确表示。开发一种方法自动计算核心结构的这种规则行为的比重。

  9. ★ 扩展 NLTK 中特征结构的处理,允许统一值为列表的特征,使用这个来实现一个 HPSG 风格的子类别分析,核心类别的SUBCAT是它的补语的类别和它直接父母的SUBCAT值的连结。

  10. ★ 扩展 NLTK 的特征结构处理,允许带未指定类别的产生式,例如S[-INV] --&gt; ?x S/?x

  11. ★ 扩展 NLTK 的特征结构处理,允许指定类型的特征结构。

  12. ★ 挑选一些(Huddleston & Pullum, 2002)中描述的文法结构,建立一个基于特征的语法计算它们的比例。

关于本文档…

针对 NLTK 3.0 进行更新。本章来自于 Natural Language Processing with PythonSteven Bird, Ewan KleinEdward Loper,Copyright © 2014 作者所有。本章依据 Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License [http://creativecommons.org/licenses/by-nc-nd/3.0/us/] 条款,与 自然语言工具包 [http://nltk.org/] 3.0 版一起发行。

本文档构建于星期三 2015 年 7 月 1 日 12:30:05 AEST