我有很多文本文件需要转换为.xml才能更有效地工作 (我应该做几种语言模型来分析英语方言)
文件是这样的:
<I> <IFL-IDN W2C-001 #1:1> <#> <h> <bold> Some Statement that I can edit </bold> <bold> followed by another </bold> </h>
<IFL-IDN W2C-001 #2:1> <p> <#> more and more text that is not very relevant . </p></I>
每个文件大约有500个单词,我想要做的是识别标签,并关闭未关闭的标签,例如&lt;#&gt;在句子的末尾。
然后我想将整个.txt文件转换为每个单词之前和之后的有效xml文件。 我可以用.split()分隔它,但问题是那些标签中有空格。
我能想到的最好的代码是splilines(),然后是句子上的.split(),然后尝试识别
这是
的代码Korpus = open("w2c-001.txt").read().splitlines()
for i in Korpus:
Sentence = i.split()
for j in range(0,len(Sentence)-2):
if((Sentence[j][0]=='<' and Sentence[j][len(Sentence[j])-1]!='>') or( Sentence[j][0]!='<' and Sentence[j][len(Sentence[j])-1]=='>')):
Sentence[j] = Sentence[j] + " " + Sentence[j+1] +" " + Sentence[j+2]
Sentence.remove(Sentence[j+1])
Sentence.remove(Sentence[j+2])
#print(Sentence[j])
print(Sentence[j])
我的初衷是如果我甚至可以写一些东西来保存.txt文件中的有效xml,那么将该文件转换为.xml不应该是一个很大的问题。 我找不到可以做到这一点的python库,eltree库可以创建xml,但是我发现没有什么可以识别并转换它。
提前感谢您,非常感谢任何帮助。
答案 0 :(得分:0)
首先,您不必加载文件和分割线,您可以遍历这些线。 xml解析器可以分别应用于每一行。
Korpus = open("w2c-001.txt")
for line in Korpus:
...
如果您想自己解析它,请使用正则表达式来查找标记
import re
re.findall(r'<[a-z]*>','<h> <bold> Some Statement that I can edit </bold> <bold> followed by another </bold> </h>')
XML不是一种文件格式,它只是一种语言,只需将纯文本写入.xml文件即可。