【发布时间】:2019-02-18 08:58:22
【问题描述】:
我想将 nlp.entity.cfg beam_width(默认为 1)更改为 3。
我尝试了 nlp.entity.cfg.update({beam_width : 3}) 但看起来 nlp 的东西在这个改变之后被破坏了。 (如果我做一个 nlp(str),它会给我一个字典,而不是像往常一样的 spacy.tokens.doc.Doc,如果我输入 beam_width : 1)
我想更改它,因为在我的情况下,NER 的概率会更准确(这是我自己训练的模型)。 我用 github.spacy/issues 中的代码做了 probas
with nlp.disable_pipes('ner'):
doc = nlp(txt)
(beams, somethingelse) = nlp.entity.beam_parse([ doc ], beam_width, beam_density)
entity_scores = defaultdict(float)
for beam in beams:
for score, ents in nlp.entity.moves.get_beam_parses(beam):
for start, end, label in ents:
entity_scores[(doc[start:end].text, label, start, end)] += score
光束宽度: 要考虑的替代分析的数量。越慢,也不一定越好——你需要在你的 问题。 (默认:1)
光束密度: 这会在每个步骤中剪辑解决方案。我们乘以 此值对排名靠前的动作的得分,并将结果用作 临界点。这可以防止解析器探索看起来像 不太可能,节省一点效率。精度也可以 改进,因为我们已经训练了贪婪的目标。 (默认:0)
我是 NLP 的新手,所以我不知道什么是具有全局目标的 Beam 搜索以及如何使用它,所以如果你能像我 5 岁那样解释我,那就太好了!
我希望能够使用 displacy (style='ent') 来可视化 beam_width = 3 的实体。
谢谢你的回答, 赫维。
【问题讨论】:
标签: spacy