随笔分类 -  Python自然语言处理

《NLTK自然语言处理中文版》根据此书的学习,总结的简单的笔记
摘要:当第一次看到自然语言理解的时候,我是感到困惑的。因为自然语言处理的目的就是要去理解人类产生的文本信息,从这个角度讨论,那应该所有的自然语言处理任务,都应该自然语言理解的范围之内。 而当经过进一步调查之后,发现大家基本上是把特定的任务称呼为自然语言理解。这一系列中,会贴合大家已经形成的习惯用语,所以这 阅读全文
posted @ 2022-10-06 02:34 createMoMo 阅读(267) 评论(0) 推荐(0)
摘要:这篇笔记总结了这篇论文的主要思路,Few-Shot Text Classification with Distributional Signatures - ICLR 2020。 论文链接: https://arxiv.org/abs/1908.06039论文代码链接: https://github 阅读全文
posted @ 2020-04-08 01:08 createMoMo 阅读(2382) 评论(0) 推荐(0)
摘要:【2020-04-03】微信公众号已经创建好了!会第一时间收到其他文章的更新!(二维码在末尾) 虽然网上的文章对BiLSTM-CRF模型介绍的文章有很多,但是一般对CRF层的解读比较少。 于是决定,写一系列专门用来解读BiLSTM-CRF模型中的CRF层的文章。 我是用英文写的,发表在了github 阅读全文
posted @ 2017-09-16 05:23 createMoMo 阅读(24100) 评论(5) 推荐(7)
摘要:11.4使用Toolbox数据 语言结构中使用XML (2) <entry><headword>whale</headword><pos>noun</pos><gloss>anyofthe larger cetaceanmammalshaving a streamlinedbodyand breathing through a blowhole onthe head</gloss></e... 阅读全文
posted @ 2013-06-06 13:06 createMoMo 阅读(617) 评论(0) 推荐(0)
摘要:从网上获取数据 我们讨论过访问单个文件,如RSS订阅、搜索引擎的结果。 1、有的时候,还需要大量的WEB文本。最简单的方法是获得出版的网页文本的文集。在http://www.sigwac.org.uk/维护的有一个资源列表。 2、使用网络爬虫。 从字处理器文件获取数据 例11-1. 将MicrosoftWord创建的HTML转换成CSVdef lexical_data(html_f... 阅读全文
posted @ 2013-06-06 10:34 createMoMo 阅读(1033) 评论(0) 推荐(0)
摘要:TIMIT的结构 NLTK包括TIMIT语料库的一个样本,可以使用help(nltk.corpus.timit)访问他的文档; nltk.corpus.timit.fileids()可以查看语料样本中160个录制的话语列表; 每个文件名如图所示: TIMIT的结构如下: 基本数据类型 TIMIT语料库只包含两种基本数据类型:词典和文本。 语料库创建的三种方案 1、... 阅读全文
posted @ 2013-06-05 22:56 createMoMo 阅读(1209) 评论(0) 推荐(0)
摘要:段落是句子的序列。 段落表示理论 一阶逻辑中的量化标准方法仅局限于单个句子,但是有的量词的范围是可以扩大到两个以上的句子. 看下面的例子: (54)a. Angus owns a dog. It bit Irene.b.∃x.(dog(x) &own(Angus, x)&bite(x, Irene))段落表示理论(Discourse RepresentationTheory,DRT)... 阅读全文
posted @ 2013-06-05 22:22 createMoMo 阅读(998) 评论(0) 推荐(0)
摘要:基于特征的文法中的合成语义学组合原则:整体的含义是部分的含义与它们的句法结合方式的函数。我们的目标是以一种可以与分析过程平滑对接的方式整合语义表达的构建。类似于下面这幅图:SEM 是语义的意思。1、根节点的SEM显示了整个句子的语义表示。2、较低节点的SEM值显示了句子的成分。3、SEM值要以特殊的方式对待,所以被放在了尖括号里面。可以这样构造文法:S[SEM=<?vp(?np)>]-> NP[SEM=?subj]VP[SEM=?vp]VP[SEM=?v]-> IV[SEM=?v]NP[SEM=<cyril>]-> 'Cyril'IV[ 阅读全文
posted @ 2013-06-05 17:35 createMoMo 阅读(822) 评论(0) 推荐(1)
摘要:这一节,通过翻译自然语言表达式为一阶逻辑来表示它们的意思。 并不是所有的自然语言语义都可以用一阶逻辑来表示。 句法 一阶逻辑保留了所有命题逻辑的布尔运算符但是它增加了一些重要的新机制。 1、命题被分析成谓词和参数。 一阶逻辑的标准构造规则承认以下术语:独立变量、独立常量、带不同数量的参数的谓词 例如: Angus walks可以被形式化为walk(angus),Angus se... 阅读全文
posted @ 2013-06-04 21:25 createMoMo 阅读(2349) 评论(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 阅读(1369) 评论(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 阅读(707) 评论(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 阅读(645) 评论(4) 推荐(0)
摘要:短语结构文法是关于词和词序列如何结合起来形成句子成分的。 依存文法是一个独特的和互补的方式,集中关注的是词与其他词之间的关系。依存关系是一个中心词与它的依赖之间的二元对称关系。一个句子的中心通常是动词,所有其他词要么依赖于中心词,要么依赖路径与它联通。 依赖关系表示是一个加标签的有向图,其中节点是词汇项,加标签的弧表示依赖关系,从中心词到依赖。 图中显示了一个依存关系图,箭头从中心词指向它们... 阅读全文
posted @ 2013-06-02 15:38 createMoMo 阅读(2402) 评论(0) 推荐(0)
摘要:为什么要使用左角表? 一般的自顶向下的分析法中存在回溯现象,这种严重的限制了分析法,构造了推导树,但是有的时候会出现搜索空的情况,使分析效率很低。为了提高自顶向下的分析效率,减少盲目性,可以给CFG文法建立一个左角表(left-corner table)。 左角表中存有什么? 例如这个文法: G = {Vn , Vt , S , P}Vn = {S , NP , VP ,... 阅读全文
posted @ 2013-06-01 23:18 createMoMo 阅读(3442) 评论(0) 推荐(0)
摘要:8.2文法有什么用? 超越n-grams 用bigrams中的频率信息生成句子,短的时候可以接收,但是长的时候就显得无法接受。 我们系统地可以用较短的序列替代较长的序列,并使其依然符合语法规则。 例如下面这句话: 我们可以为这幅图上添上文法类别标签。 NP为名词短语;VP为动词短语;PP为介词短语; 用树来表示: 句子可以有任意的长度。短语结构树可以有任意深度。 在下... 阅读全文
posted @ 2013-06-01 22:30 createMoMo 阅读(1391) 评论(0) 推荐(0)
摘要:前面章节的简单总结 前面的学习中,主要焦点在与 词汇。 如何识别,分析词汇的结构、分配词汇类别、以及获得词汇的含义。 还有如何识别词汇序列或者n-gram的模式。 8.1一些语法困境 语言数据和无限可能性 每天都在增加电子语言,数据量是非常大的; 句子的组合具有无线的可能性; 普遍存在的歧义 让我们仔细看看短语I shot an elephant in mypajamas中的歧义... 阅读全文
posted @ 2013-05-30 23:51 createMoMo 阅读(372) 评论(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 阅读(6226) 评论(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 阅读(574) 评论(0) 推荐(0)
摘要:读取IOB格式与CoNLL2000分块语料库 CoNLL2000,是已经加载标注的文本,使用IOB符号分块。 这个语料库提供的类型有NP,VP,PP。 例如: hePRPB-NPaccepted VBDB-VPthe DTB-NPpositionNNI-NP...chunk.conllstr2tree()的函数作用:将字符串建立一个树表示。例如: >>>text = '''... ... 阅读全文
posted @ 2013-05-30 22:09 createMoMo 阅读(1210) 评论(0) 推荐(0)
摘要:实体识别的基本技术是分块(chunking) 名词短语分块(NP-分块) 这里有一段已经标注的例子: 方括号中是名词标注的例子。 NP-分块信息最有用的来源之一是词性标记。 为了创建一个NP块,我们将首先定义一个块语法,规定了句子应该如何分块。 我们使用正则表达式来定义,规则可以我们自己定:一个NP块由一个可选的限定词(DT)后面跟着任何数目的形容词(JJ),然后是一个名词(N... 阅读全文
posted @ 2013-05-30 17:39 createMoMo 阅读(884) 评论(0) 推荐(0)