美丽的汤findAll()没有找到第一个

时间:2018-06-10 15:44:56

标签: python-3.x beautifulsoup

我正在为我的学士论文工作基于神经网络的共识解析系统,当我阅读语料库时我遇到了问题。

语料库已经预先处理,我只需要阅读它来做我的东西。我使用Beautiful Soup 4来读取包含我需要的数据的每个文档的xml文件。

文件如下所示:

<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE markables SYSTEM "markables.dtd">
<markables xmlns="www.eml.org/NameSpaces/markable">
<markable id="markable_102" span="word_390" grammatical_role="vc"  coref_set="empty"  visual="none"   rel_type="none"   np_form="indefnp"  type="" entity="NO" nb="UNK" def="INDEF"  sentenceid="19" lemmata="premia" pos="nn" head_pos="word_390" wikipedia="" mmax_level="markable"/>
<markable id="markable_15" span="word_48..word_49" grammatical_role="vc"  coref_set="empty"  visual="none"   rel_type="none"   np_form="defnp"  type="" entity="NO" nb="SG" def="DEF"  sentenceid="3" lemmata="Grozni hegoalde" pos="nnp nn" head_pos="word_48" wikipedia="Grozny" mmax_level="markable"/>
<markable id="markable_101" span="word_389" grammatical_role="sbj"  coref_set="set_21"  coref_type="named entities"  visual="none"   rel_type="coreferential"  sub_type="exact repetition"   np_form="ne_o"  type="enamex" entity="LOC" nb="SG" def="DEF" sentenceid="19" lemmata="Mosku" pos="nnp" head_pos="word_389" wikipedia="" mmax_level="markable"/>
...

我需要在这里提取所有跨度,所以尝试使用此代码(python3):

...
from bs4 import BeautifulSoup
...
file1 = markables+filename+"_markable_level.xml"
xml1 = open(file1) #markable

soup1 = BeautifulSoup(xml1, "html5lib") #markable
...
...
for markable in soup1.findAll('markable'):
    try:
        span = markable.contents[1]['span']
        print(span)
        spanA = span.split("..")[0]
        spanB = span.split("..")[-1]
...

(我忽略了大部分代码,因为它们是500行)

python3 aurreprozesaketaSTM.py
train
--- 28.329787254333496 seconds ---
&&&&&&&&&&&&&&&&&&&&&&&&&       egun.06-1-p0002500.2000-06-01.europa
word_48..word_49
word_389
word_385..word_386
word_48..word_52
...

如果您使用输出结果使用xml文件,则可以看到缺少word_390。

我得到了我需要的几乎所有数据,然后预处理所有内容,使用神经网络构建系统,最后我得到分数和所有......

但是当我丢失每个文档的第一个单词时,我的系统准确度会比应该的低一些。

任何人都可以帮我吗?知道问题在哪里吗?

1 个答案:

答案 0 :(得分:1)

您正在使用html5lib解析XML。解析XML不支持它。

  

lxml的XML解析器...目前唯一支持的XML解析器

https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser