首页 > 解决方案 > 如何使用 conllu python 库保存编辑的 .conllu 文件

问题描述

我想问一些我在互联网上可能还找不到的东西。

首先,我使用的是 Universal Dependencies 数据集,并想在 Jupyter Notebook (python 3.6) 上编辑一些数据。

我找到了 conllu 库https://pypi.org/project/conllu/并使用它来处理 .conllu UD 数据集。我想编辑其中一个数据(比如更改引理)。这是示例: 例子

我读过 conllu 库中有一个函数

。连载()

这可以将格式改回 .conllu 格式而不是字符串。

但我认为它不会保存实际文件,它只是打印它。

我想要的只是更改了实际文件。任何人都可以帮助我,好吗?谢谢你。

标签: nlpjupyter-notebookpython-3.6

解决方案


conllu 不在句子级别处理这个问题。您必须遍历每个 TokenList,将其序列化,并将其附加到文件或附加到字符串,然后将其写入文件。

conllu 的替代方案 pyconll能够更轻松地处理这个问题(如果不使用迭代,否则它是相同的),因此。

conll = pyconll.load_from_file("mytreebank.conllu")
for sentence in conll:
    # Your custom work and changes here

conll.write("mynew.conllu")

为了解决 conllu 的问题,这样的事情会起作用:

with open("mynew.conllu", "w") as f:
    for token_list in parse_incr(ud_data):
        # Your custom work and changes here
        serialized = token_list.serialize()
        f.write(serialized)
        f.write('\n\n')

免责声明:我是 pyconll 的创建者。


推荐阅读