我正在为我的一个项目试验apache Open NLP,我的要求是检测电子邮件内容中的名词,并检查我们的客户数据库(这个数据库由个人姓名、组织名称等组成,我的搜索引擎是Solr base)。
对于普通的英语名词,默认的训练模型工作正常(对于大多数情况),但其中一个棘手的要求是,我们有业务组织,缩写如OK,LET等,因此在一些情况下,我需要考虑OK,LET等作为名词。
作为一个例子1)“发送一些项目给出租,请期待延迟付款”2)“让我们去参加一个聚会”
在#1中,我认为LET是名词,在#2中,LET不是名词。
如果我能达到这个要求,我就可以减少我的搜索引擎中大量的误报匹配。
任何帮助都是非常感谢的。
发布于 2012-04-23 12:29:40
制作一个特殊名词的字典,并执行基于字典的提取作为后处理步骤。基于字典的提取应该考虑到小写和大写之间的区别,特别是对于那些缩写的条目。
在字典查找的实现方面:
HashSet<String>,对文本进行标记化,并在散列中查找每个令牌(以及最多M个令牌的组),应该可以很好地工作最后,和使用NLP一样,您将需要查看结果的重要样本,以确定任何进一步的问题。根据实体列表中的歧义级别,您可能需要通过在区分大小写的字典查找之上添加启发式或基于统计/ML的决策机制来进一步改进检测方法。
https://stackoverflow.com/questions/10273482
复制相似问题