database - 搜索实体名称数据库(学院,城市,个性,国家...)

标签 database filtering classification linguistics

对于我和另一个人正在进行的企业应用程序研究项目,我们希望从页面中删除某些内容,以保持发布的消息的通用性(这意味着不是冒犯性的,本质上是匿名的)。现在,我们希望接收用户发布到留言板上的消息,并删除任何类型的名称、学院或机构的名称以及亵渎(如果以后可能,我们希望删除企业名称)。
有没有可以连接到的数据库,我们可以用它运行清理消息,以检查数据库中的值,以便识别这些值?

最佳答案

这个问题似乎意味着一个在线数据库,它将在处理消息时被查询。业务问题(此类服务的可靠性、响应时间的滞后等)以及完整性问题(需要查询多个数据库,因为没有一个数据库将覆盖项目需求的100%),使得这种在线/实时方法不切实际。不过,有许多数据库可供下载,这将使您能够建立自己的本地数据库的“热词”。
一个好的开始可以是WordNet,如果您可能会使用所有的“实例”单词作为通常需要从消息中删除的单词,因为您要匿名/清除它们。(也许您还需要将“non-instance”单词保存在一个单独的表/单词列表中“更有可能是ok的”)。仅此列表就可以很好地支持应用程序的“0.9”版本。
最后,你将要扩展这个词汇数据库的“坏话”,例如,包括所有大学的缩写词(CMU,UCSD,DU,MIT,UNC等),运动队的名字(凯尔特人,棕熊,棕熊,红袜……),根据你的消息的域,另外的名字的公众人物(Wordnet有几个,比如乔治·布什或罗伯特·德尼罗,但它缺少不太出名的人或最近成名的人:如巴拉克·奥巴马)
为了补充wordnet,我们想到了两种不同的来源:
传统联机数据库
本体论与民俗学
前者的例子是美国邮政总局的“城市/州邮政编码”。后者的例子是由学者、组织或各种个人编制的各种“清单”。无法提供这两种源类型的详尽列表,但以下内容应有所帮助:
DAML.ORG本体目录
US Regions and States本体daml格式示例
Open Directory project开源目录(注意,很快就会变得混乱)
SourceWatch.org例如“列表:新闻/政治界人士”
seach引擎关键词:“列表列表”,或者也可以使用三个或四个你希望在列表中找到的单词。
在更简单的情况下,人们只需下载列表等,或者也可以“剪切粘贴”。本体将被“附加”,需要额外的属性来解析(在将来你可能实际上需要这些属性,并以更传统的方式使用本体,现在,抓住词汇实体是所有需要的)。
这个词汇数据库编译任务可能令人畏惧。但是80-20规则规定,20%的“热词”将占到消息中引用的80%,因此,只要付出相对较小的努力,您就应该能够生成一个覆盖90%以上用例的系统。
展望未来:超越“热门词汇”数据库
使用自然语言处理(NLP)中的各种技术和概念,有很多方法可以完成这项任务。随着您的项目越来越复杂,您可能希望了解其中的一些概念,并可能实现它们。例如,一个简单的pos标记出现在脑海中,因为它可能有助于(部分地)在你的应用程序丢弃冒犯性的单词时区分标记“screw”的各种用法。(“董事会希望拧学生”与“董事会应每码至少用4个螺钉固定”。
甚至在需要这些正式的nlp技术之前,您可以使用一些基于模式的规则来处理与域相关联的常见情况(相对于项目目标的消息类型)。例如,您可以考虑以下几点:
-(文字)国立大学
-参议员(单词以大写字母开头)
-混合字母和数字的单词(这些单词通常用于拼写错误的名称并避开项目希望实现的筛选器类型)
另一个可能有用的工具,特别是在开始时,将是一个收集关于消息语料库的统计信息的系统:单词频率、最常用的单词、最常用的双字(两个连续的单词)等。

关于database - 搜索实体名称数据库(学院,城市,个性,国家...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1535402/

相关文章:

php - 查询中的 pdo 多个数据库连接

javascript - 我想通过使用 php 或其他语言选择多个文本框来进行过滤?

python - Keras 返回二进制结果

python - 二元分类问题中每个概率截止的准确性(python sklearn 准确性)

STR(<number>,<m>,<n>) FoxPro 命令的 SQL 命令

c# - 从表中获取单个值的最佳方法?

安卓 : Application with Crash dump report

javascript - 过滤值数组并将它们分组

java - 从池中选择属性的算法

database - initlocation 在 postgresql 中不起作用