I have to transform all the arguments in a text character vector into an easy-to-reference format: A list that has 3 column (presenter, time and text) by using R (Sorry I should've been clearer).
For example, presenter should be
# HARPER'S
time should be
# [Day 1, 9:00 A.M.]
and text should be the rest in the argument.
I need to calculate the number of arguments in the text (each start of
# HARPER'S [Day 1, 9:00 A.M.]
is an argument). I want to Create a new list object named 'arguments' and each element of the list is a sublist that contains three elements ('presenter', 'time' and 'text').
Then extract the presenter name and time into two character vectors (also remove indentation), and leave the 'presenter' element and 'time' element in the sublist for that argument.
This is the text:
[1] "HARPER'S [Day 1, 9:00 A.M.]: When the computer was young, the word hacking was"
[2] "used to describe the work of brilliant students who explored and expanded the"
[3] "uses to which this new technology might be employed. There was even talk of a"
[4] "\"hacker ethic.\" Somehow, in the succeeding years, the word has taken on dark"
[5] "connotations, suggestion the actions of a criminal. What is the hacker ethic,"
[6] "and does it survive?"
[7] ""
[8] "ADELAIDE [Day 1, 9:25 A.M.]: the hacker ethic survives, and it is a fraud. It"
[9] "survives in anyone excited by technology's power to turn many small,"
[10] "insignificant things into one vast, beautiful thing. It is a fraud because"
[11] "there is nothing magical about computers that causes a user to undergo"
[12] "religious conversion and devote himself to the public good. Early automobile"
[13] "inventors were hackers too. At first the elite drove in luxury. Later"
[14] "practically everyone had a car. Now we have traffic jams, drunk drivers, air"
[15] "pollution, and suburban sprawl. The old magic of an automobile occasionally"
[16] "surfaces, but we possess no delusions that it automatically invades the"
[17] "consciousness of anyone who sits behind the wheel. Computers are power, and"
[18] "direct contact with power can bring out the best or worst in a person. It's"
[19] "tempting to think that everyone exposed to the technology will be grandly"
[20] "inspired, but, alas, it just ain't so."
[21] ""
[22] "BRAND [Day 1, 9:54 A.M.]: The hacker ethic involves several things. One is"
[23] "avoiding waste; insisting on using idle computer power -- often hacking into a"
[24] "system to do so, while taking the greatest precautions not to damage the"
[25] "system. A second goal of many hackers is the free exchange of technical"
[26] "information. These hackers feel that patent and copyright restrictions slow"
[27] "down technological advances. A third goal is the advancement of human"
[28] "knowledge for its own sake. Often this approach is unconventional. People we"
[29] "call crackers often explore systems and do mischief. The are called hackers by"
[30] "the press, which doesn't understand the issues."
[31] ""
[32] "KK [Day 1, 11:19 A.M.]: The hacker ethic went unnoticed early on because the"
[33] "explorations of basement tinkerers were very local. Once we all became"
[34] "connected, the work of these investigations rippled through the world. today"
[35] "the hacking spirit is alive and kicking in video, satellite TV, and radio. In"
[36] "some fields they are called chippers, because the modify and peddle altered"
[37] "chips. Everything that was once said about \"phone phreaks\" can be said about"
[38] "them too."
I have tried to calculate the length of the argument.
length(grep("^([A-Z]+'*[A-Z]*)", text_data))
arguments = list(presenters = regmatches(text_data, regexpr("^([A-Z]+'*[A-Z]*)", text_data)), time = regmatches(text_data, regexpr("(\\[.*\\])", text_data)), text = regmatches(paste(unlist(text_data), collapse =" ")), regexpr("(:\\s.*)", regmatches(paste(unlist(text_data), collapse =" "))))
text_data
The length of the list "arguments" should be 55.
An example of the output would be example data output format
Thank you so much for your help.
This is your input:
text_data = """HARPER'S [Day 1, 9:00 A.M.]: When the computer was young, the word hacking was
used to describe the work of brilliant students who explored and expanded the
uses to which this new technology might be employed. There was even talk of a
\"hacker ethic.\" Somehow, in the succeeding years, the word has taken on dark
connotations, suggestion the actions of a criminal. What is the hacker ethic,
and does it survive?
ADELAIDE [Day 1, 9:25 A.M.]: the hacker ethic survives, and it is a fraud. It
survives in anyone excited by technology's power to turn many small,
insignificant things into one vast, beautiful thing. It is a fraud because
there is nothing magical about computers that causes a user to undergo
religious conversion and devote himself to the public good. Early automobile
inventors were hackers too. At first the elite drove in luxury. Later
practically everyone had a car. Now we have traffic jams, drunk drivers, air
pollution, and suburban sprawl. The old magic of an automobile occasionally
surfaces, but we possess no delusions that it automatically invades the
consciousness of anyone who sits behind the wheel. Computers are power, and
direct contact with power can bring out the best or worst in a person. It's
tempting to think that everyone exposed to the technology will be grandly
inspired, but, alas, it just ain't so.
BRAND [Day 1, 9:54 A.M.]: The hacker ethic involves several things. One is
avoiding waste; insisting on using idle computer power -- often hacking into a
system to do so, while taking the greatest precautions not to damage the
system. A second goal of many hackers is the free exchange of technical
information. These hackers feel that patent and copyright restrictions slow
down technological advances. A third goal is the advancement of human
knowledge for its own sake. Often this approach is unconventional. People we
call crackers often explore systems and do mischief. The are called hackers by
the press, which doesn't understand the issues.
KK [Day 1, 11:19 A.M.]: The hacker ethic went unnoticed early on because the
explorations of basement tinkerers were very local. Once we all became
connected, the work of these investigations rippled through the world. today
the hacking spirit is alive and kicking in video, satellite TV, and radio. In
some fields they are called chippers, because the modify and peddle altered
chips. Everything that was once said about \"phone phreaks\" can be said about
them too."""
Extract your three variables using regex
:
import re
argument = re.findall("(?P<presenter>[A-Z|']+).\[(?P<time>\w.+)\].\s+(?P<text>[\w\W]*?)(?=\n\n|\Z)",text_data)
Just in case if you want to make them a dictionary:
mydict = {'presenter':[],'time':[],'text':[]}
for i in argument:
mydict['presenter'].append(i[0])
mydict['time'].append(i[1])
mydict['text'].append(i[2])
Or if you want to save them in csv
file:
import csv
with open("filename.csv","w") as mycsv:
writers = csv.writer(mycsv)
header = ['presenter','time','text']
writers.writerow(header)
for item in argument:
writers.writerow(item)
To load your csv
file:
import pandas as pd
df = pd.read_csv("filename.csv")
df
Output:
presenter | time | text
--------------------------------------------------------------------------------------
0 HARPER'S | Day 1, 9:00 A.M. | When the computer was young, the word hacking ...
1 ADELAIDE | Day 1, 9:25 A.M. | the hacker ethic survives, and it is a fraud. ...
2 BRAND | Day 1, 9:54 A.M. | The hacker ethic involves several things. One...
3 KK | Day 1, 11:19 A.M. | The hacker ethic went unnoticed early on becau...