I have text data that include parliamentary speeches like this:
df <- "MEHMET ALİ ÇELEBİ (İzmir) – Teşekkürler Sayın Başkan.
26-30 Haziran Özel Güvenlik Görevlileri Haftası’ndayız, kutluyorum.
Bugün ülkemizde 350 bini aşkın özel güvenlik görevlimiz esnek ve güvencesiz çalışmanın en ağır koşullarına muhataptır.
Bir: Maaş, özlük hakları, çalışma şartları ve risk tazminatları iyileştirilmelidir. İki: Görev tanımı dışında çalıştırılmaları engellenmelidir. Üç: Yıpranma hakkı, ödüllendirme, şehit ve gazilik talepleri karşılanmalıdır. Dört: Onlara yönelik yeni bir işçi sağlığı ve iş güvenliği düzenlemesi yapılmalıdır. Beş: Adli vakalarda avukat desteği verilmelidir. Altı: Taşeronda değil, çalıştıkları kurum bünyesinde istihdam edilmelidirler. Yedi: Belediye şirketlerine geçen özel güvenliklerimizin iş kollarının belirsizliği giderilmelidir. “Özel güvenlik her yerde, görmezden gelme!” diyorum, yüce Meclisi saygıyla selamlıyorum.
BAŞKAN – Sayın Sazak…
METİN NURULLAH SAZAK (Eskişehir) – Teşekkürler Başkanım.
Türk sinemasının değerli ismi, Eskişehirli hemşehrim Cüneyt Arkın’a Allah’tan rahmet; ailesine, sevenlerine sabırlar dilerim. Türk sinemasının başı sağ olsun. Cüneyt Arkın, oynamış olduğu filmlerde, Türk tarihinin önemli kahramanlarını gençliğe sevdirmiş; sadece sinemada değil, yaşadığı hayatta da duruşuyla takdir toplamıştır. Ruhu şad, mekânı cennet olsun.
BAŞKAN – Sayın Aycan…
SEFER AYCAN (Kahramanmaraş) – Sayın Başkan, şehirlerimiz büyümektedir; bu nedenle de yeni imar planlarına, imar bölgelerine ihtiyaç doğmaktadır.
Sağlıklı şehirleşme, imar planı doğrultusunda alt yapısı tamamlanarak yeni imar bölgeleri oluşturmaktan geçmektedir; kentsel dönüşüm, sağlıklı şehirleşme ve güvenli bina için de buna ihtiyaç vardır. Şehrim Kahramanmaraş’ın merkezi de konut ihtiyacı açısından tıkanmıştır, yeni imar planına ihtiyacı vardır. Güneyi tarım arazileridir; buralara zarar vermemek, imara kapamak gerekmektedir.
Diğer taraftan, eski mahallelerde kentsel dönüşüm zorunlu hâle gelmiştir; bu nedenle, eski mahallelerde, özellikle Dulkadiroğlu bölgesinde kentsel dönüşümün teşvik edilmesi, kart sayısının 2’den 4’e hatta 6 veya 8 katlara çıkarılması gerekmektedir. Kahramanmaraş’ta kentsel dönüşüm teşvik edilmelidir; böylece, yeniden şehirleşme sağlanmalıdır; böylece, şehrin merkezinde konut ihtiyacı karşılanmış olacaktır.
Saygılarımla."
I want to create a separate data frame for every speaker using strsplit function and end up like this:
# [Speaker] [text]
# [1,] "MEHMET ALİ ÇELEBİ" "Teşekkürler Sayın Başkan. 26-30 Haziran..."
# [2,] "METİN NURULLAH SAZAK" "Teşekkürler Başkanım. Türk sinemasının..."
# [3,] "SEFER AYCAN". "Sayın Başkan, şehirlerimiz büyümektedir..."
I have tried the code below but could not get the result. I have list of speakers if regular expressions not enough.
pat <- r"{(?>\p{Lu} ?\s?) \(?\p{Lu} \)?\K(:)|(?<!\w)(\s)(?=\p{Lu}{2,})}"
tmp <- trimws(el(strsplit(df, pat, perl=TRUE)))[-1]
res <- matrix(tmp, ncol=2, byrow=TRUE)
res
Could you help me? I am kind of new in R. Thanks in advance,
CodePudding user response:
A workflow can be to look for the (location) -
pattern and insert a placeholder in order to split afterwards
Example:
df <- tibble(text = c("MEHMET ALİ ÇELEBİ (İzmir) – Teşekkürler Sayın Başkan. 26-30 Haziran Özel Güvenlik Görevlileri Haftası’ndayız, kutluyorum. Bugün ülkemizde 350 bini aşkın özel güvenlik görevlimiz esnek ve güvencesiz çalışmanın en ağır koşullarına muhataptır. Bir: Maaş, özlük hakları, çalışma şartları ve risk tazminatları iyileştirilmelidir. İki: Görev tanımı dışında çalıştırılmaları engellenmelidir. Üç: Yıpranma hakkı, ödüllendirme, şehit ve gazilik talepleri karşılanmalıdır. Dört: Onlara yönelik yeni bir işçi sağlığı ve iş güvenliği düzenlemesi yapılmalıdır. Beş: Adli vakalarda avukat desteği verilmelidir. Altı: Taşeronda değil, çalıştıkları kurum bünyesinde istihdam edilmelidirler. Yedi: Belediye şirketlerine geçen özel güvenliklerimizin iş kollarının belirsizliği giderilmelidir. “Özel güvenlik her yerde, görmezden gelme!” diyorum, yüce Meclisi saygıyla selamlıyorum.", "METİN NURULLAH SAZAK (Eskişehir) – Teşekkürler Başkanım. Türk sinemasının değerli ismi, Eskişehirli hemşehrim Cüneyt Arkın’a Allah’tan rahmet; ailesine, sevenlerine sabırlar dilerim. Türk sinemasının başı sağ olsun. Cüneyt Arkın, oynamış olduğu filmlerde, Türk tarihinin önemli kahramanlarını gençliğe sevdirmiş; sadece sinemada değil, yaşadığı hayatta da duruşuyla takdir toplamıştır. Ruhu şad, mekânı cennet olsun.","SEFER AYCAN (Kahramanmaraş) – Sayın Başkan, şehirlerimiz büyümektedir; bu nedenle de yeni imar planlarına, imar bölgelerine ihtiyaç doğmaktadır. Sağlıklı şehirleşme, imar planı doğrultusunda alt yapısı tamamlanarak yeni imar bölgeleri oluşturmaktan geçmektedir; kentsel dönüşüm, sağlıklı şehirleşme ve güvenli bina için de buna ihtiyaç vardır. Şehrim Kahramanmaraş’ın merkezi de konut ihtiyacı açısından tıkanmıştır, yeni imar planına ihtiyacı vardır. Güneyi tarım arazileridir; buralara zarar vermemek, imara kapamak gerekmektedir."))
df_with_split <- df %>%
mutate(text_helper = text,
# look for (LOCATION) - and replace with SPLIT_HERE
text_helper = str_replace(text_helper, "(?<=\\p{L}.\\)\\s–)", "SPLIT_HERE"),
left = trimws(str_extract(text_helper, ".*(?=SPLIT_HERE)")),
right = trimws(str_extract(text_helper, "(?<=SPLIT_HERE).*")))
df_with_split
# A tibble: 3 × 4
text
text_helper left right
<chr>
<chr> <chr> <chr>
1 MEHMET ALİ ÇELEBİ (İzmir) – Teşekkürler Sayın Başkan. 26-30 Haziran Özel Güvenlik Görevlileri Haftası’ndayız, k… MEHMET ALİ… MEHM… Teşe…
2 METİN NURULLAH SAZAK (Eskişehir) – Teşekkürler Başkanım. Türk sinemasının değerli ismi, Eskişehirli hemşehrim C… METİN NURU… METİ… Teşe…
3 SEFER AYCAN (Kahramanmaraş) – Sayın Başkan, şehirlerimiz büyümektedir; bu nedenle de yeni imar planlarına, imar… SEFER AYCA… SEFE… Sayı…
CodePudding user response:
I have found a simple way to obtain the same result by using the
CodePudding user response:
Dataframe come from
"https://www5.tbmm.gov.tr/tutanak/donem27/yil5/ham/b10901h.htm"
Since data do not only contain the info on speeches, I cannot obtain the solutions from these codes. Sorry for the lack of info. It is my first text project.