我们在使用Google NLP服务时遇到了一些问题。该服务间歇性地拒绝为某些条款返回实体。我们使用NLP annotate API对调查回复进行自由文本回答。最近的一个问题与英国一个名为Zippy的儿童电视角色形象有关。下面是一些示例响应。不幸的是,我们有成千上万的这样的回复,但没有一个被发现,并且#34; zippy"作为一个实体。奇怪的是" elmo"," zippie"检测到其他问题没有任何问题,只有这组特定的字符(" zippy")返回时没有任何实体。任何想法为什么会这样?
{
"sentences": [{
"text": {
"content": "zippy",
"beginOffset": 0
},
"sentiment": {
"magnitude": 0.1,
"score": 0.1
}
}],
"tokens": [],
"entities": [],
"documentSentiment": {
"magnitude": 0.1,
"score": 0.1
},
"language": "en",
"categories": []
}
"彩虹"检测到但没有" zippy"
{
"sentences": [{
"text": {
"content": "zippy from rainbow",
"beginOffset": 0
},
"sentiment": {
"magnitude": 0.1,
"score": 0.1
}
}],
"tokens": [],
"entities": [{
"name": "rainbow",
"type": "OTHER",
"metadata": [],
"salience": 1,
"mentions": [{
"text": {
"content": "rainbow",
"beginOffset": 11
},
"type": "COMMON"
}]
}],
"documentSentiment": {
"magnitude": 0.1,
"score": 0.1
},
"language": "en",
"categories": []
}
" zippie"检测不到
{
"sentences": [{
"text": {
"content": "zippie",
"beginOffset": 0
},
"sentiment": {
"magnitude": 0,
"score": 0
}
}],
"tokens": [],
"entities": [{
"name": "zippie",
"type": "OTHER",
"metadata": [],
"salience": 1,
"mentions": [{
"text": {
"content": "zippie",
"beginOffset": 0
},
"type": "PROPER"
}]
}],
"documentSentiment": {
"magnitude": 0,
"score": 0
},
"language": "en",
"categories": []
}
"毛毛"检测不到
{
"sentences": [{
"text": {
"content": "elmo",
"beginOffset": 0
},
"sentiment": {
"magnitude": 0.1,
"score": 0.1
}
}],
"tokens": [],
"entities": [{
"name": "elmo",
"type": "OTHER",
"metadata": [],
"salience": 1,
"mentions": [{
"text": {
"content": "elmo",
"beginOffset": 0
},
"type": "COMMON"
}]
}],
"documentSentiment": {
"magnitude": 0.1,
"score": 0.1
},
"language": "en",
"categories": []
}
答案 0 :(得分:2)
这些服务是针对特定实体的特定语料库进行培训的。值。
服务标记/块,然后使用词性标注来识别名词短语并检查巨型索引以查看该名词短语是否为实体。
Zippy不得在语料库中。不确定谷歌NLP,但Watson NLU附带了一个GUI产品,可以轻松创建自己的词典'实体名词短语。
也很有可能使用NLTK或在python中从头开始创建自己的,但所有这些都需要手动策划自己的词典,除非你能够掌握并适应另一个词典。