我想从一个大语料库中移除所有专有名词。由于数量庞大,我采取了一种简便的方法,即移除所有以大写字母开头的单词。对于每个句子的第一个单词,我还想检查它是否是专有名词。如何在不使用标注器的情况下完成这项工作?其中一个选项是使用常见专有名词列表进行筛选。是否有更好的方法,并且我可以在哪里获取这样的列表?谢谢。
我尝试过 NLTK pos_tag 和 Standford NER。但是在没有上下文的情况下,它们效果不佳。
我尝试过 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
由于句子的第一个字母总是大写,因此会有太多的误报。当我将单词改为全部小写后,命名实体识别甚至错过了常见的实体,如美国和美国人。