wikipedia dump データの処理について〜読み込みと反映ができない〜

自然言語処理について勉強しています。
Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
xmlの処理について試しているのですが、出力結果が想定とは全然違って困っています。
欲しい出力は,,<page>~~</page>の中身です。
後述の一例が取得できず困っています。
プログラミングはあまり得意ではないです。

以下に用意したファイル(記事の始点と記事の大きさのbyte数が入っている。)の一部とソースコードを貼り付けます。

get_text_byte.txt(一部)

607      10049 12666      4195 16871      483 17364      633 18007      68927 86944      3990 90944      52745 143699      3193 146902      83814 230726      1897 232633      3884 236527      4580 241117      571 241698      4139 245847      3181 249038      619 249667      1711 251388      3170 ... ...

Wiki_getter2_All.c

#include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 256*1024*1024 int main (){ int p,p1=0; int pb[5]={}; char line[SIZE]; FILE *fp =NULL; FILE *fr =NULL; FILE *gt =NULL; fp=fopen("jawikiの分割ファイル.xml" , "r"); char title[SIZE]; gt = fopen("get_text_all.txt","w"); fr = fopen("get_text_byte.txt", "r"); if ((NULL == fp)||(NULL== fr)||(NULL== gt)){ printf("abootしました。読み込みできてないよ"); abort(); while (fscanf(fr, "%d \t %d \n ", pb[0], &pb[1]) != EOF) { fseek(fp,pb[0],SEEK_CUR); p = fp; printf("現在のファイルポインタの位置は「%d」です。, 読み込むバイトは「%d」\n",p1,&pb[1]);//現在位置と読み込むバイトの確認。 fgets(line,pb[1],fp); fprintf(fw,"%s \n",line); } printf("ok");//終了 fclose(fp); fclose(fr); fclose(gt); }

欲しい出力の一例です。これが大量に入ったファイルが欲しいです。

<page> <title>鳥取砂丘</title> <ns>0</ns> <id>19812</id> <revision> <id>53717095</id> <parentid>53211643</parentid> <timestamp>2014-12-06T03:46:16Z</timestamp> <contributor> <ip>58.156.158.18</ip> </contributor> <comment>/* 砂丘の利用と周辺住民とのかかわり */</comment> <model>wikitext</model> <format>text/x-wiki</format> <text xml:space="preserve">{{Coord|35|32|27.821|N|134|13|41.789|E|region:JP|display=title}} [[ファイル:Tottori-Sakyu Tottori Japan.JPG|thumb|300px|馬の背]] {{mapplot|134.2290|35.5407|鳥取砂丘}} '''鳥取砂丘'''(とっとりさきゅう)は、[[鳥取県]][[鳥取市]]の[[日本海]]海岸に広がる広大な砂礫地で、代表的な[[海岸砂丘]]。日本三大砂丘の1つである&lt;ref&gt;その他の2つについては、諸説ある。&lt;/ref&gt;。[[山陰海岸国立公園]]の特別保護地区に指定されており、南北2.4km、東西16kmに広がる日本最大の観光可能な[[砂丘]]である。(一般に立ち入れない物も含めると、日本最大の砂丘は&lt;!--(内陸にある砂丘を含めると--&gt;[[青森県]]の[[猿ヶ森砂丘]])。&lt;!--内陸砂丘は大陸内部の砂丘を示し、日本には内陸砂丘なないため編集しました--&gt; [[1955年]](昭和30年)に国の[[天然記念物]]に指定された。[[2007年]](平成19年)には[[日本の地質百選]]に選定された。 == 砂丘の状況 == [[中国山地]]の[[花崗岩]]質の[[岩石]]が[[風化]]し、[[千代川]]によって日本海へ流されたあと、海岸に集まったものが砂丘の主な[[砂]]となっている。海中の砂を海岸に向けて流れ寄せる潮流と、海岸線に[[堆積]]した砂を内陸へ吹き込む[[卓越風]]の働きで形成された。 砂丘は千代川の東西に広がっているが、通常「鳥取砂丘」というと、千代川の東側の545haの「浜坂砂丘」を指す。砂丘によって海から切り離されて出来た湖である[[多鯰ヶ池]]がすぐ南東にある。 <中略> </text> <sha1>axvz6j2vrmxe3n68ssg11m0w8qtcobn</sha1> </revision> </page>

コメントを投稿

0 コメント