3

对于我和另一个人正在开展的企业应用研究项目,我们希望从页面中删除某些内容以保持发布的消息的通用性(意味着不冒犯性并且本质上是匿名的)。现在我们想要获取用户在留言板上发布的消息,并删除任何类型的名称、学院或机构的名称以及亵渎(如果以后可能的话,我们希望删除企业名称)。

是否有一些我们可以连接到的数据库,我们可以运行清理我们的消息以检查数据库中的值以识别这些?

4

1 回答 1

8

这个问题似乎暗示了一个在线数据库,该数据库将在处理消息期间被查询。操作问题(此类服务的可靠性、响应时间滞后等)以及完整性问题(需要查询多个数据库,因为没有一个数据库能够满足项目 100% 的词汇需求)使得这种在线/实时方法不切实际。然而,有许多数据库可供下载,它们可以让您建立自己的本地“热词”数据库。

一个好的起点可能是WordNet,如果您可能会使用所有“实例”词作为通常需要从消息中删除的词,因为您匿名/清理它们。(也许您还希望将“非实例”单词保留在单独的表/单词列表中“更有可能没问题”)。仅此列表就可能很好地支持您的应用程序的“0.9”版本。

但是,您最终会希望扩展这个“坏词”词汇数据库,例如包括所有大学的首字母缩略词(CMU、UCSD、DU、MIT、UNC 等)、运动队名称(凯尔特人队、棕熊队、棕熊队、红袜队) ...) 并且根据您的消息的域,公众人物的其他名称(Wordnet 有几个,例如乔治布什或罗伯特德尼罗,但它缺少不太知名的人或最近成名的人:例如巴拉克奥巴马)

为了补充 Wordnet,我想到了两种不同类型的资源:

  • 传统的在线数据库
  • 本体论和民间分类法

前者的例子是在 USPS 上说“按邮政编码的城市/州”。后者的例子是由学者、组织或各种个人编制的各种“清单”。不可能提供这些源类型中的任何一种的详尽列表,但以下内容应该会有所帮助:

  • DAML.ORG 本体目录
  • 美国地区 和州的本体 DAML 格式示例
  • Open Directory 项目Open Source 目录(注意,很快就会乱七八糟)
  • SourceWatch.org 的“列表列表:新闻/政治人物”示例
  • 搜索引擎关键字:“列表列表”,或者也使用您希望在您寻找的列表中找到的三个或四个单词。

在更简单的情况下,可以仅下载列表等,或者也可以“剪切和粘贴”。本体将被您需要解析的附加属性“阻碍”(将来您可能实际上需要这些属性并以更传统的方式使用本体,目前,只需要获取词汇实体即可)。

这个词法数据库编译任务可能看起来令人生畏。但是80-20 规则指出,20% 的“热词”将占消息中 80% 的引用,因此,您应该能够通过相对较小的努力,生成一个覆盖 90%+ 的系统您的用例。

展望未来:超越“热词”数据库
有许多方法可以使用自然语言处理(NLP) 中的各种技术和概念来完成这项任务。随着您的项目越来越复杂,您可能想要了解其中一些概念并可能实施它们。例如,我想到了一个简单的 POS 标记器,因为它可能有助于 [部分] 区分令牌“SCREW”的各种用法,因为您的应用程序会丢弃冒犯性的词。(“董事会想要拧紧学生”与“董事会应该用每码至少 4 个螺钉固定”。

在需要这些正式的 NLP 技术之前,您可以使用一些基于模式的规则来处理与项目目标消息类型相关的域相关的常见情况。例如,您可以考虑以下内容:

  • (字)州立大学
  • 参议员(Word_Starting_with_Capital letter)
  • 混合字母和数字的单词(这些通常用于拼错名称并规避您的项目希望实现的过滤器类型)

另一个可能有用的工具,特别是在开始时将是一个收集有关消息语料库的统计信息的系统:词频、最常见的词、最常见的二元组(两个连续的词)等。

于 2009-10-08T07:33:53.273 回答