我正在开发一个系统,从纯文本中提取关键字。
关键字的要求是:
我已经满足了要求1 - 3,但我找不到找到诅咒词之间区别的方法;我该如何过滤它们?
我知道这不是一个过滤掉所有诅咒词的明确方法,但会发生的事情是所有关键词在被主持人“批准”之前首先被设置为“待定”状态。但是,如果我能让WordNet过滤出大部分诅咒词,那么主持人的工作就会变得更加轻松。
答案 0 :(得分:3)
奇怪的是,WordNet(wn)的Unix命令行版本将为您提供所需的功能 选项-domn(domain)的信息:
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中的等效方法只返回一个空列表:
from nltk.corpus import wordnet
a = wordnet.synsets('ass')
for s in a:
for l in s.lemmas:
print l.usage_domains()
[]
[]
...
作为替代方案,您可以尝试过滤SynSet定义中具有“淫秽”,“粗糙”或“俚语”的单词。但是,如前所述(例如noswearing.com处的固定列表)可能更容易过滤固定列表。
答案 1 :(得分:0)