是否可以在 spaCy IOB 转换器生成的 JSON 中检索整个句子?

问题描述

按照步骤将IOB格式的数据转换为兼容spaCy的JSON;应该表示句子的值 "raw": string 在我的 JSON 中显示为“null”。

以下是我的数据摘录 (test.iob):

GRIMALTE    B-PERS
AMANT   O
DE  O
LA  O
dame    B-PERS
Gradisse    B-PERS
narre   O
sommairement    O
Les O
amoureux    O
regredz O
de  O
Flamete B-PERS,O
qui O
furent  O
occasion    O
qu' O
il  O
cherchast   O
moyen   O
d'  O
y   O
remedier    O
Chapitre    O
premier O
.   O
BRief   O
traictie    O
par O
Jehan   B-PERS

... continue

然后,我输入了命令:

python -m spacy convert -c auto -s -n 1 -t json ./test.iob . --lang fr 

最后,在输出中,我得到以下 JSON,但没有 "raw" 值:

[
  {
    "id":0,"paragraphs":[
      {
        "raw":null,"sentences":[
          {
            "tokens":[
              {
                "id":0,"orth":"GRIMALTE","space":" ","tag":"-","ner":"U-PERS"
              },{
                "id":1,"orth":"AMANT","ner":"O"
              },{
                "id":2,"orth":"DE",{
                "id":3,"orth":"LA",... continue

我真的很想检索这句话(在“原始”值中),以便能够从 JSON 的实体中创建如下训练集:

[
("GRIMALTE AMANT DE LA dame Gradisse narre sommairement Les amoureux regredz de Flamete,qui furent occasion qu' il cherchast moyen d' y remedier Chapitre premier ",{'entities': [(0,8,'PERS'),(21,25,(26,34,(78,85,'PERS')]})
... continue
]

这可能是因为我的 IOB 文件在句子之间不包含空格吗? (因为查看 examples of the spaCy converter 似乎不会影响 iob 到 json 的转换)

如果您对此问题有任何线索,请提前致谢。

解决方法

由于这种格式的原始语料库不包含空格信息,无法生成原始/正确的raw句,所以保留为nullspacy train 会在训练和评估时考虑是否有空白信息,因此可以在有或没有 raw 的情况下进行训练,或者从有和没有 raw 的混合文档中进行训练。

如果您正在使用 spacy 进行训练,您不希望将此数据转换为带有文本字符串和字符偏移量的格式。如果您有 l' 之类的标记,则会导致问题,如果有以下空格,则会错误地标记化。您应该能够使用带有 spacy train 标签的 JSON 格式的 "ner"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...