我想更好地理解为什么斯坦福纳(名称实体识别)标签产生不同的结果相同的词,取决于你提交给它的单词列表。
下面是一个示例:
from nltk.tag import StanfordNERTagger
user ="MYUSERPATH"
stpath = user + 'PATHTOSTANFORDTAGGER'
St = StanfordNERTagger(stpath + 'classifiers/english.all.3class.distsim.crf.ser.gz', stpath+'stanford-ner.jar', encoding ='utf-8')
words1 = ["I","am", "amazed", "by", "Dylan","van", "Baarle", "and", "Remco", "Evenepoel"]
words2 = ["I","am", "amazed", "by","Dylan","van", "Baarle", "and","Remco", "Evenepoel", "Paris","Roubaix","is","a","great","race","I","watch","on","Eurosport"]
text_pars = St.tag(words1)
text_pars2 = St.tag(words2)
print(words1)
print(text_pars)
print(text_pars2)在这里,列表words2是words1和第二句句子的连接。当我比较这两个句子的标记时,我可以看到相同单词的输出是不一样的。
这是print(text_pars)的输出,它标记为words1。它准确地标明了"Remco“和"Evenepoel”以及一个人。
[('I', 'O'), ('am', 'O'), ('amazed', 'O'), ('by', 'O'), ('Dylan', 'PERSON'), ('van', 'PERSON'), ('Baarle', 'PERSON'), ('and', 'O'), ('Remco', 'PERSON'), ('Evenepoel', 'PERSON')]第二个实例的输出产生不同的结果。它现在将"Remco“和"Evenepoel”标记为“组织”:
[('I', 'O'), ('am', 'O'), ('amazed', 'O'), ('by', 'O'), ('Dylan', 'PERSON'), ('van', 'PERSON'), ('Baarle', 'PERSON'), ('and', 'O'), ('Remco', 'ORGANIZATION'), ('Evenepoel', 'ORGANIZATION'), ('Paris', 'ORGANIZATION'), ('Roubaix', 'ORGANIZATION'), ('is', 'O'), ('a', 'O'), ('great', 'O'), ('race', 'O'), ('I', 'O'), ('watch', 'O'), ('on', 'O'), ('Eurosport', 'LOCATION')]他们为什么不一样?它是否与单词的周围环境有关(许多单词在它之后被标记为组织)?
发布于 2022-09-07 23:10:49
标记者根据周围单词的特征来工作。一个城市的名字在一个名字后面是告诉它它很可能是一个组织的一部分,例如(巴黎希尔顿不可抵挡)。
作为一个对这些实体一无所知的人,这看起来是一个完全合理的决定。考虑:
"I", "am", "amazed", "by", "Dylan", "van", "Baarle", "and", "Remco", "Evenepoel"
好的,以van Baarle结尾的东西可能是一个人,这个上下文让我觉得第二个NE也是一个人。
words2 = ["I", "am", "amazed", "by", "Dylan", "van", "Baarle", "and", "Remco", "Evenepoel", "Paris", "Roubaix", "is", "a", "great", "race", "I", "watch", "on", "Eurosport"]
我读到这篇文章的时候,你只是在直播你的意识,并有两种不同的想法:
https://stackoverflow.com/questions/72744613
复制相似问题