ロイター データセットのさまざまな 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 つずつすべてのタグを取得し、その内容に取り組むことです。