kmadathil / sanskrit_parser

Parsers for Sanskrit / संस्कृतम्
MIT License
69 stars 21 forks source link

Module contracts #39

Open kmadathil opened 7 years ago

kmadathil commented 7 years ago

Opening a separate issue to talk about this, since it was being lost in the overgeneration discussion:

घटकानां मध्ये व्यवस्था एवं‌ भवेत् इति मम मतम्

L0: Given an input string, return possible sandhi splits at each location Given two input strings, return sandhi output(s) - Valid sandhis only. (We will deal with overgeneration on a case basis for now) L1: Given a pada, return all possible lexical tags L2: Given a string with or without spaces, return a graph where each pada boundary is a legitimate split as per L0, as well as each pada being lexically valid as per L1 L3: Given a lexical graph from L2, output paths that have valid morphologies, ordered (optionally) by DCS frequencies(?)

केचन अपवादा सन्ति येषां‌ चिन्ता करणीया |‌ अत्रैव कुर्वः

  1. यत्रसन्धिविच्छेदं कर्तुम् lexical वा morphological विज्ञाप्तिः आवश्यका (उद: पुरस्करोति)
  2. षत्वं णत्वं च
vvasuki commented 7 years ago

L0 इति L1 इत्यस्याधः कथं स्यात् सोपाने? अथवा सोपानक्रमो नास्ति सर्वत्र। तद्विहाय प्रस्ताव उचितो भाति। भवता सूचितयोर् अपवादयोर् अन्तर्भावः प्रथमस्तरे (नाम ल-० इत्यत्र) एवास्तु। सन्धिविच्छेदे कदाचिद् अग्रेवर्तीनि बहून्येवाक्षराणि द्रष्टव्यानि स्युः - तदस्तु।

kmadathil commented 7 years ago

यो घटको यस्य उत्पन्नम् उपयुङ्क्ते इति क्रमेण सोपनक्रमः कृतः‌ |‌ अत्र, L0 घटकस्य उत्पन्नं L1 इत्यनेन प्रयुज्यते |

भवता सूचितयोर् अपवादयोर् अन्तर्भावः प्रथमस्तरे (नाम ल-० इत्यत्र) एवास्तु

नावगतं मया | अपवादानां‌ चिन्ता L2/L3 इत्यत्र न करणीयम् इत्य् अभिप्रैति भवान् किम्?‌

vvasuki commented 7 years ago

नावगतं मया | अपवादानां‌ चिन्ता L2/L3 इत्यत्र न करणीयम् इत्य् अभिप्रैति भवान् किम्?‌

नैवम् - भवदुक्तापवादयोः परिहारस् L0 इत्यत्रैवास्त्विति विवक्षितम् - lookahead-द्वारा।

kmadathil commented 7 years ago

पश्यतु इमानि सूत्राणि
८ . ३ . ४० नमस्पुरसोर्गत्योः ८ . ३ . ४१ इदुदुपधस्यचाप्रत्ययस्य । ८ . ३ . ४२ तिरसोऽन्यतरस्याम् । ८ . ३ . ४३ द्विस्त्रिश्चतुरिति कृत्वोऽर्थे

अत्र lexical विज्ञाप्तिः आवश्यका भवति | इदानीं sandhi.py इत्यस्मिन् तावती विज्ञाप्तिर् नास्ति | तस्मात् एतावन्ति कार्याणि L2/L3 इत्यत्र करणीयम् इत्यासीत् मम मतम् |‌ परन्तु यथोक्तं भवता, तथापि कर्तुं शक्नुमः |

तर्हि L0/L1 इत्यनयोः नामपरिवर्तनं करणीयं, lexical विज्ञाप्तिर् अपेक्ष्यते तत्कर्माय इति कारणेन् :-)

नूनं चिन्त्यमस्ति

@avinashvarna स्वमतं सूचयतु विषयेस्मिन्

avinashvarna commented 7 years ago

विलम्बार्थं क्षन्तव्योऽयं जनः ।

एतानि "high-level requirements" समीचीनानि एव, परन्तु "contract/specification" इत्यनेन सूक्ष्मांशा अपि स्पष्टीकर्तव्या इति मम मतम् । उदाहरणार्थं यथा पूर्वं चर्चितम्, कुत्र left, right इत्येतत् सन्धिस्तरस्य output मध्ये भवेत् कुत्र नेति च । एतदग्रे चर्चयितुं शक्नुमः ।

सम्प्रति L1 इत्येतत् L0 इत्यस्मात् उत्पन्नमेव उपयुङ्क्ते इति नास्ति । तौ द्वौ तन्त्रांशौ अपि L2 इत्यत्रैव उपयुज्येते । आवश्यकं चेत् सन्धितन्त्रांशे पदस्य lexical tags अपि उपयुज्य अपवादानामपि यथाशक्ति परिहारं कर्तुं शक्नुयाम (यथाह @vvasuki), परन्तु तदा तस्य complexity वर्धते । चिन्ता तु नास्ति, कर्तुं शक्यते एव ।

अपरः विकल्पः नाम सन्धिस्तरे overgeneration कृत्वा कथञ्चित् अधिकविवरणानि दीयन्ते चेत् (केन नियमेन विच्छेदः कृत इति), lexical/morphological analysis स्तरे constraints स्थापयित्वा तानि निवारयितुं शक्नुमः । न तावद्रोचयतेऽयम् उपायः, यतो हि overgeneration इत्यस्मात् अधुनैव क्लेशा अनुभूयन्ते ।

मम दृष्ट्या, अपवादानां चिन्तनम् आवश्यकं, परन्तु तत्रैव अधिकम् अवधानं मास्तु । अधुना तु majority विषयान् समीचीनतया कर्तुं प्रयत्नः विधेयः (यतो हि तेन बहूनाम् उपकारो भवेत्) । तदनु exceptions विषये चिन्तयाम ।

kmadathil commented 7 years ago

अधुना तु majority विषयान् समीचीनतया कर्तुं प्रयत्नः विधेयः (यतो हि तेन बहूनाम् उपकारो भवेत्) । तदनु exceptions विषये चिन्तयाम ।

समीचीनम् |‌ इदानीं अपवादानां चिन्ता न करोमि :-)