پائتھون میں Transliteration

اس دھاگے میں پائتھون میں رومن ٹیکسٹ کو اردو تحریر میں تبدیل کرنے کے لیے کوڈ مہیا کیا جائے گا اور اس پر بحث و تبصرے ہوں گے۔
 
PHP:
import os
import codecs
 
basedir = "C:\\Data"
FILE_NAME = os.path.join(basedir,"sampdict.txt")
 
roman_urdu = {}
try:
    if os.path.isfile(FILE_NAME):
        store = codecs.open(FILE_NAME,'r','utf-8')
        for line in store.readlines():
            eng,urdu = line.strip().split(':',1)
            roman_urdu[eng] = urdu
except IOError:
  print("Error: can't find file or read data")
else:
    print("Path is not correct")
 
 
print(roman_urdu.keys())
print(roman_urdu.values())

اس کوڈ میں فائل سے ڈکشنری میں اندراج کیے گئے ہیں جو کہ آگے چل کر پھر ٹرانسلیٹریشن کے کام آئے گا۔
 
کیا ہمیں اس وقت ضرورت اردو کو رومن میں تبدیل کرنے کی نہیں ہے؟

نبیل ، دونوں کاموں کے لیے کوڈ میں معمولی رد و بدل ہی ہوگی کیونکہ اس وقت جو بنیاد بنائی گئی ہے وہ ہے الفاظ کی ایک فہرست جس میں رومن اور اردو دونوں الفاظ ہوں گے اور ان میں سے کسی کو بھی کسی میں بھی تبدیل کرنا ممکن ہوگا صرف کالموں کی ترتیب آگے پیچھے کرنی ہوگی۔
 
اوپر ایک فائل کی مدد سے ڈکشنری کو لوڈ کیا گیا تھا ، اسے نیچے بھی استعمال کیا گیا ہے۔ ڈکشنری کو بھرنے کے بعد ایک ان پٹ فائل لی گئی ہے جس میں رومن میں ٹیکسٹ ہے اور اسے اردو تحریر میں بدل کر ایک نئی فائل میں پرنٹ کروا دیا گیا ہے۔
یہ بالکل خام کوڈ ہے مگر چونکہ آج میری چھٹی تھی اس لیے سوچا یہ کرکے دیکھنا چاہیے۔ کوڈ لکھنے میں بہت کم البتہ مثالیں ڈھونڈنے اور کئی دوسرے ٹرانسلیٹریشن کے کوڈ سیدھے کرنے ، ان میں جگاڑنے لگانے میں کافی وقت لگ گیا۔ دوسرا چونکہ میں خود پائتھون سیکھ رہا ہوں اس لیے کئی بنیادی غلطیاں اور کام کافی دیر سے کر سکا کیونکہ پائتھون کے ورژن مختلف ہونے کی وجہ سے بہت سا کوڈ ورژن 3 میں کام کرتا ہی نہیں۔

حوصلے کی بات یہ ہے کہ میں محفل پر ہی دو عدد پائتھون کے ماہر تلاش کر چکا ہوں اور امید ہے کہ وہ آئندہ دلچسپی دکھا کر ہماری کافی مدد کر سکتے ہیں۔

ابن سعید سے بات نہیں ہو سکی ورنہ کئی مفید مشورے مل جاتے اور سعود کے بنائے ہوئے کوڈ سے بہتر الگورتھم کا بھی پتہ چل جاتا۔ میں اب توجہ اردو الفاظ کی فہرست جمع کرنے ، اسے مختلف فارمیٹ میں بنانے اور پھر اسے احباب میں تقسیم کرکے اس میں رومن اردو کے اندراج پر مرکوز کرتا ہوں۔

PHP:
import codecs
import os
 
def dict_populate(FILE_NAME):
    try:
        if os.path.isfile(FILE_NAME):
            store = codecs.open(FILE_NAME,'r','utf-8')
            for line in store.readlines():
                eng,urdu = line.strip().split(':',1)
                roman_urdu[eng] = urdu
    except:
        print("Path is not correct")
 
 
basedir = "C:\\Data"
 
FILE_NAME = os.path.join(basedir,"dict.txt")
 
#input_file = 'C:\Data\input.txt'
#output_file = 'C:\Data\output.txt'
 
input_file = os.path.join(basedir,"input.txt")
output_file = os.path.join(basedir,"output.txt")
 
 
roman_urdu = {}
 
#Populate the dictionary with Roman(keys) and Urdu(values) words
dict_populate(FILE_NAME)
 
# read the whole file at once
f = codecs.open(input_file,'r','ascii')
data = f.read()
f.close()
 
# perform all the replacements
for k,v in roman_urdu.items():
    data = data.replace(k,v)
 
 
# write the whole file result
f = codecs.open(output_file,'w','utf-8')
f.write(data)
f.close()
 
اس دھاگے میں پائتھون میں رومن ٹیکسٹ کو اردو تحریر میں تبدیل کرنے کے لیے کوڈ مہیا کیا جائے گا اور اس پر بحث و تبصرے ہوں گے۔
کیا رومن ٹیکسٹ کو رومن اردو بھی کہتے ہیں، اگر ہاں تو رومن اردو اور نستعلیق اردو میں صرف فونٹ کا فرق رہ جاتا ہے۔ تو پھر لمبا چوڑا کوڈ کیوں؟
 

فاتح

لائبریرین
رومن انداز تحریر میں ایک ایک لفظ کو بیسیوں طرح سے لکھا جاتا ہے یعنی کوئی سٹینڈرڈ نہیں ہے۔۔۔ اس طرح صرف ایک کالم رومن کا کیا فائدہ؟ اگر کسی نے محب علوی کے سٹینڈرڈ کے مطابق رومن نہیں لکھی ہو گی تو یہ کوڈ کام نہیں کرے گا۔
ابن سعید اور نبیل برادران نے ایک ایک اطلاقیہ بنایا تھا جس میں گوگل کے سرور کو رومن بھیج کر اردو میں تبدیل کروایا جاتا ہے۔ میرے خیال میں وہ طریقہ کہیں زیادہ قابل عمل ہے۔
برادرم نبیل ، اگر اردو سے رومن میں تبدیل کروانا چاہتے ہیں تو چند ایک رومن ڈکشنریاں موجود ہیں جن کو استعمال میں لایا جا سکتا ہے مثلاً ہندوستانی ٹو انگلش ڈکشنری جو کہ آرکائیو ڈاٹ آرگ پر موجود بھی ہے۔
 
کیا رومن ٹیکسٹ کو رومن اردو بھی کہتے ہیں، اگر ہاں تو رومن اردو اور نستعلیق اردو میں صرف فونٹ کا فرق رہ جاتا ہے۔ تو پھر لمبا چوڑا کوڈ کیوں؟
کوڈ کی مشق میری ذاتی ہے اور اس کا مقصد اطلاقیہ بنانا نہیں بلکہ کچھ چیزوں کی پڑتال کرنا ہے۔

اصل مقصد اردو الفاظ کی فہرست جمع کرنا اور پھر اس کے لیے رومن ٹیکسٹ اور اس کے بعد صوتی ٹیکسٹ کا اندراج ہے۔

الفاظ کی فہرست ابھی طے ہو رہی ہے جس میں وقت اس لیے لیا جا رہا ہے تاکہ ایسا نہ ہو کہ بہتر فہرست کے آنے پر کام دوبارہ سے شروع کرنا پڑے۔

اس کوڈ کو پائتھون کی کلاس سے جڑے طالب علموں کے لیے مخصوص سمجھا جائے اور کسی اور تناظر میں کم دیکھا جائے ۔ :)
 
رومن انداز تحریر میں ایک ایک لفظ کو بیسیوں طرح سے لکھا جاتا ہے یعنی کوئی سٹینڈرڈ نہیں ہے۔۔۔ اس طرح صرف ایک کالم رومن کا کیا فائدہ؟ اگر کسی نے محب علوی کے سٹینڈرڈ کے مطابق رومن نہیں لکھی ہو گی تو یہ کوڈ کام نہیں کرے گا۔
ابن سعید اور نبیل برادران نے ایک ایک اطلاقیہ بنایا تھا جس میں گوگل کے سرور کو رومن بھیج کر اردو میں تبدیل کروایا جاتا ہے۔ میرے خیال میں وہ طریقہ کہیں زیادہ قابل عمل ہے۔
برادرم نبیل ، اگر اردو سے رومن میں تبدیل کروانا چاہتے ہیں تو چند ایک رومن ڈکشنریاں موجود ہیں جن کو استعمال میں لایا جا سکتا ہے مثلاً ہندوستانی ٹو انگلش ڈکشنری جو کہ آرکائیو ڈاٹ آرگ پر موجود بھی ہے۔

کچھ نکات میں نے اوپر بیان کیے ہیں جس میں تمہارے چند اعتراضات کے جواب ہیں۔

میں کوئی معیار نہیں بنا رہا اور نہ ہی ایسی کوشش کا فی الحال کوئی ارادہ ہے۔ دوسرا کوڈ میں یہ لچک رکھی جا سکتی ہے کہ وہ معیار سے ہٹ کر بھی لکھی ہوئی چیزوں کی درستگی کر سکے مگر ابھی یہ بھی ارادہ نہیں۔

مقصد اس وقت اردو سے رومن(اس میں صوتی الفاظ شامل ہوں گے) میں الفاظ کی ایسی ضخیم فہرست تیار کرنا ہے جسے بنیاد بنا کر کئی سافٹ ویئر میں استعمال کیا جا سکے جس میں سر فہرست

ڈریگن نیچرل اسپیکنگ ٹیکسٹ ٹو اسپیچ ہے

اس کے علاوہ اس فہرست کو اسپیل چیکر کے طور پر استعمال کیا جا سکے گا۔

اس کے علاوہ اسے باقیوں کے استعمال کے لیے آزاد رکھا جائے گا اور اس میں اضافہ و تدوین بھی ہوتی رہے گی۔

اس قسم کی فہرست کی ضرورت عرصہ سے محسوس کی جاتی رہی ہے اور اب اسے بنانے اور پروف ریڈ کرنے کے لیے کام کا آغاز کیا جا رہا ہے۔

میرے خیال سے اب کافی ابہام دور ہو گئے ہوں گے۔
 
گوگل ٹرانسلیٹریٹ ایک لفظ کو ایک وقت میں تبدیل کرتا ہے اور وہ بھی آن لائن۔

پھر یہ سروس اب deprecated ہے یعنی دو سال کے بعد میسر نہ ہو گی گوگل کی طرف سے۔
 

فاتح

لائبریرین
کچھ نکات میں نے اوپر بیان کیے ہیں جس میں تمہارے چند اعتراضات کے جواب ہیں۔

میں کوئی معیار نہیں بنا رہا اور نہ ہی ایسی کوشش کا فی الحال کوئی ارادہ ہے۔ دوسرا کوڈ میں یہ لچک رکھی جا سکتی ہے کہ وہ معیار سے ہٹ کر بھی لکھی ہوئی چیزوں کی درستگی کر سکے مگر ابھی یہ بھی ارادہ نہیں۔

مقصد اس وقت اردو سے رومن(اس میں صوتی الفاظ شامل ہوں گے) میں الفاظ کی ایسی ضخیم فہرست تیار کرنا ہے جسے بنیاد بنا کر کئی سافٹ ویئر میں استعمال کیا جا سکے جس میں سر فہرست

ڈریگن نیچرل اسپیکنگ ٹیکسٹ ٹو اسپیچ ہے

اس کے علاوہ اس فہرست کو اسپیل چیکر کے طور پر استعمال کیا جا سکے گا۔

اس کے علاوہ اسے باقیوں کے استعمال کے لیے آزاد رکھا جائے گا اور اس میں اضافہ و تدوین بھی ہوتی رہے گی۔

اس قسم کی فہرست کی ضرورت عرصہ سے محسوس کی جاتی رہی ہے اور اب اسے بنانے اور پروف ریڈ کرنے کے لیے کام کا آغاز کیا جا رہا ہے۔

میرے خیال سے اب کافی ابہام دور ہو گئے ہوں گے۔
اس قدر مبہم جواب سے مزید ابہام پیدا ہو گئے۔۔۔ دور کیا خاک ہونے تھے
 
Top