Skip to content

Commit 4da4269

Browse files
committed
protocol parsing algo fixes, mostly old meetings with speaker and content on same line
1 parent 7b7498b commit 4da4269

14 files changed

+1115
-400
lines changed

knesset_data/protocols/committee.py

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,31 @@ def all_field_values(self):
3434
}
3535

3636

37-
class CommitteeMeetingProtocol(BaseProtocolFile):
37+
def is_not_header(line):
38+
return re.search(r'(^אני )|((אלה|אלו|יבוא|מאלה|ייאמר|אומר|אומרת|נאמר|כך|הבאים|הבאות):$)|(\(.\))|(\(\d+\))|(\d\.)', line)
39+
3840

39-
not_header = re.compile(decode(r'(^אני )|((אלה|אלו|יבוא|מאלה|ייאמר|אומר|אומרת|נאמר|כך|הבאים|הבאות):$)|(\(.\))|(\(\d+\))|(\d\.)', 'utf8'))
41+
class CommitteeMeetingProtocol(BaseProtocolFile):
4042

4143
def _parse_header(self, line):
4244
if re.match(r'^<.*>\W*$', line): # this is a <...> line.
43-
return re.sub('[>:]+$', '', re.sub('^[< ]+', '', line)).strip()
44-
elif self.not_header.search(line):
45-
return False
46-
elif len(line) <= 50 and line.strip().endswith(':'):
47-
return line.strip()[:-1].strip()
45+
line = re.sub('[>:]+$', '', re.sub('^[< ]+', '', line)).strip()
46+
if is_not_header(line):
47+
return line
4848
else:
4949
splitline = line.split(':')
5050
# print(splitline)
51-
if len(splitline) == 2 and 5 < len(splitline[0]) <= 50 and (splitline[1].startswith('\t') or splitline[1].startswith(' ')):
52-
return splitline[0].strip(), splitline[1].strip()
51+
if (
52+
len(splitline) > 1
53+
and 4 < len(splitline[0]) <= 35
54+
and len(splitline[0].split(' ')) < 6
55+
and not is_not_header(splitline[0])
56+
and not re.search(r'\d+', splitline[0])
57+
):
58+
return splitline[0].strip(), ':'.join(splitline[1:]).strip()
59+
elif len(line) <= 50 and line.strip().endswith(':'):
60+
if not is_not_header(line):
61+
return line.strip()[:-1].strip()
5362
return False
5463

5564
@cached_property
@@ -120,7 +129,19 @@ def add_part(_header, _section):
120129

121130
# don't forget the last section
122131
add_part(header, section)
123-
return parts
132+
133+
new_parts = []
134+
last_part = None
135+
for part in parts:
136+
if last_part:
137+
if last_part.body.strip() == '':
138+
last_part.body = part.header + ': ' + part.body
139+
last_part = part
140+
continue
141+
new_parts.append(part)
142+
last_part = part
143+
144+
return new_parts
124145

125146
def find_attending_members(self, mk_names):
126147
"""

knesset_data/protocols/tests/parts_2058793.csv

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ header,body
2929
2. תיקון סעיף 123 בנושא הצעת חוק לקריאה שניה שהוועדה הציעה להסיר
3030
מסדר היום (הוספת סעיף 123א).
3131
3. ביטול סעיף 130 בנושא הצבעה על הסתייגויות סותרות שהתקבלו בקריאה שניה (והוספת סעיף 128א במקומו)."
32-
נכחו,
33-
חברי הוועדה,"יוסי כץ, היו""ר
32+
נכחו,"חברי הוועדה: יוסי כץ, היו""ר
3433
אפי אושעיה
3534
מיכאל איתן
3635
זאב בוים
@@ -176,8 +175,7 @@ header,body
176175
אבשלום וילן,"נימוק טוב, משל גרוע."
177176
מאיר פרוש,"אני רוצה להגיד עוד משפט. גם כשהיושב ראש הנוכחי של ועדת כספים אמר: תעבירו את זה אלי ואני אטפל בזה לפי התקנון, מה שצריך לעשות נעשה לא שמעתם בקולו. אני לא רואה כל סיבה שתוכנית כלכלית, שמדרך התקנון צריכה להגיע לוועדת כספים, תגיע פה להרכב שונה מוועדת כספים. אין כל סיבה לשנות את הכללים של הקדנציה הזאת. אתם רוצים לבוא ולשנות אותה – תבואו ותשנו, אבל - - -"
178177
אברהם פורז,למה? זה שלכם יש שלושה על חשבון מפלגת העבודה זה מונצח.
179-
מאיר פרוש,
180-
אני רוצה לומר בבירור,אנחנו התחלנו קדנציה בתמונת מצב כמו שצילמנו אותה אז וליהדות התורה היו שלושה. אני רוצה להזכיר שבמהלך הקדנציה - - -
178+
מאיר פרוש,אני רוצה לומר בבירור: אנחנו התחלנו קדנציה בתמונת מצב כמו שצילמנו אותה אז וליהדות התורה היו שלושה. אני רוצה להזכיר שבמהלך הקדנציה - - -
181179
אברהם פורז,"תסביר לי איך לי יש על שישה ח""כים נציג אחד ולך עם חמישה ח""כים יש שלושה? אתה יכול להסביר לי? גם ב""חדר"" לומדים מתמטיקה בכיתה א'."
182180
"היו""ר יוסי כץ","חבר הכנסת פורז, אני קורא אותך לסדר פעם ראשונה."
183181
מאיר פרוש,"אני רוצה להזכיר דבר נוסף. שכאשר היו ליהדות התורה שלושה ולש""ס שלושה, במהלך הקדנציה, כאשר הגדילו את חברי ועדת הכספים מ-17 ל-19 ש""ס קיבלה ארבעה. ואני עומד על כך שבהצבעה – איך שאתם רוצים תעשו את זה – אני חושב שיהדות התורה צריכה לקבל שלושה וש""ס צריכה לקבל ארבעה."
@@ -207,8 +205,7 @@ header,body
207205
חיים כץ,"אבל הכנסת החליטה שהוא יכול להיות. אז אם אתם באים בצורה שרירותית ואומרים: אלה שפחות מארבעה חברי כנסת אין להם מנדט – מילא אין להם מנדט להיות בוועדות. מילא שהוועדות ריקות מפני שאלה שבוועדות לא יכולים לרוץ לחמישה מקומות, אז גם במצב כזה? אז יש גבול לכל בדיחה. אני חושב שלפנים משורת הדין – ואני לא מדבר עלי – בגלל תפקידו, בשביל שזה ייראה – כי צדק צריך לא רק להיראות, צריך גם להיעשות – שבצו את עמיר בלי שום קשר לגודל המפלגה."
208206
מיכאל איתן,· - -
209207
חיים כץ,"עזוב. אתה מתעסק באינטרנט, הוא מתעסק בדברים האלה."
210-
נסים זאב,
211-
"אני רוצה לומר לך, אדוני היושב ראש","אני לא חבר ועדת הכנסת, אבל אני פשוט המום מהצורה שבה הוועדה הזאת יושבת ועורפת פה ראשים וכולם מצביעים. אני המום."
208+
נסים זאב,"אני רוצה לומר לך, אדוני היושב ראש: אני לא חבר ועדת הכנסת, אבל אני פשוט המום מהצורה שבה הוועדה הזאת יושבת ועורפת פה ראשים וכולם מצביעים. אני המום."
212209
נחמה רונן,"יוסי, אנחנו צריכים ללכת להצבעה אחרת."
213210
"היו""ר יוסי כץ",עוד שני דוברים ואנחנו מצביעים. אני מצטער. יש לנו שני דוברים מהאופוזיציה. אבו וילן וחבר הכנסת דהאמשה ובזה נגמר.
214211
זאב בוים,"מספיק. מש""ס דיברו כבר."
@@ -261,8 +258,7 @@ header,body
261258
זאב בוים,"מי אמר לך שהוא לא יעכב את זה? חוץ מזה, הצבענו כבר על ועדה מיוחדת."
262259
רחמים מלול,אז אני מציע שהוועדה המיוחדת תדון אך ורק בסעיף קצבאות הילדים.
263260
זאב בוים,אז בתוך הוועדה היא תדון.
264-
"היו""ר יוסי כץ",
265-
תודה. אמרתי מקודם,"ההצעה היא הצעה יצירתית. אני אעמיד אותה להצבעה בהנחה שהצעה אחרת לא תעבור. אם הצעה אחרת תעבור אז מובן מאליו שלא אוכל להעמיד אותה להצבעה. ההצעה היא יצירתית, אבל קודם כל יש הצעה של יושב ראש הקואליציה.
261+
"היו""ר יוסי כץ","תודה. אמרתי מקודם: ההצעה היא הצעה יצירתית. אני אעמיד אותה להצבעה בהנחה שהצעה אחרת לא תעבור. אם הצעה אחרת תעבור אז מובן מאליו שלא אוכל להעמיד אותה להצבעה. ההצעה היא יצירתית, אבל קודם כל יש הצעה של יושב ראש הקואליציה.
266262

267263
רבותי, מי בעד ההצעה שהציע יושב ראש הקואליציה חבר הכנסת בוים, ירים את ידו."
268264
עבד-אלמאלכ דהאמשה,זה עושק המיעוט. אתם מנטרלים שליש מהכנסת - - -
@@ -282,10 +278,8 @@ header,body
282278
"היו""ר יוסי כץ","בעוד רבע שעה המשך, הצבעה על הרביזיה.
283279

284280

285-
הישיבה הופסקה בשעה 10:30.
286-
287-
288-
הישיבה חודשה בשעה: 10:45."
281+
הישיבה הופסקה בשעה 10:30."
282+
הישיבה חודשה בשעה,10:45.
289283
"היו""ר יוסי כץ","לחבר הכנסת דהאמשה יש טענה, בבקשה."
290284
עבד-אלמאלכ דהאמשה,הרי הוועדה המיוחדת הזו מורכבת מוועדת הכנסת וועדת הכספים ביחד. איפה העניין הזה נעלם? התמסמס?
291285
זאב בוים,"לא. מי אמר? ועדה מיוחדת – תפתח את התקנון ותסתכל. זו לא ועדה משותפת, זו ועדה מיוחדת. אדוני סגן יושב ראש הכנסת, סעיף 17 לתקנון, אני מפנה את תשומת לבך. סעיף 17 לתקנון."
@@ -300,8 +294,7 @@ header,body
300294
מכוח הסעיף הזה קיים סעיף 17 לתקנון שדן בוועדות לעניינים מסוימים והוא כמובן כפוף לחוק היסוד. חוק היסוד אומר שאפשר לבחור ועדה לעניינים מסוימים מבין חברי הכנסת. אין מגבלה שזה יהיה מוועדה כזו או אחרת, אלא מטבע בריאתה ועדה מיוחדת זאת ועדה שהיא גם מיוחדת מבחינת ההרכב שלה, מבחינת מספר החברים ומבחינת הסמכויות שלה, שמליאת הכנסת צריכה לקבוע אותן.
301295

302296
כמובן, שכל מה שאני אומרת כפוף לכך שלא ייווצר מצב שלא תהיה שוויוניות בוועדה והנושא של שוויוניות – אותו מפתח – זו נקודה פוליטית שאני לא מתערבת בה. אבל אם תבואו - - -"
303-
אברהם פורז,
304-
"רגע, זה פסול שאומרים",כל חמישה מקבלים ייצוג? יש בזה פסול?
297+
אברהם פורז,"רגע, זה פסול שאומרים: כל חמישה מקבלים ייצוג? יש בזה פסול?"
305298
אנה שניידר,לא אמרתי שזה פסול.
306299
אברהם פורז,"זה פוגע בעיקרון השוויון, לדעתך?"
307300
עבד-אלמאלכ דהאמשה,כן. זה פוגע בעיקרון השוויון.
@@ -312,8 +305,7 @@ header,body
312305
חיים כץ,אני מושך את זה בחזרה.
313306
נסים זאב,תשמעו גם מה שלא נעים לכם.
314307
אנה שניידר,אני לא מתערבת – ואסור לי להתערב – בהחלטות פוליטיות שלכם.
315-
אברהם פורז,
316-
"לא, אבל את יכולה לומר לוועדה","אתם פוגעים בעיקרון השוויון, אל תעשו את זה."
308+
אברהם פורז,"לא, אבל את יכולה לומר לוועדה: אתם פוגעים בעיקרון השוויון, אל תעשו את זה."
317309
אנה שניידר,"הדבר היחיד שאני אומרת זה שהוועדה צריכה להיות לפי הרכב סיעתי. לא מסיעה אחת שיהיו נציגים, כי אז בוודאי שיש פגיעה בשוויון."
318310
"היו""ר יוסי כץ",אבל את מסכימה אתי שאם זה היה יוצר מצב – המפתח הסיעתי – שיש 15 או 16 חברים מהקואליציה ו - - - זה היה פוגע בעיקרון השוויון.
319311
חיים כץ,מה בקשר לעושק המיעוט?
@@ -436,11 +428,9 @@ header,body
436428
שאול יהלום,לא. למה?
437429
אברהם הירשזון,אני רוצה לשמוע את היועצת המשפטית.
438430
זאב בוים,"אני רוצה לשמוע. זה עולה למליאה, אולי זו הצבעה במליאה."
439-
אנה שניידר,"אותו סעיף 17 מפורסם לתקנון בעצם אומר שברגע שהוועדה הזאת נבחרת, דינה – פרט לתקופת כהונתה כדין ועדה קרואה – אם לא קבעה הכנסת הוראות אחרות.
440-
441-
זאת אומרת: הכנסת רשאית לקבוע, למעשה, כל הוראה לגבי אותה ועדה. מה שצריך זה שוועדת הכנסת תציע את כל ההצעות למליאה. כלומר: שהמסמך שיגיע למליאה יכלול את כל האפשרויות שאתם רוצים שהכנסת תקבע."
442-
שאול יהלום,
443-
"לא, אני שואל אותך","נניח שברבע לשתיים נודיע ששאול יהלום הוא חבר הוועדה. לא נודיע על ממלא מקום שום דבר. אם אני אינני, האם יכול נחום לנגנטל מסיעתי להיות ממלא מקומי?"
431+
אנה שניידר,"אותו סעיף 17 מפורסם לתקנון בעצם אומר שברגע שהוועדה הזאת נבחרת, דינה – פרט לתקופת כהונתה כדין ועדה קרואה – אם לא קבעה הכנסת הוראות אחרות."
432+
זאת אומרת,"הכנסת רשאית לקבוע, למעשה, כל הוראה לגבי אותה ועדה. מה שצריך זה שוועדת הכנסת תציע את כל ההצעות למליאה. כלומר: שהמסמך שיגיע למליאה יכלול את כל האפשרויות שאתם רוצים שהכנסת תקבע."
433+
שאול יהלום,"לא, אני שואל אותך: נניח שברבע לשתיים נודיע ששאול יהלום הוא חבר הוועדה. לא נודיע על ממלא מקום שום דבר. אם אני אינני, האם יכול נחום לנגנטל מסיעתי להיות ממלא מקומי?"
444434
אנה שניידר,"כן. אם לא תודיעו שום דבר לגבי ממלאי מקום, יחולו הכללים הרגילים שחלים על ועדה רגילה."
445435
שאול יהלום,אז זה יותר טוב.
446436
זאב בוים,"כן. בסדר. זה יותר טוב. שאלנו, קיבלנו תשובה."
@@ -460,16 +450,13 @@ header,body
460450
אנה שניידר,"אלה שהוועדה תכין. צריך להכין את ההצעה תוך שבוע ואם יש גם הסתייגויות, אז לכלול אותן."
461451
דוד לב,"שבוע, אלא אם כן ועדת הכנסת מתירה יותר מזה."
462452
אנה שניידר,נכון. מועד אחר. זה יכול להיות גם פחות.
463-
"היו""ר יוסי כץ",
464-
לא ברור לי,"""תונח הצעת החוק בצרוף הסתייגויות על שולחן הכנסת לקריאה שניה - - -באיזה נוסח? ""בנוסח שהתקבל בקריאה הראשונה או בנוסח אחד שתכין הוועדה. אלא אם כן החליטה - - -"". למה המלים ""בצרוף הסתייגויות"" מופיעות בתחילת המשפט ולא בסופו?"
453+
"היו""ר יוסי כץ","לא ברור לי: ""תונח הצעת החוק בצרוף הסתייגויות על שולחן הכנסת לקריאה שניה - - -באיזה נוסח? ""בנוסח שהתקבל בקריאה הראשונה או בנוסח אחד שתכין הוועדה. אלא אם כן החליטה - - -"". למה המלים ""בצרוף הסתייגויות"" מופיעות בתחילת המשפט ולא בסופו?"
465454
אנה שניידר,אנחנו לקחנו את הנוסח מהסעיף שדן בקריאה שניה.
466-
"היו""ר יוסי כץ",
467-
אבל אחרי זה את כותבת,"""בנוסח שהתקבל בקריאה ראשונה""."
455+
"היו""ר יוסי כץ","אבל אחרי זה את כותבת: ""בנוסח שהתקבל בקריאה ראשונה""."
468456
ארבל אסטרחן,"היא צריכה להניח נוסח לקריאה שניה ושלישית. בעיקרון, כיוון שהוועדה לא רצתה את זה, אין לה נוסח, אומרים לה: קחי את הנוסח הכחול, המקורי."
469457
"היו""ר יוסי כץ",איפה ההסתייגויות?
470458
ארבל אסטרחן,"ואם את רוצה, תצרפי לו הסתייגויות."
471-
"היו""ר יוסי כץ",
472-
אז צריך להיות כתוב,"""תונח הצעת חוק על ידי היושב ראש בנוסח שהתקבל בקריאה הראשונה או בנוסח אחר שתכין הוועדה ובצרוף הסתייגויות - - -"
459+
"היו""ר יוסי כץ","אז צריך להיות כתוב: ""תונח הצעת חוק על ידי היושב ראש בנוסח שהתקבל בקריאה הראשונה או בנוסח אחר שתכין הוועדה ובצרוף הסתייגויות - - -"
473460
דוד לב,אם תהיינה.
474461
"היו""ר יוסי כץ",אם תהיינה.
475462
אנה שניידר,זה ברור.

0 commit comments

Comments
 (0)