zoukankan      html  css  js  c++  java
  • 【语言处理与Python】8.1一些语法困境

    前面章节的简单总结

    前面的学习中,主要焦点在与 词汇。

    如何识别,分析词汇的结构、分配词汇类别、以及获得词汇的含义。

    还有如何识别词汇序列或者n-gram的模式。

    8.1一些语法困境

    语言数据和无限可能性

    每天都在增加电子语言,数据量是非常大的;

    句子的组合具有无线的可能性;

    普遍存在的歧义

    让我们仔细看看短语I shot an elephant in mypajamas中的歧义。

    这里有一个文法:

    >>>groucho_grammar= nltk.parse_cfg("""
    ... S -> NPVP
    ... PP-> PNP
    ... NP-> DetN| DetNPP| 'I'
    ... VP-> VNP| VPPP
    ... Det-> 'an' | 'my'
    ... N-> 'elephant' | 'pajamas'
    ... V-> 'shot'
    ... P -> 'in'
    ... """)

    经过这个文法分析,是有歧义的:

    >>>sent = ['I', 'shot', 'an', 'elephant', 'in', 'my', 'pajamas']
    >>>parser = nltk.ChartParser(groucho_grammar)
    >>>trees = parser.nbest_parse(sent)
    >>>for tree in trees:
    ... print tree
    (S
    (NP I)
    (VP
    (V shot)
    (NP (Det an) (N elephant) (PP (P in) (NP (Det my)(N pajamas))))))
    (S
    (NP I)
    (VP
    (VP (V shot) (NP (Det an) (N elephant)))
    (PP (P in) (NP (Det my)(N pajamas)))))

    有两种分析方式,可以用树来表示:

    image

  • 相关阅读:
    程序员如何利用空闲时间挣零花钱
    常见的数据交互之跳转页面传值
    一个能让cin和scanf 一样快的方法:
    HDU 4901 DP
    POJ 2823 线段树 Or 单调队列
    POJ 3264 线段树 ST
    POJ 3468 线段树+状压
    POJ 2777 线段树
    QQ 临时会话+图标 HTML代码
    POJ 1463 Strategic game
  • 原文地址:https://www.cnblogs.com/createMoMo/p/3109485.html
Copyright © 2011-2022 走看看