寻找实体名称的数据库(大学、城市、人物、国家等...)

3

我和另一位同事正在进行一个企业应用研究项目,我们希望从页面中删除某些内容,以使发布的消息具有普遍性(即不冒犯和匿名)。目前,我们想要获取用户在留言板上发布的消息,并删除任何类型的姓名、学院或机构名称、粗话(如果可能的话,我们还想删除商业名称)。

是否有某个数据库可以连接到,我们可以使用它来清理我们的消息,以检查与数据库中的值相匹配的内容以识别这些内容?

1个回答

8
这个问题似乎暗示了一个在线数据库,将在处理消息时进行查询。操作问题(此类服务的可靠性、响应时间滞后等)以及完整性问题(需要查询多个数据库,因为没有一个单一的数据库可以覆盖项目的100%词汇需求),使得这种在线/实时方法变得不切实际。但是,有很多可供下载的数据库,可以让您构建自己的本地“热词”数据库。
一个很好的起点可能是WordNet,您可能会使用其中的所有“实例”单词作为通常需要从消息中删除的单词,因为您正在对其进行匿名化/清理。(也许你还想把“非实例”单词保留在另一个表/单词列表中,“更可能没问题”)。仅这个列表可能就能支持一个“0.9”版本的应用程序。
您最终可能希望扩展这个“不良词汇”词库,例如包括所有大学缩写词(CMU、UCSD、DU、MIT、UNC等),体育队名(凯尔特人、布鲁因斯、布鲁因斯、红袜队……)以及根据您的消息领域,公众人物的其他名称(Wordnet有几个,如乔治·布什或罗伯特·德尼罗,但它缺少不太出名或更近期出名的人:例如巴拉克·奥巴马)。
为了补充Wordnet,有两种不同类型的来源值得注意:
- 传统在线数据库 - 本体论和民间分类法
前者的例子是美国邮政服务提供的“按邮政编码排序的城市/州”。后者的例子是由学者、组织或各种个人编制的各种“列表”。无法提供这些来源类型的详尽列表,但以下内容应该有所帮助: 在简单的情况下,你可以仅下载列表等,或者也可以“剪切和粘贴”。本体将被“拖累”附加属性,你需要解析出来(未来你可能实际上需要这些属性,并以更传统的方式使用本体,但现在,获取词汇实体就是所需的所有内容)。
这个词汇数据库编制任务可能看起来很艰巨。但是,“80-20规则”表明,“热词”的20%将占据消息中80%的引用,因此通过相对较小的努力,你应该能够创建一个覆盖90%以上使用案例的系统。

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

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

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

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


哇,谢谢你!这内容已经足够让我朝着正确的方向前进了,我会试试这些工具的! - TheJediCowboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接