У меня есть текстовый файл, я проанализировал его с помощью Python, используя библиотеку xml.etree.cElementTree
.
Во входных данных у меня есть параграф <p>
, содержащий предложения <s>
, в каждом предложении есть слова <w>
, вот текстовый файл, как он выглядит:
This
is
my
first
sentence.
This
is
my
second
sentence.
В выводе я хотел бы иметь следующий XML-файл:
<p>
<s>
<w>this</w>
<w>is</w>
<w>my</w>
<w>first</w>
<w>sentence</w>
<pc>.</pc>
</s>
<s>
<w>this</w>
<w>is</w>
<w>my</w>
<w>second</w>
<w>sentence</w>
<pc>.</pc>
</s>
</p>
Я написал следующий код на python, который дает мне тэг абзаца и тэг слова, и я не знаю, как реализовать кейс, чтобы иметь несколько тэгов <s>
. Предложение начинается с заглавной буквы и заканчивается точкой.
Мой код Python:
source_file = open("file.txt", "r")
for line in source_file:
# catch ponctuation : . and , and ! and ? and ()
if re.match("(\(|\)|\.|\,|\!)", str(line)):
ET.SubElement(p, "pc").text = line
else:
ET.SubElement(p, "w").text = line
tree.write("my_file.xml", encoding="UTF-8", xml_declaration=True)
следующий вывод xml:
<?xml version="1.0" encoding="UTF-8"?>
<p>
<w>this</w>
<w>is</w>
<w>my</w>
<w>first</w>
<w>sentence</w>
<pc>.</pc>
<w>this</w>
<w>is</w>
<w>my</w>
<w>second</w>
<w>sentence</w>
<pc>.</pc>
</p>
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу создать новый тег <s>
для каждого нового предложения. Есть ли способ сделать это с помощью библиотеки xml, использующей python?