質問編集履歴
3
追記更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -136,7 +136,7 @@
|
|
136
136
|
|
137
137
|
|
138
138
|
```
|
139
|
-
次にソースコードです.
|
139
|
+
次にソースコードです.//追記に現在のソースを追加してます.
|
140
140
|
```
|
141
141
|
#include <stdio.h>
|
142
142
|
#include <stdlib.h>
|
@@ -192,28 +192,111 @@
|
|
192
192
|
|
193
193
|
|
194
194
|
一応現在の実行結果です.
|
195
|
+
### 追記:
|
196
|
+
今のソースコードです.
|
197
|
+
タイトルとid処理を一通りやって終わってるようです.
|
195
|
-
|
198
|
+
以下ソースコードと実行結果です.idとタイトルは表示できてるようです.
|
199
|
+
|
200
|
+
```ここに言語を入力
|
201
|
+
#include <stdio.h>
|
202
|
+
#include <stdlib.h>
|
203
|
+
#include <string.h>
|
204
|
+
#define SIZE 256 * 1024 * 1024
|
205
|
+
int main()
|
206
|
+
{
|
207
|
+
|
208
|
+
int p = 0;
|
209
|
+
int pb[3] = {};
|
210
|
+
char *line = malloc(SIZE);
|
211
|
+
char *title = malloc(SIZE);
|
212
|
+
int *id = malloc(SIZE);
|
213
|
+
char *text = malloc(SIZE);
|
214
|
+
char *stitle=malloc(SIZE);
|
215
|
+
FILE *fp = NULL;
|
216
|
+
FILE *fr = NULL;
|
217
|
+
FILE *fr2 = NULL;
|
218
|
+
FILE *gt = NULL;
|
219
|
+
fp = fopen("jawiki-20211220-pages-articles-multistream2.xml", "r");//大元.wiki記事
|
220
|
+
fr = fopen("list_history0.txt", "r"); //読み込むファイル検索文字列
|
221
|
+
fr2 = fopen("get_X1.txt", "r");//読み込むファイル2タイトルとidが記入
|
222
|
+
gt = fopen("history_0text.txt", "w"); //書き込むファイル
|
223
|
+
while (fscanf(fr, "%s\n", stitle) != EOF)
|
224
|
+
{
|
225
|
+
printf("Stitle(検索対象)is %s.\n", stitle);
|
226
|
+
fr2 = fopen("get_X1.txt", "r");
|
227
|
+
while (fscanf(fr2, "%s\t%d\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
|
228
|
+
{
|
229
|
+
printf("確認用title:%s\tID:%d\n",title,id);
|
230
|
+
if ((strcmp(stitle, title) == 0)) //タイトルが見つかった時.
|
231
|
+
{
|
232
|
+
printf("%s is found! title:%s\n", stitle, title);
|
233
|
+
fseek(fp, pb[0], SEEK_SET);
|
234
|
+
fgets(text, pb[1], fp);
|
235
|
+
printf("%s\t%d\n%s", title, id, text);
|
236
|
+
}
|
237
|
+
else
|
238
|
+
{
|
239
|
+
continue;
|
240
|
+
}
|
241
|
+
|
242
|
+
}
|
243
|
+
fclose(fr2);
|
244
|
+
}
|
245
|
+
printf("\n\n\nprocess ok!\n\n\n");
|
246
|
+
fclose(fp);
|
247
|
+
fclose(fr);
|
248
|
+
|
249
|
+
fclose(gt);
|
250
|
+
}
|
251
|
+
|
252
|
+
```
|
253
|
+
|
196
254
|
```cmd
|
197
255
|
|
198
|
-
確認用title:バトル封神 ID:849640
|
199
|
-
確認用title:
|
256
|
+
確認用title:警察学校 ID:1463812096
|
257
|
+
確認用title:ファイル:Kasai-ichijyoji-kaizan1.JPG ID:1463812096
|
258
|
+
確認用title:Template:石勝線 ID:1463812096
|
259
|
+
確認用title:ロドピ山脈 ID:1463812096
|
260
|
+
確認用title:ボブ・ゲルドフ ID:1463812096
|
261
|
+
確認用title:Template:根室本線2 ID:1463812096
|
200
|
-
確認用title:
|
262
|
+
確認用title:商船三井ビルディング ID:1463812096
|
263
|
+
確認用title:Template:根室本線1 ID:1463812096
|
264
|
+
確認用title:ファイル:Kasai-ichijyoji-Jougyoudou.JPG ID:1463812096
|
265
|
+
確認用title:Category:干潟 ID:1463812096
|
266
|
+
確認用title:Template:根室本線3 ID:1463812096
|
267
|
+
確認用title:ジュゼッペ・マッツィーニ ID:1463812096
|
268
|
+
確認用title:総括制御 ID:1463812096
|
201
|
-
確認用title:
|
269
|
+
確認用title:羽車 ID:1463812096
|
270
|
+
確認用title:Template:釧網本線 ID:1463812096
|
202
|
-
確認用title:
|
271
|
+
確認用title:劇団たいしゅう小説家 ID:1463812096
|
203
|
-
確認用title:
|
272
|
+
確認用title:応急手当普及員 ID:1463812096
|
273
|
+
確認用title:河内十人斬り ID:1463812096
|
274
|
+
確認用title:Template:石北本線 ID:1463812096
|
275
|
+
確認用title:宇佐美-網代バイパス ID:1463812096
|
276
|
+
確認用title:ファイル:Kasai-ichijyoji-33jizo.JPG ID:1463812096
|
204
|
-
確認用title:
|
277
|
+
確認用title:鈴木邦彦 ID:1463812096
|
278
|
+
確認用title:(作曲家) ID:1463812096
|
279
|
+
確認用title:島根県道201号湯里停車場祖式線 ID:1463812096
|
280
|
+
確認用title:Template:宗谷本線 ID:1463812096
|
281
|
+
確認用title:ゴーロン星人 ID:1463812096
|
282
|
+
確認用title:ロベルト・デュラン ID:1463812096
|
283
|
+
確認用title:アフォンソ1世 ID:1463812096
|
284
|
+
確認用title:(ポルトガル王) ID:1463812096
|
285
|
+
確認用title:グルンヴァルト ID:1463812096
|
286
|
+
確認用title:島根県道186号美郷大森線 ID:1463812096
|
205
|
-
確認用title:
|
287
|
+
確認用title:堀内昭義 ID:1463812096
|
288
|
+
確認用title:ファイル:Akame48Taki-iriguchi.JPG ID:1463812096
|
289
|
+
確認用title:出雲バイパス ID:1463812096
|
290
|
+
確認用title:アズバーズ ID:1463812096
|
291
|
+
確認用title:大沢悠里のにっぽん元気カンパニー ID:1463812096
|
292
|
+
確認用title:堀口健治 ID:1463812096
|
293
|
+
確認用title:島根県道288号瓜坂川合線 ID:1463812096
|
294
|
+
確認用title:トヨタ・M型エンジン ID:1463812096
|
295
|
+
確認用title:パルマラット ID:1463812096
|
296
|
+
確認用title:地名に由来する小惑星の一覧 ID:1463812096
|
297
|
+
確認用title:Wikipedia:削除依頼/アルバムの一覧 ID:1463812096
|
298
|
+
確認用title:人名に因む名を持つ小惑星の一覧 ID:1463812096
|
299
|
+
確認用title:日本神話に関する名を持つ小惑星の一覧 ID:1463812096
|
206
|
-
確認用title:1
|
300
|
+
確認用title:吾妻橋 ID:1463812096
|
207
|
-
確認用title:1536295064 ID:外山雄三
|
208
|
-
確認用title:1536302448 ID:工藤順子
|
209
|
-
確認用title:1536318445 ID:工藤順子
|
210
|
-
Stitle(検索対象)is ファイル:十弗駅看板.jpg.
|
211
|
-
Stitle(検索対象)is 桂米朝.
|
212
|
-
Stitle(検索対象)is 国道101号.
|
213
|
-
Stitle(検索対象)is 笑福亭松鶴.
|
214
|
-
Stitle(検索対象)is リサジュー図形.
|
215
|
-
Stitle(検索対象)is ムラカ.
|
216
|
-
Stitle(検索対象)is 日淳.
|
217
|
-
Stitle(検索対象)is 井原裕士.
|
218
|
-
```
|
301
|
+
```
|
219
|
-
|
302
|
+
|
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -151,7 +151,7 @@
|
|
151
151
|
char *title = malloc(SIZE);
|
152
152
|
char *id = malloc(SIZE);
|
153
153
|
char *text = malloc(SIZE);
|
154
|
-
char *stitle;
|
154
|
+
char *stitle=malloc(SIZE);
|
155
155
|
FILE *fp = NULL;
|
156
156
|
FILE *fr = NULL;
|
157
157
|
FILE *fr2 = NULL;
|
@@ -165,7 +165,8 @@
|
|
165
165
|
printf("Stitle(検索対象)is %s.\n", stitle);
|
166
166
|
while (fscanf(fr2, "%s\t%s\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
|
167
167
|
{
|
168
|
+
printf("確認用title:%s\tID:%s\n",title,id);
|
168
|
-
if ((strcmp(stitle, title) == 0))//タイトルが見つかった時.
|
169
|
+
if ((strcmp(stitle, title) == 0)) //タイトルが見つかった時.
|
169
170
|
{
|
170
171
|
printf("%s is found! title:%s\n", stitle, title);
|
171
172
|
fseek(fp, pb[0], SEEK_SET);
|
@@ -180,7 +181,7 @@
|
|
180
181
|
}
|
181
182
|
|
182
183
|
}
|
183
|
-
printf("process ok!\n\n\n");
|
184
|
+
printf("\n\n\nprocess ok!\n\n\n");
|
184
185
|
fclose(fp);
|
185
186
|
fclose(fr);
|
186
187
|
fclose(fr2);
|
@@ -191,26 +192,28 @@
|
|
191
192
|
|
192
193
|
|
193
194
|
一応現在の実行結果です.
|
195
|
+
追記:1週したらもう一度頭から読み込み直すはずのfr2が一回だけで止まってるようです.
|
194
196
|
```cmd
|
195
197
|
|
198
|
+
確認用title:バトル封神 ID:849640
|
199
|
+
確認用title:島津宗久 ID:642857
|
200
|
+
確認用title:静岡県立浜北西高等学校 ID:1307385
|
196
|
-
|
201
|
+
確認用title:柳卓 ID:551069
|
202
|
+
確認用title:ソビエト連邦最高会議 ID:1037035
|
197
|
-
|
203
|
+
確認用title:島田洋七 ID:474
|
204
|
+
確認用title:大砂土村 ID:1556946
|
205
|
+
確認用title:J級潜水艦 ID:(イギリス海軍)
|
206
|
+
確認用title:1536292106 ID:ランカウイ島
|
207
|
+
確認用title:1536295064 ID:外山雄三
|
208
|
+
確認用title:1536302448 ID:工藤順子
|
209
|
+
確認用title:1536318445 ID:工藤順子
|
198
210
|
Stitle(検索対象)is ファイル:十弗駅看板.jpg.
|
199
|
-
ファイル:十弗駅看板.jpgは見つかりませんでした.
|
200
211
|
Stitle(検索対象)is 桂米朝.
|
201
|
-
桂米朝は見つかりませんでした.
|
202
212
|
Stitle(検索対象)is 国道101号.
|
203
|
-
国道101号は見つかりませんでした.
|
204
213
|
Stitle(検索対象)is 笑福亭松鶴.
|
205
|
-
笑福亭松鶴は見つかりませんでした.
|
206
214
|
Stitle(検索対象)is リサジュー図形.
|
207
|
-
リサジュー図形は見つかりませんでした.
|
208
215
|
Stitle(検索対象)is ムラカ.
|
209
|
-
ムラカは見つかりませんでした.
|
210
216
|
Stitle(検索対象)is 日淳.
|
211
|
-
日淳は見つかりませんでした.
|
212
217
|
Stitle(検索対象)is 井原裕士.
|
213
|
-
井原裕士は見つかりませんでした.
|
214
|
-
process ok!
|
215
|
-
```
|
218
|
+
```
|
216
|
-
|
219
|
+
|
1
一部修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,11 @@
|
|
4
4
|
自然言語処理について勉強しています。
|
5
5
|
Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
|
6
6
|
xmlの処理について試しているのですが、出力結果が想定とは違って困っています。
|
7
|
+
|
8
|
+
やりたいこととしては以下です.
|
9
|
+
**・list_history0.txt の各行が欲しい記事の "タイトル" を示している。
|
10
|
+
・get_X1.txt の各行が (xml ファイル内の記事の ) "タイトル", "id", "開始バイトオフセット", "バイトサイズ" を示している。
|
7
|
-
|
11
|
+
・list_history0.txt から一行ずつ読み込み、 get_X1.txt からタイトルが一致する行を探して"開始バイトオフセット", "バイトサイズ"を利用して xml ファイルからその記事を取り出し、「タイトル(タブ)id(改行)記事」を history_0text.txt に書き出す**
|
8
12
|
|
9
13
|
プログラミングはあまり得意ではないです。
|
10
14
|
|
@@ -159,7 +163,7 @@
|
|
159
163
|
while (fscanf(fr, "%s\n", stitle) != EOF)
|
160
164
|
{
|
161
165
|
printf("Stitle(検索対象)is %s.\n", stitle);
|
162
|
-
while (fscanf(
|
166
|
+
while (fscanf(fr2, "%s\t%s\t%d\t%d\n", title, id, &pb[0], &pb[1]) != EOF)
|
163
167
|
{
|
164
168
|
if ((strcmp(stitle, title) == 0))//タイトルが見つかった時.
|
165
169
|
{
|
@@ -174,7 +178,7 @@
|
|
174
178
|
}
|
175
179
|
|
176
180
|
}
|
177
|
-
|
181
|
+
|
178
182
|
}
|
179
183
|
printf("process ok!\n\n\n");
|
180
184
|
fclose(fp);
|
@@ -182,8 +186,6 @@
|
|
182
186
|
fclose(fr2);
|
183
187
|
fclose(gt);
|
184
188
|
}
|
185
|
-
|
186
|
-
|
187
189
|
|
188
190
|
```
|
189
191
|
|