解析是一个棘手的问题,很多事情都可能出错!

你想要(至少)三个组件,一个标记器,一个标记器,最后是解析器 .

首先,您需要将正在运行的文本标记为令牌列表 . 这可以像在空格中分割输入字符串一样简单,但是如果要解析更多的常规文本,则还需要处理数字和标点符号,这是非常重要的 . 例如,句子结束时期通常不被视为它附加的单词的一部分,但标记缩写的句点通常是 .

当您有输入令牌列表时,您可以使用标记器尝试确定每个单词的POS,并使用它来消除输入标记序列的歧义 . 这有两个主要优点:首先它加速解析,因为我们不再需要考虑由模糊词授权的备用假设,因为POS标记器已经这样做了 . 其次,它改善了未知的文字处理,即 . 不在你的语法中的单词,也可以为这些单词分配一个标签(希望是正确的单词) . 以这种方式组合解析器和标记器是很常见的 .

然后,POS标签将构成语法中的预终端 . 预终端是 生产环境 的左侧,只有终端作为其右侧 . 即N - >“house”,V - >“jump”等.N和V是preterminals . 具有语法的语法,双方的非终端,制作和词汇制作,一个非终端进入一个终端是相当普遍的 . 这在大多数时候都具有语言意义,大多数CFG解析器都要求语法采用这种形式 . 然而,通过在其中具有非终端的RHS中的任何终端创建“虚拟产品”,可以以这种方式表示任何CFG .

如果您希望在语法中比标记器输出更多(或更少)细粒度标记区分,则可能需要在POS标签和预终端之间进行某种映射 . 然后,您可以使用标记器的结果初始化图表,即 . 跨越每个输入令牌的适当类别的被动项 . 可悲的是,我不知道NTLK,但我确信有一个简单的方法可以做到这一点 . 当播种图表时,解析可以正常进行,并且可以以常规方式提取任何解析树(也包括单词) .

但是,在大多数实际应用程序中,您会发现解析器可以返回几种不同的分析,因为自然语言非常模糊 . 我不知道你试图解析什么样的文本语料库,但如果它像自然语言一样你可能需要构建某种解析选择模型,这将需要一个树库,一组解析树一些大小从几百到几千个解析,都取决于你的语法和你需要的准确结果 . 给定这个树库,可以自动推断出与其对应的PCFG . 然后可以将PCFG用作对解析树进行排名的简单模型 .

所有这些都是你自己要做的很多工作 . 你用什么解析结果?您是否查看过NTLK或其他软件包中的其他资源,例如StanfordParser或BerkeleyParser?

java nltk,使用NLTK将Tokenizer组合成语法和解析器相关推荐

  1. java 重力脚本_Java中非常简单的脚本解析器

    我目前正在用Java进行一个小项目,我需要为我组成的机器人处理非常轻量级的脚本语言. 它不需要处理算术或任何复杂的功能,它只需要运行某些命令并处理if和while语句. 它可能看起来像这样: turn ...

  2. java正则表达式去除xml标签之间的空格_HTML解析器——htmlparser2使用详解,换个姿势解析html和xml

    上一篇文章我们介绍了一个html/xml解析器--htmlparser,这篇文章我们介绍另外一个解析模块htmlparser2,后者是对前者的重构,同时对前者的API做了部分兼容. 用法简介 安装 c ...

  3. Java高性能解析器实现思路及方法

    在某些情况下,你可能需要在Java中实现你自己的数据或语言解析器,也许是这种数据格式或语言缺乏标准的Java或开源解析器可以使用.或者虽然有现成的解析器实现,但它们要么太慢,要么太占内存,要么就是没有 ...

  4. 实现加减乘除任意组合的语法解析

    给定一个字符串如:2/(3+4))*(3-1)+6-8 ,用程序解析出来,输出最终的值.这是个AST 语法解析问题,最直观的是建立一颗语法树,然后遍历语法树来获得最终的效果.如下图,建立这么一个语法树 ...

  5. Swift函数式编程十一(解析器组合算子)

    代码地址 解析类似1+2*3这样的数学表达式. 解析器类型 通常一个解析器会接受一个字符串,解析成功返回一些值和剩下的字符串,解析失败则什么也不返回.这个过程总结为这样一个函数类型: typealia ...

  6. Py之nltk:nltk包的简介、安装、使用方法、代码实现之详细攻略

    Py之nltk:nltk包的简介.安装.使用方法.代码实现之详细攻略 目录 nltk包的简介 nltk包的安装 nltk包的使用方法 nltk包的代码实现 nltk包的简介 NLTK is a lea ...

  7. Java设计模式之结构型:组合模式

    前言: 我们对于上面两幅图片肯定非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构.在数据结构中我们知道可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可 ...

  8. 【NLP Tool -- NLTK】NLTK进行英文情感分析、分词、分句、词性标注(附代码)

    NLP Tool 系列文章 NLP--Jieba中文文本--关键词提取.自定义词典.分词.词性标注 NLP--NLTK英文文本--情感分析.分词.分句.词性标注 工具介绍 NLTK,Natural L ...

  9. 斯坦福java下载_斯坦福解析器java错误

    我正在研究NLP,我想用斯坦福解析器从文本中提取名词短语,我使用的解析器版本是3.4.1 这是我使用的示例代码 package stanfordparser; import java.util.Col ...

最新文章

  1. Lumen / Laravel 使用网易邮箱 SMTP 发送邮件
  2. 编写高质量JavaScript代码的基本技巧
  3. Android NotificationCompat通知消息
  4. ajax中json和文本的区别,json格式字符串--json对象 【ajax_responseText】重点
  5. Haskell语言实现求解一个整数所有因子的代码及运行结果
  6. php layui ajax多图上传,Laravel+Layer实现图片上传功能(整理篇)
  7. ActiveMQ的queue以及topic两种消息处理机制分析
  8. 通过BizTalk WCF适配器实现异构数据库/系统间的数据同步
  9. everything搭配什么软件_带你飞起来的好工具Everything,极速找到你所要的文件
  10. UIAUTOMATOR
  11. Express框架学习笔记-静态资源的处理
  12. windows环境 java jdbc 连接impala (kerberos认证)
  13. 青少年重度抑郁的动态功能连接:与严重程度和症状维度的关系
  14. 动态FormBean
  15. juniper:SRX-产品简介
  16. 把USB打印机映射到LPT端口
  17. 游戏服务器——中心服
  18. 汇编指令学习(CMP,TEST)
  19. 实现聊天软件消息刷屏
  20. 三星p1000升级android10,三星P1000可以升级到安卓4.0吗?

热门文章

  1. SEO检测网站,看网站是否具备SEO架构!!
  2. 快速理解AAC编码格式
  3. C#利用ASP.NET?Core开发学生管理系统详解
  4. android小窗口播放视频,[安卓] 支持投屏、电视台和小窗口的视频播放器:MoboPlayer...
  5. 记一次UAC无法使用的bug
  6. mybatis <if>标签 and问题
  7. uva 12563劲歌金曲
  8. 从支付宝、微信到有道翻译官,中国二维码频频风靡海外
  9. 宣泰医药通过注册:拟募资6亿 联和投资是大股东
  10. 计算机怎么快速改图片名称,如何批量修改文件名?批量修改照片文件名和添加前缀方法...