Python自然语言工具包 NLTK 入门 转自.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python自然语言工具包 NLTK 入门 转自 Python自然语言工具包(NLTK)入门---转自IBM developerWorks2010年11月23日星期二23:09在本期文章中,David向您介绍了自然语言工具包(Natural Language Toolkit),它是一个将学术语言技术应用于文本数据集的Python库。称为文本处理的程序设计是其基本功能;更深入的是专门用于研究自然语言的语法以及语义分析的能力。鄙人并非见多识广,虽然写过很多关于文本处理方面的东西(例如,一本书),但是,对我来说,语言处理(linguistic processing)是一个相对新奇的领域。如果在对意义非凡的自然语言工具包(NLTK)的说明中出现了错误,请您谅解。NLTK是使用Python教学以及实践计算语言学的极好工具。此外,计算语言学与人工智能、语言/专门语言识别、翻译以及语法检查等领域关系密切。 NLTK会被自然地看作是具有栈结构的一系列层,这些层构建于彼此基础之上。那些熟悉人工语言(比如Python)的文法和解析的读者来说,理解自然语言模型中类似的--但更深奥的--层不会有太大困难。 全集(Corpora):相关文本的集合。例如,莎士比亚的作品可能被统称为一个文集(corpus);而若干个作者的作品称为全集。 直方图(Histogram):数据集中不同单词、字母或其他条目的出现频率的统计分布。 结构(Syntagmatic):对语段的研究;也就是全集中字母、单词或短语连续出现的统计关系。 上下文无关语法(Context-free grammar):由四类形式语法构成的Noam Chomsky层级中的第二类。参阅以获得详尽描述。 尽管NLTK附带了很多已经预处理(通常是手工地)到不同程度的全集,但是概念上每一层都是依赖于相邻的更低层次的处理。首先是断词;然后是为单词加上;然后将成组的单词解析为语法元素,比如名词短语或句子(取决于几种技术中的某一种,每种技术都有其优缺点);最后对最终语句或其他语法单元进行分类。通过这些步骤,NLTK让您可以生成关于不同元素出现情况的统计,并画出描述处理过程本身或统计合计结果的图表。 在本文中,您将看到关于低层能力的一些相对完整的示例,而对大部分高层次能力将只是进行简单抽象的描述。现在让我们来详细分析文本处理的首要步骤。 您可以使用NLTK完成的很多工作,尤其是低层的工作,与使用Python的基本数据结构来完成相比,并没有太大的区别。不过,NLTK提供了一组由更高的层所依赖和使用的系统化的接口,而不只是简单地提供实用的类来处理加过标志或加过标签的文本。 具体讲,nltk.tokenizer.Token类被广泛地用于存储文本的有注解的片断;这些注解可以标记很多不同的特性,包括词类(parts-of-speech)、子标志(subtoken)结构、一个标志(token)在更大文本中的偏移位置、语形词干(morphological stems)、文法语句成分,等等。实际上,一个Token是一种特别的字典--并且以字典形式访问--所以它可以容纳任何您希望的键。在NLTK中使用了一些专门的键,不同的键由不同的子程序包所使用。 让我们来简要地分析一下如何创建一个标志并将其拆分为子标志: from nltk.tokenizer import* t=Token(TEXT=This is my first test sentence) WSTokenizer().tokenize(t,addlocs=True)#break on whitespace print t[TEXT] This is my first test sentence print t[SUBTOKENS] [This@[0:4c],is@[5:7c],my@[8:10c],first@[11:16c], test@[17:21c],sentence@[22:30c]] t[foo]=bar TEXT=This is my first test sentence,foo=bar, SUBTOKENS=[This@[0:4c],is@[5:7c],my@[8:10c],first@[11:16c], test@[17:21c],sentence@[22:30c]] print t[SUBTOKENS][0] This@[0:4c] print type(t[SUBTOKENS][0]) classnltk.token.SafeToken 对于语言全集,您可能要做的一件相当简单的事情是分析其中各种事件(events)的频率分布,并基于这些已知频率分布做出概率预测。NLTK支持多种基于自然频率分布数据进行概率预测的方法。我将不会在这里介绍那些方法(参阅中列

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档