对于我和其他人正在进行的企业应用程序研究项目,我们希望从页面中删除某些内容,以使发布的消息保持通用(意味着不具有攻击性且基本上是匿名的).现在我们想要收到用户已发布到留言板的消息,并删除任何类型的名称,学院或机构的名称以及亵渎(如果以后可能我们想删除商家名称).
是否有一些我们可以连接到的数据库,我们可以运行擦除我们的消息以检查数据库中的值以识别这些?
这个问题似乎暗示了一个在处理消息时会被查询的在线数据库.业务问题(例如服务的可靠性,滞后响应时间等),以及完整的问题(需要查询多个数据库,因为没有一个人会支付该项目的词汇需要100%),使这个在线/实时方法是不切实际的.然而,有许多数据库可供下载,这将允许您构建自己的"热词"本地数据库.
一个好的起点可能是WordNet,你可能会使用所有" 实例 "单词作为通常需要从消息中删除的单词,因为你匿名/清理它们.(也许你也希望将" 非实例 "单词保留在单独的表格/单词列表中"更可能是正确的").仅此列表可能很好地支持您的应用程序的"0.9"版本.
你最终要扩展这个词汇数据库然而,"坏词",例如包括首字母缩写所有大学(CMU,加州大学圣地亚哥分校,杜,麻省理工学院,UNC和这样),运动队名(凯尔特人,熊,熊,红袜...),并根据您的消息,公众人物其他名称的域(共发现有几个,比如乔治·布什和罗伯特·德尼罗,但最近没有名气不大的人或随成名的人:如奥巴马)
为了补充Wordnet,我想到了两种不同类型的资源:
传统在线数据库
本体和民俗分类
前者的例子是美国邮政总局的"城市/州邮政编码".后者的例子是由学者,组织或各种个人编制的各种"列表".无法提供这些源类型中的任何一种的详尽列表,但以下内容应该有所帮助:
DAML.ORG 本体目录
美国地区和国家 本体DAML格式的例子
打开目录项目开源目录(注意,快速搞乱)
SourceWatch.org "列表清单:新闻/政治人物"的例子
搜索引擎关键字:" 列表列表 ",或者也可以使用您希望在列表中找到的三个或四个单词.
在更简单的情况下,人们只能下载列表等,或者"剪切和粘贴".该本体将"拖累"与你需要解析出(将来你实际上可能希望这些属性,并以更传统的方式使用本体,就目前而言,抓住词汇实体的附加属性是所有需要).
这个词汇数据库编译任务可能看起来令人生畏.但是80-20规则指出,20%的"热词"将占消息中80%的引用,因此只需相对较小的努力,您就应该能够生成覆盖率达到90%的系统.你的用例
展望未来:超越"热词"数据库
使用自然语言处理(NLP)中的各种技术和概念,有很多方法可以完成这项任务.随着您的项目越来越复杂,您可能希望了解其中一些概念并可能实现它们.例如,可以想到一个简单的POS标记器,因为它可以帮助[部分]区分标记"SCREW"的各种用法,因为您的应用程序会丢弃令人反感的单词.("董事会希望拧紧学生"与"董事会应该用每码至少4个螺丝紧固 ".
在需要这些正式的NLP技术之前,您可以使用一些基于模式的规则来处理与域相关的常见案例,这些案例与项目所针对的消息类型相关.例如,您可以考虑以下内容:
- (单词)州立大学
- 参议员(Word_Starting_with_Capital letter)
- 混合字母和数字的单词(这些单词通常用于拼错名称并规避您的项目希望实施的过滤器类型)
另一个可能有用的工具,特别是在开始时将是一个收集有关消息语料库的统计信息的系统:词频,最常见的词,最常见的双字母(两个连续的词)等.