பைத்தான் ரிஜெக்ஸ் – 6 – வார்த்தை, வாக்கிய எண்ணிக்கை

இந்தப் பதிவில் நாம் பார்க்கப் போவது, ஒரு வரியில் எத்தனை வார்த்தைகள் இருக்கின்றன என்பதை எப்படிக் கண்டுபிடிப்பது, ஒரு பத்தியில் எத்தனை வாக்கியங்கள் இருக்கின்றன ஆகியனவற்றைத் தான்!

ரிஜெக்சுக்குப் போவதற்கு முன்பு, சில அடிப்படை கருத்துகளை நாம் புரிந்து கொள்ள வேண்டும். “அன்பும் சிவமும் இரண்டென்பர் அறிவிலார்” – இந்த வாக்கியத்தை எடுத்துக் கொள்ளுங்கள். இதில் எத்தனை வார்த்தைகள் இருக்கின்றன? நான்கு! எப்படிச் சொன்னோம்? ஒரு வார்த்தையையும் இன்னொரு வார்த்தையையும் எப்படிப் பிரித்தோம்? இடைவெளி இருப்பதைப் பார்த்தோம்! அதைக் கொண்டு கணித்தோம் – அல்லவா? எத்தனை இடைவெளிகள் இருக்கின்றன? மூன்று! மூன்று இடைவெளி இருந்தால் எத்தனை வார்த்தைகள் இருக்கும்? நான்கு! (கடைசி வார்த்தைக்குப் பிறகு இடைவெளி இருக்காது அல்லவா!) இந்த அடிப்படை நமக்குத் தெரிந்தால் போதும்! இப்போது நிரலுக்குள் போகலாம்.

வாக்கியத்தைப் பயனரிடம் இருந்து வாங்குவது எப்படி?
sentence = input(“Enter your sentence”)

இந்த வாக்கியத்தில் உள்ள இடைவெளிகளைக் கண்டுபிடிக்க வேண்டும். compile செயல்கூறு உள்ளது அல்லவா? அதற்கு \s என்பதை உள்ளீடாகக் கொடுத்தால் போதும்! \s என்பது இடைவெளி(space)யைக் குறிக்கும். (சின்ன எழுத்தில் தான் s கொடுக்க வேண்டும் – மறந்துவிடாதீர்கள்!) இப்படிக் கொடுத்துக் கிடைக்கும் பொதுவடிவத்திற்குப் பயனர் கொடுத்த வாக்கியத்தைக் கொடுத்து இடைவெளி எல்லாவற்றையும் கண்டுபிடி(findall) என்று சொன்னால் போதுமானது.

word_count.py:
————-

import re

def wordCount(sentence):
  pattern = re.compile(r'\s')
  space = pattern.findall(sentence)
  return len(space)+1

sentence = input("Enter your sentence")
count = wordCount(sentence)
print(sentence, " contains ", count , " words")

வாக்கிய எண்ணிக்கை:

எத்தனை வாக்கியங்கள் என்று எப்படிக் கண்டுபிடிப்பது? எளிதான வழி – எத்தனை முற்றுப்புள்ளிகள் (full stop) இருக்கின்றன என்று கண்டுபிடித்தால் போதுமே! எத்தனை முற்றுப்புள்ளிகள் இருக்கின்றனவோ அத்தனை வாக்கியங்கள் இருக்கின்றன – சரிதானே!
முற்றுப்புள்ளியை எப்படிக் கண்டுபிடிப்பது? re.compile(r’\.’) என்று கொடுக்க வேண்டும். \. என்பது புள்ளிகளைச் சொல்லும் பொதுவடிவத்தைக் கொடுக்கும். அந்தப் பொதுவடிவத்தின் கையில் நம்முடைய வாக்கியங்களைக் கொடுத்தால் – எத்தனை வாக்கியங்கள் இருக்கின்றன என்பது தெரிந்து விடும். இப்போது நிரலைப் பார்ப்போமா?

sentence_count.py:

import re

def sentenceCount(sentence): #3
  pattern = re.compile(r'\.') #4
  space = pattern.findall(sentence) #5 முற்றுப்புள்ளியைத் தேடும்
  return len(space) #6 ஏன் len பார்க்கிறோம்? space str வகை அல்லவா!

sentence = input("Enter your sentence: ") #1
count = sentenceCount(sentence) #2
print(sentence, " contains ", count , " sentence(s)") #7 விடை

ஒரு கோப்பில் இருந்து மின்னஞ்சல் முகவரியை மட்டும் வெட்டி எடுப்பது எப்படி என்பன போன்ற ரிஜெக்ஸ் நிரல்களை வரும் பதிவுகளில் தொடர்வோம்.  


- கி. முத்துராமலிங்கம்(muthu@payilagam.com)

 

%d bloggers like this: