Beautiful Soup findAll () не находит первый - PullRequest
0 голосов
/ 10 июня 2018

Я работаю над системой разрешения оснований на основе нейронных сетей для своей дипломной работы бакалавра, и у меня возникает проблема, когда я читаю корпус.

Корпус уже обработан, и мне нужно толькопрочитайте это, чтобы сделать мои вещи.Я использую 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 голосов
/ 10 июня 2018

Вы анализируете XML с помощью html5lib.Он не поддерживается для анализа XML.

Анализатор XML lxml ... Единственный поддерживаемый в настоящее время анализатор XML

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...