首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/ openNLP名词检测

/ openNLP名词检测
EN

Stack Overflow用户
提问于 2012-04-23 08:35:59
回答 1查看 1.2K关注 0票数 1

我正在为我的一个项目试验apache Open NLP,我的要求是检测电子邮件内容中的名词,并检查我们的客户数据库(这个数据库由个人姓名、组织名称等组成,我的搜索引擎是Solr base)。

对于普通的英语名词,默认的训练模型工作正常(对于大多数情况),但其中一个棘手的要求是,我们有业务组织,缩写如OK,LET等,因此在一些情况下,我需要考虑OK,LET等作为名词。

作为一个例子1)“发送一些项目给出租,请期待延迟付款”2)“让我们去参加一个聚会”

在#1中,我认为LET是名词,在#2中,LET不是名词。

如果我能达到这个要求,我就可以减少我的搜索引擎中大量的误报匹配。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 12:29:40

制作一个特殊名词的字典,并执行基于字典的提取作为后处理步骤。基于字典的提取应该考虑到小写和大写之间的区别,特别是对于那些缩写的条目。

在字典查找的实现方面:

  • 只要有问题的实体是单个令牌(或者只包含预定义的最大M个令牌),将字典实现为HashSet<String>,对文本进行标记化,并在散列中查找每个令牌(以及最多M个令牌的组),应该可以很好地工作
  • 如果您正在处理非常长的实体,或者如果标记化是一个问题,那么使用字典的搜索trie或有限状态机实现是明智的。

最后,和使用NLP一样,您将需要查看结果的重要样本,以确定任何进一步的问题。根据实体列表中的歧义级别,您可能需要通过在区分大小写的字典查找之上添加启发式或基于统计/ML的决策机制来进一步改进检测方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10273482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档