首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordNet 3.0诅咒词

WordNet 3.0诅咒词
EN

Stack Overflow用户
提问于 2012-09-09 03:41:33
回答 2查看 1.1K关注 0票数 0

我正在开发一个从纯文本中提取关键字的系统。

关键字的要求是:

  1. 1-45个字母长
  2. Word必须存在于WordNet数据库中。
  3. 不能是一个“普通”词
  4. 绝不能是个诅咒词

我已经满足了1- 3的要求,但是我无法找到区分诅咒词的方法;我如何过滤它们?

我知道这不会是过滤掉所有诅咒词的最终方法,但是所发生的是所有的关键字首先被设置为“未决”状态,然后才被主持人“批准”。然而,如果我能让WordNet过滤掉大部分的诅咒词,它将使版主的工作更容易。

EN

回答 2

Stack Overflow用户

发布于 2012-09-11 20:33:14

奇怪的是,Unix命令行版本的WordNet (wn)将通过选项-domn (域)向您提供所需的信息:

代码语言:javascript
复制
wn ass -domnn (-domnv for a verb)

...
>>> USAGE->(noun) obscenity#2, smut#4, vulgarism#1, filth#4, dirty word#1
>>> USAGE->(noun) slang#2, cant#3, jargon#1, lingo#1, argot#1, patois#1, vernacular#1

但是,NLTK中的等效方法只返回一个空列表:

代码语言:javascript
复制
from nltk.corpus import wordnet
a = wordnet.synsets('ass')
for s in a:
    for l in s.lemmas:
        print l.usage_domains()
        
[]
[]
...

作为另一种选择,您可以尝试过滤那些在同义词定义中包含“淫秽”、“粗俗”或“俚语”的单词。但是,按照前面的建议(就像noswearing.com中的那样),对固定列表进行过滤可能要容易得多。

票数 4
EN

Stack Overflow用户

发布于 2017-11-01 10:02:08

对于第四点,如果您能够收集诅咒词的列表,并通过迭代过程删除它们,那将是更好和有效的。

为了达到同样的目的,您可以查看博客。

我将在这里总结同样的情况。1.从这里 2中加载“发誓”文本文件。将其与文本进行比较,如果匹配,则删除。

代码语言:javascript
复制
def remove_curse_words():
    text = 'Hey Bro Fuck you'
    text = ' '.join([word for word in text.split() if word not in curseWords])
    return text

输出将是。

嘿,兄弟,你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12336341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档