اردو جملہ کشید Urdu Sentence Splitter

محب علوی نے 'ڈیویلپمنٹ' کی ذیل میں اس موضوع کا آغاز کیا، ‏مارچ 17, 2015

  1. محب علوی

    محب علوی لائبریرین

    مراسلے:
    11,253
    جھنڈا:
    Pakistan
    موڈ:
    Bookworm
    اس دھاگے کی وجہ تسمیہ ہے یہ دھاگہ

    اردو ٹیکسٹ آرکائیو کی طرف پہلا قدم

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

    میں نے یہ کوڈ اس بلاگ پوسٹ سے اٹھایا تھا۔

    Converting a Perl Urdu sentence splitter to Python

    اس پوسٹ کا اختتام اس جملے پر ہوتا ہے
    I would really like some feedback on people’s views of sentence splitting if anyone is interested. Please email me.

    گھوم پھر کر کوڈ میں نے GitHub سے اٹھایا جس کا لنک یہ ہے

    WikiTrans Pootle WT_Articles Splitting

    بنیادی طور پر موصوف نے ایک پرل کوڈ کو پائتھون میں ڈھالا ہے جسے MIT کے طالب علم دانش منیر نے لکھا تھا مگر پبلک نہیں کیا۔

    کوڈ کا جائزہ لے لیا ہے اور دھاگے کو زندہ کرنے کی خاطر شیئر بھی کروں، کچھ سوالات بھی ہیں جن کا جواب چاہوں گا اور امید ہے کہ تحقیق کسی قدر آگے بڑھے گی۔

    PHP:

    ### Urdu Sentence Splitter
    import sys
    import re
    #import nltk.data

    #Unicode Code Points for - ? ! . /r   .
    DASH u'\u06D4'        # Arabic full stop
    QUESTION u'\u061F'    # ?
    ELLIPSIS u'\u2026'    # !
    BULLET u'\u2022'      #
    CR u'\u000D'          # /r
    SPACE u'\u0020'       #
    FULL_STOP u'\u002e'   # .

    text '''
    انجری کا شکار پاکستانی فاسٹ بائولر کو کولہے کی ہڈی میں تکلیف کی وجہ سے میگا ایونٹ کے بقیہ میچز نہ کھلانے کا فیصلہ کیا گیا ہے۔ ترجمان پی سی بی نے بتایا کہ فاسٹ بائولر کو وطن واپس بھجوایا جا رہا ہے!فاسٹ بائولر کا آج میڈیکل ٹیسٹ کروایا گیا جس میں انہیں ان فٹ قرار دیا گیا ۔
    میگا ایونٹ میں محمد عرفان کی جگہ احسان عادل کو ٹیم میں شامل کیے جانے کا امکان ہے۔
    اچھا جی!!!
    '''

    text text.replace('\r','')
    text text.replace('\n','\n\n')
    reg_bullet u'\s*%s\s*' BULLET
    text 
    re.sub(reg_bullet'\n\n\n\n\n'text)

    text text.replace('\t* +\t*$'' ')

    reg_cr u'[\n%s][ ]+[\n%s]' % (CRCR)
    text re.sub(reg_cr'\n\n'text)

    reg_space u'^[\t%s]+$' SPACE
    text 
    re.sub(reg_space'\n\n'text)

    text text.replace('|','')
    #/(\n{2,}|!|\x{061f}|\x{06D4}|\x{2022}|\x{000d}|\s{2,}|\x{2026}|\x{002e})/
    # '\n{2,}|!|QUESTION|DASH    |BULLET  |CR      |\s{2,}|ELLIPSIS|FULL_STOP'
    regex u'(\n{2,}|!|%s|%s|%s|%s|\s{2,}|%s|\%s)' % (QUESTIONDASHBULLETCRELLIPSISFULL_STOP)
    re.compile(regex)
    sentences p.split(text)

    new_string ''
    segment_id 1
    follow_up_punctuation 
    re.compile('[\n%s%s]' % (CRBULLET))
    0
    new_sentences 
    = []
    while 
    len(sentences):
        
    sent sentences[i]
        
    sent sent.strip()  # remove whitespace
        
    if len(sent) < 1:    # skip empty lines
            
    i+2
            
    continue
        
    new_string new_string sent
        
    # check punctuation in following sentence
        # if not newline, CR or BULLET, print it
        
    next_sent sentences[i+1]
        if 
    not follow_up_punctuation.match(next_sent):
            
    new_string new_string next_sent
        new_sentences
    .append(sent '\n')
        
    segment_id segment_id 1
        i 
    2

    for sent in new_sentences:
        print(
    sent)

     
    آخری تدوین: ‏مارچ 17, 2015
    • معلوماتی معلوماتی × 3
  2. سید عاطف علی

    سید عاطف علی محفلین

    مراسلے:
    6,105
    جھنڈا:
    SaudiArabia
    موڈ:
    Cheerful
    سے کیا مراد ہے ؟
     
  3. محب علوی

    محب علوی لائبریرین

    مراسلے:
    11,253
    جھنڈا:
    Pakistan
    موڈ:
    Bookworm
    محمداحمد ، دوست ، ابن سعید ذرا اس دھاگے پر نظر مار لیں تاکہ کچھ گفتگو آگے بڑھائی جا سکے۔

    یاد رہے کہ میری پائتھون بنیادی نوعیت کی ہے اور کبھی کبھار شوقیہ بخار کے تحت کوڈ لکھتا ہوں ، اس لیے اکثر بنیادی چیزیں بھی بھولا بیٹھا ہوتا ہوں۔
     
    آخری تدوین: ‏مارچ 17, 2015
  4. محب علوی

    محب علوی لائبریرین

    مراسلے:
    11,253
    جھنڈا:
    Pakistan
    موڈ:
    Bookworm
    اس سے مراد یہ ہے کہ اگر ایک پیراگراف اردو تحریر کا میسر ہو تو اس میں سے جملوں کو علیحدہ کیا جا سکے ، اس کے بعد قدرتی طور پر جملوں سے الفاظ کو علیحدہ کیا جائے گا اور پھر ان کا تجزیہ کیا جا سکتا ہے۔
     
    • معلوماتی معلوماتی × 1
  5. دوست

    دوست محفلین

    مراسلے:
    12,788
    جھنڈا:
    Germany
    موڈ:
    Fine
    جملے تو بن جائیں گے۔ لیکن الفاظ الگ کرنا ذرا اوکھا کام ہے۔ کرلپ نے ایک ٹول بنایا ہے جو سپیس ڈالنے یا اڑانے کے مسائل سے نپٹتا ہے۔ وہ ٹول چلا کر پہلے اسے ٹھیک کیا جائے اور اس کے بعد لفظ الگ الگ کیے جائیں۔
     
  6. محب علوی

    محب علوی لائبریرین

    مراسلے:
    11,253
    جھنڈا:
    Pakistan
    موڈ:
    Bookworm
    الفاظ الگ کرنے والا کام پائتھون میں ہو جائے گا اور کچھ مزید تبدیلیاں اور آسانیاں بھی پیدا ہو سکتی ہیں۔

    اس کے لیے پائتھون کی ایک بہترین لائبریری ہے NLTK ، اس کے استعمال سے نیچرل لینگویج پروسیسنگ بہت عمدہ طریقہ سے ہو سکتی ہے۔

    ویسے لائبریری کو میں نے اردو کے لیے استعمال نہیں کیا ورنہ انگریزی کے لیے تو بہترین تجزیہ اور کاٹ پلٹ کرتی ہے ۔

    سب سے پہلے تو آپ کی بنائی ہوئی فائلز درکار ہیں اور اس کے بعد چند مراحل پر گفت و شنید کہ کیسے اور کس مرحلے میں کیا کرنا ہے۔
     
  7. arifkarim

    arifkarim معطل

    مراسلے:
    29,832
    جھنڈا:
    Norway
    موڈ:
    Happy
    ابرارحسین کا پاک ورڈ فائنڈر یہ سب کام پہلے ہی سے کر سکتا ہے۔ یہ 5 سال پرانا ٹول ہے جو ہمنے اردو و قرآنی الفاظ و ترسیمہ جات اخذ کرنے کیلئے بنوایا تھا۔ نیز کرلپ کے اس ٹول کا ربط بھی دے دیں۔
     
  8. ابن سعید

    ابن سعید خادم

    مراسلے:
    60,037
    سوال یہ ہے کہ اس اسکرپٹ کی افادیت کیا ہے؟ اول تو یہ کہ براہ راست اسے استعمال کرنے سے کوئی قابل ذکر چیز بن کر سامنے نہیں آئے گی سوائے جملوں کی فہرست سطر بہ سطر مرتب کرنے کے۔ ایسی چیزیں عموماً دوسری اسکرپٹس میں بطور موڈیول استعمال کی جا سکتی ہیں لیکن کوڈ اس انداز میں نہیں لکھا گیا ہے کہ اسے بطور موڈیول استعمال کیا جا سکے، گو کہ اس کو موڈیول میں تبدیل کرنا کچھ ایسا مشکل بھی نہیں، لیکن اسے ایک سے زائد میتھڈس میں توڑنا پڑے گا۔ اس کی افادیت اس لیے بھی محدود ہے کیونکہ کسی بڑی اسکرپٹ میں اگر ایسی کوئی ضرورت پیش بھی آئے تو کم و بیش یہی کام چار پانچ لائن کے کوڈ سے ہو جائے گا۔ البتہ پروگرامنگ سیکھنے والے مبتدیوں کے لیے ایسی مشقیں ٹھیک ہیں۔ :) :) :)
     
  9. arifkarim

    arifkarim معطل

    مراسلے:
    29,832
    جھنڈا:
    Norway
    موڈ:
    Happy
    یہی تو میں سوچ رہا تھا کہ یہ سادھا سا کوڈ تو آپ خود بھی لکھ سکتے ہیں :)
     
  10. دوست

    دوست محفلین

    مراسلے:
    12,788
    جھنڈا:
    Germany
    موڈ:
    Fine
  11. محب علوی

    محب علوی لائبریرین

    مراسلے:
    11,253
    جھنڈا:
    Pakistan
    موڈ:
    Bookworm
    آخری جملے میں جواب دے دیا ہے۔

    ویسے میں نے پوری کہانی بیان کی ہے جس سے اسے شیئر کرنے کا مقصد پتہ چلتا ہے ۔

    واضح طور پر یہ بھی لکھا کہ دھاگہ زندہ بھی کیا اور گفتگو کا در بھی وا کیا۔

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

اس صفحے کی تشہیر