我想从大型语料库中删除所有专有名词.由于音量很大,我采用快捷方式删除以大写字母开头的所有单词.对于每个句子的第一个单词,我还想检查它是否是专有名词.如何在不使用标记器的情况下执行此操作.一种选择是使用常用专有名词列表进行筛选.有没有更好的方法,我在哪里可以得到这样的清单?谢谢.
我试过NLTK pos_tag和Standford NER.没有背景,它们就不能很好地运作.
ner_tagger = StanfordNERTagger(model,jar)
names = ner_tagger.tag(first_words)
types = ["DATE", "LOCATION", "ORGANIZATION", "PERSON", "TIME"]
for name, type in names:
if type in types:
print(name, type)
以下是一些结果.
Abnormal ORGANIZATION
Abnormally ORGANIZATION
Abraham ORGANIZATION
Absorption ORGANIZATION
Abundant ORGANIZATION
Abusive ORGANIZATION
Academic ORGANIZATION
Acadia ORGANIZATION
由于句子的第一个字母总是大写,因此有太多误报.在我将这些文字改为所有小写字母后,NER甚至错过了美国和美国等普通实体.
最佳答案 您可以从您的语料库中创建一个列表,这些列表在不在句子开头时被大写. Bloom过滤器是存储结果的有效方式,因为您愿意容忍误报.