我想从一个大的语料库中删除所有专有名词。由于体积太大,我抄近路删除了所有以大写字母开头的单词对于每个句子的第一个单词,我还想检查它是否是一个专有名词。我怎么能不使用标签。一种选择是使用一系列常用专有名词进行筛选。有没有更好的方法,我在哪里可以得到这样的名单?谢谢。
我试过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过滤器是存储结果的有效方法,因为您愿意容忍误报。
关于python - 如何检查句子的第一个单词是否是专有名词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54658779/