摘要: 这一节,通过翻译自然语言表达式为一阶逻辑来表示它们的意思。 并不是所有的自然语言语义都可以用一阶逻辑来表示。 句法 一阶逻辑保留了所有命题逻辑的布尔运算符但是它增加了一些重要的新机制。 1、命题被分析成谓词和参数。 一阶逻辑的标准构造规则承认以下术语:独立变量、独立常量、带不同数量的参数的谓词 例如: Angus walks可以被形式化为walk(angus),Angus se... 阅读全文
posted @ 2013-06-04 21:25 createMoMo 阅读(2251) 评论(0) 推荐(0) 编辑
摘要: 10.1自然语言理解 查询数据库 如果有人提出一个问题: Which country is Athens in? 得到的回答应该是: Greece. 这个数据可以通过数据库语言得到答案: SELECT Country FROM city_table WHERE City= 'athens'这里有一个文法,可以把句子转换成SQL语句: >>>nltk.data.show_c... 阅读全文
posted @ 2013-06-04 10:19 createMoMo 阅读(1305) 评论(0) 推荐(0) 编辑
摘要: 9.2处理特征结构 这一节内容为如何构建特征结构以及在NLTK中操作。 NLTK提供了特征结构使用的构造函数FeatStruct()声明。 >>>fs1 = nltk.FeatStruct(TENSE='past',NUM='sg')>>>print fs1[ NUM = 'sg' ][ TENSE= 'past' ]将特征结构作为图来查看往往是有用的(有向无环图)也会出现结构共享,或... 阅读全文
posted @ 2013-06-03 21:41 createMoMo 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 为了获得更大的灵活性,我们改变我们对待文法类别,如S,NP,V的方式,我们将这些原子标签分解为类似字典的结构,以便可以提取一系列的值作为特征。 9.1文法特征 先从一个简单的例子开始,使用字典存储特征和他们的值。 >>>kim = {'CAT':'NP', 'ORTH': 'Kim', 'REF': 'k'}>>>chase = {'CAT':'V', 'ORTH': 'chased'... 阅读全文
posted @ 2013-06-02 20:36 createMoMo 阅读(634) 评论(4) 推荐(0) 编辑
摘要: 短语结构文法是关于词和词序列如何结合起来形成句子成分的。 依存文法是一个独特的和互补的方式,集中关注的是词与其他词之间的关系。依存关系是一个中心词与它的依赖之间的二元对称关系。一个句子的中心通常是动词,所有其他词要么依赖于中心词,要么依赖路径与它联通。 依赖关系表示是一个加标签的有向图,其中节点是词汇项,加标签的弧表示依赖关系,从中心词到依赖。 图中显示了一个依存关系图,箭头从中心词指向它们... 阅读全文
posted @ 2013-06-02 15:38 createMoMo 阅读(2342) 评论(0) 推荐(0) 编辑
摘要: 为什么要使用左角表? 一般的自顶向下的分析法中存在回溯现象,这种严重的限制了分析法,构造了推导树,但是有的时候会出现搜索空的情况,使分析效率很低。为了提高自顶向下的分析效率,减少盲目性,可以给CFG文法建立一个左角表(left-corner table)。 左角表中存有什么? 例如这个文法: G = {Vn , Vt , S , P}Vn = {S , NP , VP ,... 阅读全文
posted @ 2013-06-01 23:18 createMoMo 阅读(3423) 评论(0) 推荐(0) 编辑
摘要: 8.2文法有什么用? 超越n-grams 用bigrams中的频率信息生成句子,短的时候可以接收,但是长的时候就显得无法接受。 我们系统地可以用较短的序列替代较长的序列,并使其依然符合语法规则。 例如下面这句话: 我们可以为这幅图上添上文法类别标签。 NP为名词短语;VP为动词短语;PP为介词短语; 用树来表示: 句子可以有任意的长度。短语结构树可以有任意深度。 在下... 阅读全文
posted @ 2013-06-01 22:30 createMoMo 阅读(1357) 评论(0) 推荐(0) 编辑
摘要: 前面章节的简单总结 前面的学习中,主要焦点在与 词汇。 如何识别,分析词汇的结构、分配词汇类别、以及获得词汇的含义。 还有如何识别词汇序列或者n-gram的模式。 8.1一些语法困境 语言数据和无限可能性 每天都在增加电子语言,数据量是非常大的; 句子的组合具有无线的可能性; 普遍存在的歧义 让我们仔细看看短语I shot an elephant in mypajamas中的歧义... 阅读全文
posted @ 2013-05-30 23:51 createMoMo 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 7.5命名实体识别(NER) 目标是识别所有文字提及的命名实体。 可以分成两个子任务:确定NE的边界和确定其类型。 NLTK提供了一个已经训练好的可以识别命名实体的分类器,如果我们设置参数binary=True,那么命名实体只被标注为NE,没有类型标签。可以通过代码来看: >>>sent = nltk.corpus.treebank.tagged_sents()[22]>>>prin... 阅读全文
posted @ 2013-05-30 23:26 createMoMo 阅读(6185) 评论(0) 推荐(0) 编辑
摘要: 用级联分块器构建嵌套结构 例如如下,是名词短语、介词短语、动词短语和句子的模式。一个四级块语法器。 grammar= r"""NP:{<DT|JJ|NN.*>+} #Chunksequences of DT,JJ, NNPP:{<IN><NP>} #Chunkprepositions followed byNPVP:{<VB.*><NP|PP|CLAUSE>+$} #Chunkverbs... 阅读全文
posted @ 2013-05-30 22:50 createMoMo 阅读(553) 评论(0) 推荐(0) 编辑