質問編集履歴

3

一部修正

2022/06/19 05:45

投稿

studyprg
studyprg

スコア57

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。
6
6
  xmlの処理について試しているのですが、難航しています.
7
- 欲しい出力は,,<title>~~</title>のシークポイント(pb[0])と〜〜部分のバイト数(pb[1])の記入されたファイルです.
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

ソースコード修正

2022/06/19 05:43

投稿

studyprg
studyprg

スコア57

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

ソースコード修正

2022/06/19 05:40

投稿

studyprg
studyprg

スコア57

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
- size_t p, pb[2];
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, "<page>"))
37
+ if (strstr(line, "<text"))
50
- {
38
+ {
51
- pb[0] = p;
39
+ pb[0] = p;
52
-
40
+
53
- if (strstr(line, "</page>"))
41
+ if (strstr(line, "</text>"))
54
- {
42
+ {
55
- pb[1] = ppb[0];
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
  ```