質問編集履歴

2

補足を追記

2020/08/06 02:35

投稿

hankechi78
hankechi78

スコア8

test CHANGED
File without changes
test CHANGED
@@ -10,21 +10,27 @@
10
10
 
11
11
 
12
12
 
13
- > Le Monde 
14
-
15
- Environnement & Sciences, lundi 21 mars 2011 367 mots, p. 8 
16
-
17
- タイトル
18
-
19
- 副題
20
-
21
- Brice Pedroletti筆者名
22
-
23
- (記事本文
24
-
25
-
26
-
27
- > © 2011 SA Le Monde. Tous droits réservés. Le présent document est protégé par les lois et conventions internationales sur le droit d'auteur et son utilisation est régie par ces lois et conventions. 
13
+ > Le Monde (新聞社名)
14
+
15
+ Economie, mardi 13 mars 2012 30 mots, p. 16 (カテゴリ・日付・文字数・ページ数)
16
+
17
+ ECONOMIE サブカテゴリ
18
+
19
+ En baisseサブタイトル?
20
+
21
+ Le Japonタイトル
22
+
23
+ 本文1行のみ.
24
+
25
+
26
+
27
+
28
+
29
+ > © 2012 SA Le Monde. Tous droits réservés.       Le présent document est protégé par les lois et conventions internationales sur le droit d'auteur et son utilisation est régie par ces lois et conventions. 
30
+
31
+
32
+
33
+
28
34
 
29
35
 
30
36
 
@@ -32,27 +38,41 @@
32
38
 
33
39
 
34
40
 
35
- > news·20110321·LM·0q2003_332151
36
-
37
-
38
-
39
-
40
-
41
- > Le Monde 
42
-
43
- Environnement & Sciences, lundi 21 mars 2011 66 mots, p. 8 
44
-
45
- (タイトル)
46
-
47
- 副題なし 
48
-
49
- (筆者名なし)
50
-
51
- 本文(複数段落))
52
-
53
-
54
-
55
- > © 2011 SA Le Monde. Tous droits réservés.       Le présent document est protégé par les lois et conventions internationales sur le droit d'auteur et son utilisation est régie par ces lois et conventions. 
41
+ > news·20120313·LM·0q1303_527225
42
+
43
+
44
+
45
+ > Le Monde (新聞社名)
46
+
47
+ Environnement & Sciences, lundi 12 mars 2012 489 mots, p. 9 (カテゴリ・日付・文字数・ページ数)
48
+
49
+ Planète (サブカテゴリ)
50
+
51
+ L'APRÈS-FUKUSHIMA Le Japon, l'année d'après la vague ENTRETIENサブタイトル)
52
+
53
+ Pierre-François Souyri « Les gens de Fukushima se sentent comme des sacrifiés »タイトル
54
+
55
+ 本文1行目
56
+
57
+ 本文2行目
58
+
59
+ 本文3行目. 
60
+
61
+ 本文4行目 
62
+
63
+ 本文5行目.
64
+
65
+ (以下記事本文略)
66
+
67
+
68
+
69
+
70
+
71
+ > © 2012 SA Le Monde. Tous droits réservés.       Le présent document est protégé par les lois et conventions internationales sur le droit d'auteur et son utilisation est régie par ces lois et conventions. 
72
+
73
+
74
+
75
+
56
76
 
57
77
 
58
78
 
@@ -60,12 +80,16 @@
60
80
 
61
81
 
62
82
 
63
- > news·20110321·LM·0q2003_332153
83
+ > news·20120312·LM·0q1103_526673
84
+
85
+
64
86
 
65
87
 
66
88
 
67
89
  > (以下略)
68
90
 
91
+ ※著作権上、記事本文は掲載しておりません。
92
+
69
93
 
70
94
 
71
95
  一応以下のとおり自分なりに実装してみましたが、記事本文を一塊にしてリストに追加する方法がわからず、一つの記事が複数のバラバラの要素としてリストに追加されてしまっています。
@@ -183,3 +207,17 @@
183
207
 
184
208
 
185
209
  副題や筆者名が無い記事も混在し、また文章の段落数も当然ながらまちまちです。
210
+
211
+
212
+
213
+ なお、list_categorie_dateを表示すると以下のとおりです。
214
+
215
+ > 'Economie, mardi 13 mars 2012 30 mots, p. 16', 'Environnement & Sciences, lundi 12 mars 2012 489 mots, p. 9', 'Environnement & Sciences, lundi 12 mars 2012 390 mots, p. 11', 'Environnement & Sciences, lundi 12 mars 2012 661 mots, p. 9', 'Environnement & Sciences, lundi 12 mars 2012 604 mots, p. 11', 'Environnement & Sciences, lundi 12 mars 2012 460 mots, p. 9', 'Environnement & Sciences, lundi 12 mars 2012 447 mots, p. 11', 'Environnement & Sciences, lundi 12 mars 2012 32 mots, p. 11', 'Environnement & Sciences, lundi 12 mars 2012 372 mots, p. 10', 'Environnement & Sciences, lundi 12 mars 2012 1041 mots, p. 8', 'Environnement & Sciences, lundi 12 mars 2012 295 mots, p. 10', 'Environnement & Sciences, lundi 12 mars 2012 87 mots, p. 11', 'Environnement & Sciences, lundi 12 mars 2012 84 mots, p. 11', 'Environnement & Sciences, lundi 12 mars 2012 444 mots, p. 10', 'Environnement & Sciences, lundi 12 mars 2012 112 mots, p. 8', 'A la Une, lundi 12 mars 2012 27 mots, p. 1', (以下略)
216
+
217
+
218
+
219
+ また、list_textを表示すると以下のとおりです。
220
+
221
+ > ['', '', 'ECONOMIE', 'En baisse', 'Le Japon', "本文(1行のみ).", '', '', '', '', '', '', '', 'Planète', "L'APRÈS-FUKUSHIMA Le Japon, l'année d'après la vague ENTRETIEN", 'Pierre-François Souyri « Les gens de Fukushima se sentent comme des sacrifiés »', "本文1行目", '本文2行目', "本文3行目", (以下記事本文略), '', '', '', '', '', '', '', (以下略)
222
+
223
+ ※著作権上、記事本文を記載しておりません

1

ソースコードとエラーメッセージを追加。

2020/08/06 02:34

投稿

hankechi78
hankechi78

スコア8

test CHANGED
File without changes
test CHANGED
@@ -10,21 +10,17 @@
10
10
 
11
11
 
12
12
 
13
- (「Le Monde」〜「news·20110321·LM·0q2003_33XXXX」で一つの記事のブロックになっており、「© 2011 SA Le Monde・・・」、「Certificat émis ・・・」の部分は同じ文字列が毎回繰り返されています。)
14
-
15
-
16
-
17
13
  > Le Monde 
18
14
 
19
15
  Environnement & Sciences, lundi 21 mars 2011 367 mots, p. 8 
20
16
 
21
- タイトル
17
+ タイトル
22
18
 
23
- 副題
19
+ 副題
24
20
 
25
21
  Brice Pedroletti(筆者名)
26
22
 
27
- 本文
23
+ (記事本文
28
24
 
29
25
 
30
26
 
@@ -40,41 +36,19 @@
40
36
 
41
37
 
42
38
 
43
- > Le Monde 
44
-
45
- Environnement & Sciences, lundi 21 mars 2011 376 mots, p. 4  
46
-
47
- タイトル
48
-
49
- 副題
50
-
51
- Philippe Mesmer(筆者名)
52
-
53
- 本文(複数段落)
54
-
55
-
56
-
57
- > © 2011 SA Le Monde. Tous droits réservés.       Le présent document est protégé par les lois et conventions internationales sur le droit d'auteur et son utilisation est régie par ces lois et conventions. 
58
-
59
-
60
-
61
- > Certificat émis le 31 juillet 2020 à ECOLE-NATIONALE-D'ADMINISTRATION à des fins de visualisation personnelle et temporaire.
62
-
63
-
64
-
65
- > news·20110321·LM·0q2003_332097
66
-
67
39
 
68
40
 
69
41
  > Le Monde 
70
42
 
71
43
  Environnement & Sciences, lundi 21 mars 2011 66 mots, p. 8 
72
44
 
73
- タイトル 
45
+ タイトル
46
+
47
+ (副題なし) 
74
48
 
75
49
  (筆者名なし)
76
50
 
77
- 本文(複数段落)
51
+ 本文(複数段落)
78
52
 
79
53
 
80
54
 
@@ -90,32 +64,122 @@
90
64
 
91
65
 
92
66
 
67
+ > (以下略)
93
68
 
94
69
 
95
70
 
71
+ 一応以下のとおり自分なりに実装してみましたが、記事本文を一塊にしてリストに追加する方法がわからず、一つの記事が複数のバラバラの要素としてリストに追加されてしまっています。
96
72
 
97
- ### 思いついたこと
73
+ 当然の帰結として「日付」リスト(list_categorie_date)の要素数と「本文」(list_text)リストの要素数が合致せずにエラーメッセージ「ValueError: arrays must all be same length」が表示されます。
98
74
 
99
75
 
100
76
 
101
- 日付に関しては、Environnement & Sciences, lundi 21 mars 20112011年3月21日) 367 mots, p. 8ど必ず直後に「mots, p.」とう文字列が含まれかつ本文の直後に必ず「© 2011 SA・・・という文字列続き
77
+ また、以下ソースコードのような単純なfor文の記述では、記事カテゴリ(ex. Environnement & Sciences)と日付、文字数(mots)とページ数が分離できないだけでなくタイトル副題筆者名本文も一体なってしまます、良い解決方法が思い浮かびせん
102
78
 
103
79
 
104
80
 
105
- そのため、re.findall関数を用いて、
81
+ ### ソースコード
106
-
107
- (1)「mots,p.」の直前の数文字を抽出してリスト1に保存し、
108
-
109
- (2)「mots,p. 」以下「© 2011 SA・・・」以前の部分のテキストを抽出して別のリスト2に保存した上で、
110
-
111
- (3)上記リスト1とリスト2から一つずつ要素を取り出してcsvファイルに書き出すことを繰り返す
112
82
 
113
83
 
114
84
 
115
- ということはできなくはないのか?とは思っています(これだとタイトル名・筆者名・本文が一体になってしまいますが・・・)。
85
+ ```Python
116
86
 
117
- しかし、それ以上の名案が見つかりません。
87
+ import pandas as pd
118
88
 
119
89
 
120
90
 
91
+ with open('/Users/hankechi78/Desktop/lemonde_test/articles/13032012-21032011lemonde_Japon_articles.txt', encoding='utf-8') as f:
92
+
93
+ lines = f.readlines()
94
+
95
+
96
+
97
+ lines_strip = [line.strip() for line in lines]
98
+
99
+
100
+
101
+ #日付の含まれる行には必ず「mots, p. 」という文字列があることに着目(ただし、これでは不要な情報であるカテゴリ・ページ数を日付の情報から分離できない)
102
+
103
+ list_categorie_date = [line for line in lines_strip if ' mots, p. ' in line]
104
+
105
+
106
+
107
+ list_text = []
108
+
109
+ #不要な部分をif文で全て排除しながらリストにfor文で一文ずつ追加していく
110
+
111
+ for line in lines_strip:
112
+
113
+ if (not line.startswith('Le Monde')
114
+
115
+ and not ' mots, p. ' in line
116
+
117
+ and not line.startswith('©')
118
+
119
+ and not line.startswith('Certificat émis le 31 juillet 2020')
120
+
121
+ and not line.startswith('news·20')):
122
+
123
+ list_text.append(line)
124
+
125
+ #これではタイトル・副題・筆者名・記事本文が区別できない上に同じ記事がバラバラの要素としてリストに保存されてしまいますが、他に思いつきません・・・
126
+
127
+
128
+
129
+ df_lemonde = pd.DataFrame(
130
+
131
+ {'categorie_and_date': list_categorie_date,
132
+
133
+ 'text': list_text
134
+
135
+ })
136
+
137
+
138
+
139
+ df.to_csv('lemonde_test')
140
+
141
+ ```
142
+
143
+
144
+
145
+ ### 発生している問題・エラーメッセージ
146
+
147
+
148
+
149
+ ```
150
+
151
+ Traceback (most recent call last):
152
+
153
+ File "csv_convert.py", line 19, in <module>
154
+
155
+ df_lemonde = pd.DataFrame(
156
+
157
+ File "/Users/hankechi78/opt/anaconda3/lib/python3.8/site-packages/pandas/core/frame.py", line 435, in __init__
158
+
159
+ mgr = init_dict(data, index, columns, dtype=dtype)
160
+
161
+ File "/Users/hankechi78/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 254, in init_dict
162
+
163
+ return arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype)
164
+
165
+ File "/Users/hankechi78/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 64, in arrays_to_mgr
166
+
167
+ index = extract_index(arrays)
168
+
169
+ File "/Users/hankechi78/opt/anaconda3/lib/python3.8/site-packages/pandas/core/internals/construction.py", line 365, in extract_index
170
+
171
+ raise ValueError("arrays must all be same length")
172
+
173
+ ValueError: arrays must all be same length
174
+
175
+ ```
176
+
177
+
178
+
179
+ ### 補足
180
+
181
+ 「Le Monde」〜「news·20XXXXXX·LM·0q2003_33XXXX」で一つの記事のブロックになっており、「© 20・・・」、「Certificat émis ・・・」の部分は同じ文字列が毎回繰り返されています。
182
+
183
+
184
+
121
- 漠然とした質問で恐縮です、お知恵をお借りきれば幸いです。
185
+ 副題や筆者名が無い記事も混在、ま文章の段落数も当然ならまちまちです。