首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将文本句子转换为CoNLL-U格式?

如何将文本句子转换为CoNLL-U格式?
EN

Stack Overflow用户
提问于 2020-05-14 14:10:43
回答 1查看 852关注 0票数 2

我正在研究使用CoNLL-U格式的依赖项解析。我可以找到如何处理CoNLL-U解析器或tokenlist,但我无法找到如何将文本句子转换为CoNLL-U格式。

我试着从https://github.com/datquocnguyen/jPTDP转换代码

代码语言:javascript
复制
def conllConverter(path):
    writer = open(path) + ".conllu", "w", encoding = "utf-8")
    lines = open(path, "r", encoding = "utf-8").readlines()
    for line in lines:
        tok = line.strip().split()
        if not tok or line.strip() == "":
            writer.write("\n")
        else:
            count += 1
            writer.write(str(count) + "\t" + word + "\t" + "\t".join(['_'] * 8) + "\n")
        writer.write("\n")
    writer.close()

if __name__ == "__main__":
    conllCoverter("test")
    pass

"test“文件,这是conllCoverter(路径)函数的输入,是"_io Text10Wrapper”格式的文件,里面包含了我想要转换成CoNLL-U文件的文本句子,比如: 1.完全令人沮丧的经历。2.付了额外的钱买了可以连接的空调。

然而,在我尝试了上面定义的conllConverter(path)函数之后,输出只显示了10个原始列(看起来像是CoNLL-U格式)和原始文本,没有任何额外的信息。

总之,我想问一下如何将文本句子转换为CoNLL-U格式。

EN

回答 1

Stack Overflow用户

发布于 2021-03-03 04:16:21

尝尝这个

代码语言:javascript
复制
import spacy
from spacy_conll import ConllFormatter

nlp = spacy.load('en_core_web_sm')
conllformatter = ConllFormatter(nlp, ext_names={'conll_pd': 'pandas'},
                                conversion_maps={'lemma': {'-PRON-': 'PRON'}})
nlp.add_pipe(conllformatter, after='parser')
doc = nlp('The quick brown fox jumps over the lazy dog.')
print(doc._.pandas)

这将为您提供以下输出

代码语言:javascript
复制
   id   form  lemma upostag xpostag           feats  head    deprel deps  misc
    1    The    the     DET      DT               _     5       det    _   _
    2  quick  quick     ADJ      JJ      Degree=pos     5      amod    _   _
    3  brown  brown     ADJ      JJ      Degree=pos     5      amod    _   _
    4    fox    fox    NOUN      NN     Number=sing     5  compound    _   _
    5  jumps   jump    NOUN     NNS     Number=plur     0      ROOT    _   _
    6   over   over     ADP      IN               _     5      prep    _   _
    7    the    the     DET      DT               _     9       det    _   _
    8   lazy   lazy     ADJ      JJ      Degree=pos     9      amod    _   _
    9    dog    dog    NOUN      NN     Number=sing     6      pobj    _   SpaceAfter=No
    10      .      .   PUNCT       .  PunctType=peri     5     punct   _   SpaceAfter=No
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61790489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档