【发布时间】:2021-09-10 13:53:50
【问题描述】:
我有一个包含 XML 文件的文件夹,我正在尝试计算一个元素中特定单词的出现次数。更具体地说,我想计算文件夹中所有 XML 中的出现次数,例如单词“Impfstoff”(位于元素“mpeg7text:Keyword”中)。 XML 如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<Description xsi:type="ContentEntityType">
-<MultimediaContent xsi:type="mpeg7text:TextType">
-<mpeg7text:Text>
-<mpeg7text:ModelMetadata>
<mpeg7text:Version>tfidf_newmodel</mpeg7text:Version>
</mpeg7text:ModelMetadata>
-<mpeg7text:TextDescriptor xsi:type="mpeg7text:KeywordExtractionType">
-<mpeg7text:Keyword>
<mpeg7text:Keyword>Impfstoff</mpeg7text:Keyword>
<mpeg7text:Relevance>121.58288081128799</mpeg7text:Relevance>
<mpeg7text:Frequency>22</mpeg7text:Frequency>
<mpeg7text:Confidence>1.0</mpeg7text:Confidence>
</mpeg7text:Keyword>
我目前的代码是:
import os
import lxml.etree as et
for filename in os.listdir(path):
if not filename.endswith('.xml'): continue
if filename.endswith('.xml'):
fullname = os.path.join(path, filename)
root = et.parse(fullname)
root.xpath('count(.//mpeg7text:Keyword/mpeg7text:Keyword[.=Corona])')
但我收到此错误:
XPathEvalError Traceback (most recent call last)
<ipython-input-11-0ca6983bfdd7> in <module>
7 #root = tree.getroot(tree)
8 root = et.parse(fullname)
----> 9 root.xpath('count(.//mpeg7text:Keyword/mpeg7text:Keyword[.=Corona])')
src/lxml/etree.pyx in lxml.etree._ElementTree.xpath()
src/lxml/xpath.pxi in lxml.etree.XPathDocumentEvaluator.__call__()
src/lxml/xpath.pxi in lxml.etree._XPathEvaluatorBase._handle_result()
XPathEvalError: Undefined namespace prefix
我有点迷失了现在该怎么做才能计算元素 mpeg7text:Keyword 中的单词 以前有没有人做过这样的事情并且可以在这里提供帮助?那太棒了!
干杯!
【问题讨论】:
标签: python xml nlp find-occurrences