質問編集履歴
3
一部修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
|
6
6
|
xmlの処理について試しているのですが、難航しています.
|
7
|
-
欲しい出力は,,<t
|
7
|
+
欲しい出力は,,<text ~~</text>のシークポイント(pb[0])と〜〜部分のバイト数(pb[1])の記入されたファイルです.(同様に<title>,<id>も欲しい)
|
8
8
|
シークポイントとバイト数さえわかれば後述の2つ目のプログラムを使って
|
9
9
|
後述の実行結果のpb[0]部分が0と表示されていて困ってます.
|
10
10
|
|
@@ -15,7 +15,6 @@
|
|
15
15
|
以下にソースコードを貼り付けます。
|
16
16
|
|
17
17
|
```ここに言語を入力
|
18
|
-
コード
|
19
18
|
|
20
19
|
#include <stdio.h>
|
21
20
|
#include <stdlib.h>
|
2
ソースコード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,9 +42,6 @@
|
|
42
42
|
{
|
43
43
|
pb[1] = p-pb[0];
|
44
44
|
}
|
45
|
-
|
46
|
-
// fprintf(fw, "%zu\t%zu\n", pb[0], pb[1]); // ...
|
47
|
-
// fprintf(fw, "%d\t%d\n", pb[0], pb[1]); ... テキスト形式で観察可能
|
48
45
|
}
|
49
46
|
printf("%d\t%d\n", pb[0], pb[1]);
|
50
47
|
}
|
1
ソースコード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,31 +1,19 @@
|
|
1
|
-
|
1
|
+
### やりたいこと
|
2
|
-
|
2
|
+
|
3
|
-
|
3
|
+
自然言語処理について勉強しています。
|
4
|
+
|
4
5
|
Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
|
5
|
-
xmlの処理について試しているのですが、
|
6
|
+
xmlの処理について試しているのですが、難航しています.
|
6
7
|
欲しい出力は,,<title>~~</title>のシークポイント(pb[0])と〜〜部分のバイト数(pb[1])の記入されたファイルです.
|
7
8
|
シークポイントとバイト数さえわかれば後述の2つ目のプログラムを使って
|
8
9
|
後述の実行結果のpb[0]部分が0と表示されていて困ってます.
|
9
10
|
|
10
|
-
プログラミング構成
|
11
|
+
### プログラミング構成
|
11
12
|
jawiki-20211220-pages-articles-multistream2.xml(読み込み先のテキストファイル)
|
12
13
|
Wiki_getter1_Byte.c(バイト数を算出するプログラム,<Page>〜〜</page>間は取得できている.)
|
13
14
|
Wikigetter2_text.c(getter1の出力ファイル(get_text_Byte.txt系列)からシークポイントまでfseekしてバイト数分freadしてテキストファイルに記入上と同じくページ全体とテキスト部分が取得できている.)
|
14
15
|
以下にソースコードを貼り付けます。
|
15
|
-
|
16
|
+
|
16
|
-
やりたいこと
|
17
|
-
自然言語処理について勉強しています。
|
18
|
-
Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
|
19
|
-
xmlの処理について試しているのですが、
|
20
|
-
欲しい出力は,,<title>~~</title>のシークポイント(pb[0])と〜〜部分のバイト数(pb[1])の記入されたファイルです.
|
21
|
-
シークポイントとバイト数さえわかれば後述の2つ目のプログラムを使って
|
22
|
-
後述の実行結果のpb[0]部分が0と表示されていて困ってます.
|
23
|
-
|
24
|
-
プログラミング構成
|
25
|
-
jawiki-20211220-pages-articles-multistream2.xml(読み込み先のテキストファイル)
|
26
|
-
Wiki_getter1_Byte.c(バイト数を算出するプログラム,,欲しいのは<text>~~</text>,<title>~~</title>,<id>~~</id>間のバイト.)
|
27
|
-
Wikigetter2_text.c(getter1の出力ファイル(get_text_Byte.txt系列)からシークポイントまでfseekしてバイト数分freadしてテキストファイルに記入上と同じくページ全体とテキスト部分が取得できるプログラム.)
|
28
|
-
以下にソースコードを貼り付けます。
|
29
17
|
```ここに言語を入力
|
30
18
|
コード
|
31
19
|
|
@@ -37,33 +25,33 @@
|
|
37
25
|
int main()
|
38
26
|
{
|
39
27
|
|
40
|
-
|
28
|
+
int p, pb[2];
|
41
|
-
char *line = malloc(SIZE);
|
29
|
+
char *line = malloc(SIZE);
|
42
|
-
FILE *fp = fopen("jawiki-20211220-pages-articles-multistream2.xml", "r");
|
30
|
+
FILE *fp = fopen("jawiki-20211220-pages-articles-multistream2.xml", "r");
|
43
|
-
FILE *fw = fopen("get_text_byte.txt", "w");
|
31
|
+
FILE *fw = fopen("get_text_byte.txt", "w");
|
44
|
-
|
32
|
+
// printf(fw,"startbyte\t記事のbyte \n");
|
45
|
-
if ((NULL == fp) || (NULL == fw))
|
33
|
+
if ((NULL == fp) || (NULL == fw))
|
46
|
-
abort();
|
34
|
+
abort();
|
47
|
-
while (p = ftell(fp), fgets(line, SIZE, fp))
|
35
|
+
while (p = ftell(fp), fgets(line, SIZE, fp))
|
48
|
-
{
|
36
|
+
{
|
49
|
-
if (strstr(line, "<
|
37
|
+
if (strstr(line, "<text"))
|
50
|
-
{
|
38
|
+
{
|
51
|
-
pb[0] = p;
|
39
|
+
pb[0] = p;
|
52
|
-
|
40
|
+
|
53
|
-
if (strstr(line, "</
|
41
|
+
if (strstr(line, "</text>"))
|
54
|
-
{
|
42
|
+
{
|
55
|
-
pb[1] = p
|
43
|
+
pb[1] = p-pb[0];
|
56
|
-
|
57
|
-
}
|
44
|
+
}
|
58
|
-
|
59
|
-
|
60
|
-
|
45
|
+
|
61
|
-
printf("%zu\t%zu\n", pb[0], pb[1]);
|
46
|
+
// fprintf(fw, "%zu\t%zu\n", pb[0], pb[1]); // ...
|
47
|
+
// fprintf(fw, "%d\t%d\n", pb[0], pb[1]); ... テキスト形式で観察可能
|
62
|
-
}
|
48
|
+
}
|
49
|
+
printf("%d\t%d\n", pb[0], pb[1]);
|
50
|
+
}
|
63
|
-
printf("process ok");
|
51
|
+
printf("process ok");
|
64
|
-
free(line);
|
52
|
+
free(line);
|
65
|
-
fclose(fw);
|
53
|
+
fclose(fw);
|
66
|
-
fclose(fp);
|
54
|
+
fclose(fp);
|
67
55
|
}
|
68
56
|
|
69
57
|
```
|