Python/C3/Parsing-data/Tamil

From Script | Spoken-Tutorial
Revision as of 00:04, 12 December 2012 by Priyacst (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Timing Narration
0:00 Hello friends! "Parsing Data" tutorial க்கு நல்வரவு!.
0:06 இந்த டுடோரியலின் முடிவில் உங்களால் பின் வருவனவற்றை செய்ய முடியும்.
  1. delimiter ஆல் ஒரு string ஐ Split செய்வது
  2. string ஐ சுற்றி whitespace ஐ நீக்குவது.
  3. variable இன் datatypes ஐ ஒரு வகையில் இருந்து இன்னொரு வகை ஆக்குதல்.
0:18 இந்த tutorial ஐ துவக்கு முன் "Getting started with Lists" tutorial ஐ முடிக்க பரிந்துரைக்கிறோம்.
0:23 இப்போது, terminal இல் ipython என டைப் செய்து அதை துவக்கலாம்.
0:32 நீங்கள் பார்ப்பது போல, sslc.txt file இல் ஒவ்வொரு record உம் ஒரு colon ஆல் பிரிக்கப்பட்ட field களை கொண்டு உள்ளது.
0:51 முதல் record region code, பின் roll number, name, marks of second language, first language, maths, science மற்றும் social மற்றும் total marks.
1:076 நம் வேலை region "B" இல் எல்லா maths mark குகளின் arithmetic mean ஐ கணக்கிடுவது.
1:14 இப்போது நாம் 'parsing data' என்றால் என்ன என்று காணலாம்.
1:19 input file லிலிருந்து நாம் data வை text ஆக காணலாம்.
1:25 Parsing data என்பது அதை படிப்பது, மற்றும் computation களுக்கு பொருத்தமான முறையில் அதை மாற்றுவது. -- நமக்கு இங்கே sequence of number களாக மாற்றுவது
1:40 நாம் தெளிவாக இது file களை படிப்பது மற்றும் token உருவாக்குவது என அறியலாம்.
1:45 நாம் tokenizing strings பற்றி காணலாம்.
1:48 நாம் ஒரு string ஐ முதலில் define செய்யலாம். type செய்க: line is equal to ... within double quotes parse this ... a long space .... string.
2:05 நாம் இப்போது இந்த string ஐ whitespace இல் வெட்டப்போகிறோம்.

line.split()

2:17 நீங்கள் பார்ப்பது போல, நாம் strings இன் ஒரு லிஸ்டை பெறுகிறோம், அதன் பொருள், split என argument கள் ஏதும் இல்லாமல் அழைத்தால் அது whitespace இல் வெட்டுகிறது.
2:24 இன்னும் எளிமையாக சொல்ல எல்லா space களும் ஒரே பெரிய space ஆக கருதப்படும்.
2:29 function split நாம் தேர்வு செய்யும் string இலும் வெட்டும்.
2:34 அதை ஒரு argument ஆக pass செய்வதன் மூலம் இதை செய்யலாம்.
2:36 ஆனால் முதலில் file இலிருந்து ஒரு sample record ஐ define செய்யலாம்.

record = "A;015163;JOSEPH RAJ S;083;042;47;0;72;244" record.split(';')

3:12 நாம் காண்பது போல string ... semi-colon இல் split ஆகியுள்ளது. மேலும் நாம் ஒவ்வொரு field ஐயும்தனியாக பெற்றோம்.
3:18 நாம் list இல் ஒரு காலி string தோன்றுவதையும் காணலாம், ஏனெனில் இரண்டு semi colon கள் நடுவில் ஏதுமில்லாமல் உள்ளன.
3:25 சுருங்கச்சொல்ல, split ஏதும் argument இல்லையானால் whitespace இல் split செய்கிறது. மேலும் argument ஐ கொடுத்தால் argument இல் splitசெய்கிறது.
3:33 video வை இங்கே Pause செய்து, பின்வரும் exercise ஐ செய்த பின் மீண்டும் தொடரவும்.
3:39 ஒரு space ஐ argument ஆகக்கொண்டு variable line ஐ Split செய்க.
3:43 இது splitting without an argument க்கு சமமா?
terminal ல் type செய்க
record.split() 
3:57 நாம் space மீது Split செய்தால் ஒன்றுக்கு மேற்பட்ட whitespace கள் இருப்பின் அவை ஒன்றாக கருதப்பட மாட்டாது. இரண்டு space கள் தொடர்ந்து வந்தால் ஒரு காலி string இருக்கும்.
4:09 இப்போது நாம் string ஐ split செய்வதை அறிந்து கொண்டோம்; இனி நாம் record ஐ split செய்து மற்றும் ஒவ்வொரு field ஐயும் தனித்தனியாக பெறுவோம்.
4:16 ஆனால் ஒரு பிரச்சினை இருக்கிறது.
4:17 region code "B" மற்றும் whitespace களால் சூழப்பட்ட "B" - ஆகியன இரண்டு வெவ்வேறு region களாக கொள்ளப்படும்.
4:23 ஆகவே, நாம் ஒரு string ஐ சுற்றி இருக்கும் whitespace களை முதலில் நீக்கவேண்டும். அதன் பின் region code "B" மற்றும் whitespace களால் சூழப்பட்ட "B" ஆகியன ஒன்றாக கொள்ளப்படும்.
4:32 இதை சாதிப்பது strip method of strings.
4:36 நாம் ஒரு string ஐ type செய்து define செய்வோம்.

unstripped = within double quotes a long space B again a long space

unstripped.strip()

5:01 நாம் strip வாக்கியத்தை சுற்றி உள்ள எல்லா whitespace களையும் நீக்குவதை காணலாம்.
5:07 video வை இங்கே Pause செய்து, பின்வரும் exercise ஐ செய்த பின் மீண்டும் தொடரவும்.
5:13 வாக்கியத்தை strip செய்தால் வாக்கியத்தின் உள்ளே உள்ள white space களுக்கு என்ன ஆகும்?
விடைக்கு terminal க்கு போகலாம்.
5:19 நாம் வாக்கியத்தின் உள்ளே உள்ள white space மட்டுமே நீக்கப்படுகிறது, மீதி அப்படியே இருக்கிறது எனக் காண்கிறோம்.
5:54 இதற்குள் நமக்கு fieldகளை record இலிருந்து நீக்கவும் மற்றும் எந்த white space ஐயும் நீக்கவும் தெரியும்.

a_str = " (a long space) white (space) space (and long space) " a_str.strip()

6:06 நமக்கு இருக்கும் ஒரே தடை இப்போது string ஐ float ஆக மாற்றுவது.
6:12 splitting மற்றும் stripping செயல்கள் ஒரு string மீது செய்யப்படுகின்றன. மற்றும் அதன் விளைவும் ஒரு string ஆகும்.
6:17 ஆகவே நம்மிடம் உள்ள mark கள் இன்னும் strings ஆக உள்ளன. மேலும் mathematical operation களை அவற்றின் மீது செய்ய முடியாது.
6:21 நாம் அவற்றின் மீது எந்த mathematical operation செய்யும் முன்னர் அவற்றை numbers (integers அல்லது floats) ஆக மாற்ற வேண்டும்.
6:31 ஆகவே, நாம் இப்போது string ஐ float ஆக மாற்றுவது எப்படி என்று பார்க்கலாம்.
6:33 நாம் ஒரு float string ஐ முதலில் define செய்வோம்.
6:36 ஆகவே type செய்க:

mark_str = "1.25" mark = int(float(mark_str)) type(mark_str) type(mark)

7:22 நாம் string float ஆக மாறியதை கண்டோம்.
7:26 இப்போது நாம் அவற்றின் மீது எந்த mathematical operation ஐயும் செய்யலாம்.
7:29 video வை இங்கே Pause செய்து, பின்வரும் exercise ஐ செய்த பின் மீண்டும் தொடரவும்.
7:39 நீங்கள் int within brackets "1.25" ஐ செய்தால் என்ன ஆகும்?
7:46 ஆகவே terminal இல் type செய்க: int within brackets 1.25 ; அது ஒரு பிழை செய்தியை சொல்ல்கிறது: integer ஐ நேரடியாக float ஆக்க இயலாது.
8:00 இந்த float conversion க்கு நடுவில் ஒரு படி தேவைப்படுகிறது. ஆகவே நீங்கள் பின் வரும் முறையில் மாற்ற வேண்டும்.
8:08 ஆகவே type செய்க: dcml underscore str is equal to within double quotes 1.25 பின் flt = float within brackets dcml underscore str பின் type செய்க flt
8:45 பின் number is equal to int within brackets flt பின் type செய்க: number.
9:00 int ஐ பயன்படுத்தி float களை integers ஆக convert செய்யலாம்.
9:05 இப்போது file ஐ parse செய்ய நம்மிடம் தேவையான கருவிகள் எல்லாம் இருக்கின்றன. இந்த பிரச்சினையை தீர்ப்போம்.
9:10 நாம் முதலில் செய்ய வேண்டியது file ஐ வரி வரியாக படித்து ஒவ்வொரு record ஐயும் parse செய்வது.
9:14 நாம் பின் region code B ஆ என்று பார்த்து marks களை சேமிக்க வேண்டும்.
9:26 ஆகவே type செய்க: math underscore marks underscore B is equalto empty brackets

for line in open within brackets மற்றும் double quotes slash home slash fossee slash sslc dot txt colon

   fields is equal to line dot split within brackets மற்றும் double quotes ;
   region underscore code is equal to  fields within brackets 0.
   region underscore code underscore stripped is equal to region underscore code dot strip மற்றும் empty brackets.
   math underscore mark underscore str is equalto fields within square brackets 5
   math underscore mark = float within brackets math underscore mark underscore str
   if region underscore code double equalto "B" colon
       math underscore marks underscore B dot append within brackets math underscore mark
12:37 இப்போது நாம் math_marks_B list இல் region "B" இன் math marks அத்தனையும் வைத்து இருக்கிறோம்.
12:45 mean ஐ கண்டுபிடிக்க, நாம் marks களை கூட்டி மற்றும் length ஆல் வகுக்க வேண்டியதுதான்.

math_marks_mean = sum(math_marks_B) / len(math_marks_B) math_marks_mean

13:24 ஆகவே நமக்கு final output கிடைத்துவிட்டது.
13:27 இப்படித்தான் நாம் மிகப்பெரிய data வை split செய்து படித்து அதில் computation களையும் செய்யமுடியும்.
13:32 ஆகவே, இத்துடன் இந்த டுடோரியல் முடிகிறது.
13:37 இந்த tutorial இல் நாம் கற்றவை,
13:38 1. semi-colon போன்ற பல delimiter களை பயன்படுத்தி ஒரு string ஐ Tokenize செய்வது.
13:44 2. function split() ஐ பயன்படுத்தி delimiter களால் பிரித்த data வை Split செய்வது.
13:50 3. சுற்றி இருக்கும் கூடுதல் white space களை strip() function ஐ கொண்டு நீக்குவது.
13:55 number களின் datatype களை ஒரு வகையில் இருந்து இன்னொரு வகைக்கு Convert செய்வது
13:59 input data வை Parse செய்து அதன் மீது computations செய்வது.
14:05 நீங்கள் தீர்வு காண இதோ சில self assessment கேள்விகள்
14:12 1. நீங்கள் எப்படி string "Guido;Rossum;Python" ஐ split செய்து சொற்களை பெறுவீர்கள்?
14:26 2. நீங்கள் எப்படி " Hello World " என்னும் வாக்கியத்தில் இருந்து whitespace களை நீக்குவீர்கள்?
14:34 3. int("20.0") தருவது என்ன? Option கள்......
14:40 20
14:42 20.0
14:43 Error
14:44 "20"
14:47 விடைகள் இதோ
14:50 1. நாம் இந்த string ஐ semi-colon களை split function க்கு line.split(';') என்னும் argument ஆக pass செய்து split செய்யலாம்.
15:03 " Hello World ".strip() என்பது string ஐ சுற்றி இருக்கும் கூடுதல் whitespace களை நீக்கும்.
15:11 கடைசியாக, int("20.0") ஒரு error ஐ கொடுக்கும். ஏனெனில், ஒரு float string, 20.0, ஐ நேரடியாக integer ஆக convert செய்ய முடியாது.
15:25 இந்த டுடோரியல் சுவாரசியமாகவும் பயனுள்ளதாகவும் இருந்திருக்கும் என நம்புகிறேன்.
15:28 நன்றி!

Contributors and Content Editors

PoojaMoolya, Priyacst