2017-01-22 2 views
1

Ich wünsche die Frage/Antwort-Paare aus https://archive.org/download/stackexchange, speziell aus der Posts.xml Datei aus einer der Deponien zu extrahieren (ich wählte zufällig die Anime Dump, da es recht klein und in der Nähe der war oben). Mein Verständnis davon, wie diese Datei ausgelegt ist, ist, dass es zwei PostTypeId Typen gibt, 1 ist die Frage (enthält den Körper der Frage, Titel und andere Metadaten) und 2 ist die Antwort (enthält Punktzahl, den Körper der Antwort und andere Metadaten).Extract Q & A-Paare aus dem XML-Stack Dumps

Die Daten beziehen sich leicht genug, wo, wenn wir einen Eintrag haben wie

<row Id="1" PostTypeId="1" AcceptedAnswerId="8" CreationDate="2012-12-11T20:37:08.823" Score="69" ViewCount="22384" Body="&lt;p&gt;Assuming the world in the One Piece universe is round, then there is not really a beginning or an end of the Grand Line.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;The Straw Hats started out from the first half and are now sailing across the second half.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;Wouldn't it have been quicker to set sail in the opposite direction from where they started?  &lt;/p&gt;&#xA;" OwnerUserId="21" LastEditorUserId="1398" LastEditDate="2015-04-17T19:06:38.957" LastActivityDate="2015-05-26T12:50:40.920" Title="The treasure in One Piece is at the end of the Grand Line. But isn't that the same as the beginning?" Tags="&lt;one-piece&gt;" AnswerCount="5" CommentCount="0" FavoriteCount="2" /> 

Die entsprechende Antwort wäre:

<row Id="8" PostTypeId="2" ParentId="1" CreationDate="2012-12-11T20:47:52.167" Score="60" Body="&lt;p&gt;No, there is a reason why they can't. &lt;/p&gt;&#xA;&#xA;&lt;p&gt;Basically the &lt;a href=&quot;http://onepiece.wikia.com/wiki/New_World&quot;&gt;New World&lt;/a&gt; is beyond the &lt;a href=&quot;http://onepiece.wikia.com/wiki/Red_Line&quot;&gt;Red Line&lt;/a&gt;, but you cannot &quot;walk&quot; on it, or cross it. It's a huge continent, very tall that you cannot go through. You can't cross the &lt;a href=&quot;http://onepiece.wikia.com/wiki/Calm_Belt&quot;&gt;Calm Belt&lt;/a&gt; either, unless you have some form of locomotion such as the Navy or &lt;a href=&quot;http://onepiece.wikia.com/wiki/Boa_Hancock&quot;&gt;Boa Hancock&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;So the only way is to start from one of the Four Seas, then to go the &lt;a href=&quot;http://onepiece.wikia.com/wiki/Reverse_Mountain&quot;&gt;Reverse Mountain&lt;/a&gt; and follow the Grand Line until you reach &lt;em&gt;&lt;a href=&quot;http://onepiece.wikia.com/wiki/Raftel&quot;&gt;Raftel&lt;/a&gt;&lt;/em&gt;, which supposedly is where One Piece is located.&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&quot;http://i.stack.imgur.com/69IZ0.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/p&gt;&#xA;" OwnerUserId="15" LastEditorUserId="1528" LastEditDate="2013-05-06T19:21:04.703" LastActivityDate="2013-05-06T19:21:04.703" CommentCount="1" /> 

Wo innerhalb des ersten XML-Schnipsel PostTypeId="1" zeigt an, dass diese Zeile a Frage und AcceptedAnswerId="8" zeigt die Id der Antwort an. Und im zweiten XML-Snippet haben wir die Id="8", die AcceptedAnswerId von der Frage ist, PostTypeId="2", die angibt, dass dies eine Antwort ist, und ParentId die Fragen sind Id.

Nun mit dieser gesagt wie konnte ich diese Daten für die Frage/Antwort-Paare einfach abfragen. Im Idealfall wäre es nützlich, wenn ich dies in eine SQLite3- oder Mysql-Datenbank konvertieren könnte, wo ich mit diesen Arten von Datenstrukturen vertraut bin. Wenn dies nicht möglich ist (entweder über die Datenbankfunktionen selbst oder über einen Skript-Wrapper zum Füllen der Datenbank), würde ich diese Daten in Ruby analysieren, so dass ich das gesamte XML-Dokument durchgehen kann, das die title und body der Frage extrahiert pair es mit dem passenden answer Körper.

Danke für Ihre Zeit.

Antwort

0

Der Stapel Exchange Creative Commons Data Dump ist nur ein (bereinigt) Dump von der Stack Exchange Produktion Microsoft SQL Server-Datenbank. In Anbetracht der Tatsache, dass die Daten aus einer SQL-Datenbank stammen und echte relationale Daten sind, können Sie sie wieder in eins importieren.

Die Datenbankschemata sind in der Data Dump's README beschrieben, und Sie können einige alte Skripts zum Importieren in eine Datenbank unter Meta Stack Exchange finden. Natürlich, wenn Sie nur eine SQL-ähnliche relationale Abfrage-Schnittstelle haben möchten, können Sie einfach Stack Exchange Data Explorer verwenden.

+0

Danke, ich werde einen Blick darauf werfen. Ich bin nicht auf der Suche nach einer Schnittstelle online, da ich alle Daten Dumps Q & A-Paare und andere Daten für ein Projekt zu kratzen. Dies erfordert eine Möglichkeit für mich, die Daten von den Dumps zu nehmen und sie auf eine Weise zu speichern, wie ich sie beschrieben habe. Ich werde versuchen, es wieder in eine DB zu importieren. Danke noch einmal. –