मैं दिए गए वाक्य के लिए पार्स पेड़ बनाने में कामयाब रहा और यहां वाक्य के लिए यह है: "आदमी घर गया।"प्रोलॉग पार्स पेड़ को वापस तार्किक वाक्य में कैसे परिवर्तित करें
T = s(np(det(the), n(man)), vp(v(went), np(n(home))))
1) इस पर वाक्यांश/2 का उपयोग कैसे करें?
How to translate a sentence in a logical language using prolog? - मुझे जो चाहिए वह समान है, लेकिन इसका समाधान मुझ पर काम नहीं करता है।
2) मैं इसे व्याकरण पैटर्न के साथ मैप करना चाहता हूं और शब्द टैग प्राप्त करना चाहता हूं। Det=the
, N(Subject)=man
, V=went
, N(Object)=home
वहाँ एक रास्ता दिए गए सेट वृक्ष संरचना के साथ इस पेड़ के नक्शे और व्याकरण की पहचान के लिए है। मैं विषय, क्रिया, वस्तु, व्याकरण पैटर्न और लक्ष्य भाषा वाक्य उत्पन्न करने के लिए पार्स पेड़ का उपयोग कैसे कर सकता हूं।
संपादित बाद में .. मैं इस कोड की कोशिश की और यह काफी जवाब देता है। इस कोड पर कोई सुझाव।
sent("(s(np(n(man))) (vp(v(went)) (np(n(home)))))").
whitespace --> [X], { char_type(X, white) ; char_type(X, space) }, whitespace.
whitespace --> [].
char(C) --> [C], { char_type(C, graph), \+ memberchk(C, "()") }.
chars([C|Rest]) --> char(C), chars(Rest).
chars([C]) --> char(C).
term(T) --> chars(C), { atom_chars(T, C) }.
term(L) --> list(L).
list(T) --> "(", terms(T), ")".
terms([]) --> [].
terms([T|Terms]) --> term(T), whitespace, !, terms(Terms).
simplify([s,[np, [n,[Subject]]], [vp,[v,[Verb]],[np,[n,[Object]]]]],Result) :- Result = [Subject,Verb,Object].
धन्यवाद Mathee
'वाक्यांश/2' किसी डीसीजी नियम और किसी प्रकार की इनपुट सूची से संबंधित है। आप इसे किसी भी दिशा में उपयोग कर सकते हैं, लेकिन यदि आप न तो पार्सिंग कर रहे हैं और न ही सूची बना रहे हैं तो शायद यह नौकरी के लिए सही उपकरण नहीं है। यह मेरे लिए दूसरे जवाब में काम करता है क्योंकि लिस्प एस-एक्सप्रेशन मूल रूप से सूचियां हैं। –
कृपया बाद में जोड़े गए कोड की जांच करें। मैंने आपकी विधि का पालन किया। और यह एसडब्ल्यूआई प्रोलॉग में काम किया। क्या आप कोड के लिए कई व्याकरण पैटर से मेल खाने के लिए सुधार सुझा सकते हैं और दिए गए वाक्य के लिए व्याकरण पैटर्न की पहचान कर सकते हैं। – Mathee
'white' टैब और स्थान है; 'स्पेस' में वे शामिल हैं, इसलिए आपको केवल 'व्हाइट्स स्पेस // 0' में' स्पेस 'की आवश्यकता है। मैं 'सरलीकृत/2' से 'परिणाम' को हटा दूंगा और केवल सूची को दूसरे तर्क के रूप में रखूंगा और इस नियम पर कोई शरीर नहीं होगा। अन्यथा यह मेरे लिए अच्छा लग रहा है। आश्चर्य की बात यह है कि मैंने ऐसा नहीं सोचा था कि आप बिल्कुल पूछ रहे थे, लेकिन यह मेरे लिए बुरा नहीं लग रहा है। :) –