0

ロイター データセットのさまざまな sgml ファイルを解析するプログラムに取り組んでいます。しかし、私が見つけたドキュメントには、すべての子を含むルート ノードが含まれていません。<reuters>..</reuters>DTD の後にタグのセットがあるだけです。したがって、ツリーを解析して使用すると、リスト全体でgetroot()はなく、最初のタグのみが得られます。<reuters>入力ファイルを変更せずに回避するにはどうすればよいですか? 私のコードは以下のとおりです。

import os
from lxml import etree as ET

dirname = 'dataset'

for filename in os.listdir(dirname):
    filepath = os.path.join(dirname, filename)

    parser = ET.parser(encoding='utf-8', recover=True)

    tree = ET.parse(filepath, parser)

    root = tree.getroot()

このルート要素は最初の<reuters>タグにすぎませんが、sgml ファイルは以下のとおりです。

<!DOCTYPE lewis SYSTEM "lewis.dtd">
<reuters> .. </reuters>
<reuters> .. </reuters>
<reuters> .. </reuters>

私が望むのは<reuters>、一度に 1 つずつすべてのタグを取得し、その内容に取り組むことです。

4

0 に答える 0