Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有可能发现spaCy POS标签的不确定性?_Python_Nlp_Spacy_Spell Checking - Fatal编程技术网

Python 是否有可能发现spaCy POS标签的不确定性?

Python 是否有可能发现spaCy POS标签的不确定性?,python,nlp,spacy,spell-checking,Python,Nlp,Spacy,Spell Checking,我正在尝试构建一个非英语拼写检查器,它依赖于spaCy对句子的分类,这允许我的算法使用POS标记和单个标记的语法依赖性来确定拼写错误(在我的例子中,更具体地说:荷兰语复合词中的错误拆分) 然而,如果句子包含语法错误,spaCy似乎会错误地对句子进行分类,例如,将一个名词归类为动词,即使分类后的单词看起来根本不像动词 正因为如此,我想知道是否有可能获得斯帕西分类的不确定性,从而有可能判断斯帕西是否在与一个句子作斗争。毕竟,如果spaCy正在努力进行分类,这将为我的拼写检查器提供更多的信心,使其确信

我正在尝试构建一个非英语拼写检查器,它依赖于spaCy对句子的分类,这允许我的算法使用POS标记和单个标记的语法依赖性来确定拼写错误(在我的例子中,更具体地说:荷兰语复合词中的错误拆分)

然而,如果句子包含语法错误,spaCy似乎会错误地对句子进行分类,例如,将一个名词归类为动词,即使分类后的单词看起来根本不像动词

正因为如此,我想知道是否有可能获得斯帕西分类的不确定性,从而有可能判断斯帕西是否在与一个句子作斗争。毕竟,如果spaCy正在努力进行分类,这将为我的拼写检查器提供更多的信心,使其确信句子中包含错误

有没有办法知道spaCy是否认为一个句子在语法上是正确的(而不必指定我语言中所有正确句子结构的模式),或者获得分类的确定性


根据@Sergey Bushmanov评论中的建议进行编辑:

我发现,这可能有助于获得标签的概率。然而,我并不确定我在看什么,我也没有真正理解文档关于输出的含义。我正在使用以下代码:

import spacy

nlp = spacy.load('en_core_web_sm')
text = "This is an example sentence for the Spacy tagger."
doc = nlp(text)

docs = nlp(text, disable=['tagger'])
scores, tensors = nlp.tagger.predict([docs])

print(scores)
probs = tensors[0]
for p in probs:
    print(p, max(p), p.tolist().index(max(p)))
这打印出我猜测的是预测的一些整数表示(考虑到“整数”和“表示”得到相同的分数),然后句子中每个单词都有96个浮点数组。它还列出了最高分数和最高分数的位置,但似乎对于大多数单词来说,
p
数组中有多个项目获得了类似的值。现在我想知道这些数组意味着什么,以及如何从中提取每个分类的概率



问题是:我如何解释这个输出以获得spaCy的tagger找到的特定标记的特定概率?或者用另一种方式提出同样的问题:上面代码生成的输出意味着什么?

您可能希望检查如何提取ner标记的概率。我怀疑评估pos概率可能类似。如果您找到问题的答案,请发回@SergeyBushmanov我已经研究了一段时间,我注意到有一个
nlp.entity.beam\u parse
方法,以及
nlp.parser.beam\u parse
,但显然对于我想要分析的东西,没有类似的方法
nlp.tagger.beam\u parse
。你知道我在哪里可以找到更多的资源来帮助我找到一种方法,将同样的方法应用到标记器上吗?@SergeyBushmanov我编辑了我的问题,加入了一些代码,试图使用这些代码来达到预期的效果。然而,我并不是真的在关注斯帕西的tagger预测结果。你能帮忙吗?它必须是
doc=nlp(text);分数,张量=nlp.tagger.predict([doc])
,我怀疑这些只是pos'的关键。对于那些建议结束这个问题的人来说,如果他们能分享这样做的原因,那就太好了。使问题有机会得到相应的调整。