तो थोड़ा सा विचार प्रयोग के रूप में मैंने पायथन में एक फ़ंक्शन को कोड किया जो एक समाचार लेख के विषय को खोजने के लिए स्पासी का उपयोग करता है, फिर इसे पसंद के संज्ञा के साथ प्रतिस्थापित करें। समस्या यह है कि यह वास्तव में अच्छी तरह से काम नहीं करता है, और मुझे उम्मीद थी कि इसे बेहतर किया जा सकता है। मैं वास्तव में स्पासी को बिल्कुल समझ नहीं पा रहा हूं, और दस्तावेज़ीकरण को समझना मुश्किल है।एक वाक्य के "विषय" को प्रतिस्थापित करने के लिए स्पासी का उपयोग
पहले, कोड:
doc=nlp(thetitle)
for text in doc:
#subject would be
if text.dep_ == "nsubj":
subject = text.orth_
#iobj for indirect object
if text.dep_ == "iobj":
indirect_object = text.orth_
#dobj for direct object
if text.dep_ == "dobj":
direct_object = text.orth_
try:
subject
except NameError:
if not thetitle: #if empty title
thetitle = "cat"
subject = "cat"
else: #if unknown subject
try: #do we have a direct object?
direct_object
except NameError:
try: #do we have an indirect object?
indirect_object
except NameError: #still no??
subject = random.choice(thetitle.split())
else:
subject = indirect_object
else:
subject = direct_object
else:
thecat = "cat" #do nothing here, everything went okay
newtitle = re.sub(r"\b%s\b" % subject, toreplace, thetitle)
if (newtitle == thetitle) : #if no replacement happened due to regex
newtitle = thetitle.replace(subject, toreplace)
return newtitle
"बिल्ली" लाइनों भराव लाइनों है कि कुछ भी नहीं करते हैं। "शीर्षक" एक यादृच्छिक समाचार आलेख शीर्षक के लिए एक चर है जो मैं आरएसएस फ़ीड से खींच रहा हूं। "टोरेप्लेस" वेरिएबल है जो स्ट्रिंग को जो कुछ भी मिला है उसे बदलने के लिए स्ट्रिंग रखता है।
"वीडियो गेम है कि टीवी एनिमेटेड होना चाहिए दिखाता है - स्क्रीन शेख़ी" और यहाँ इस बात का displaCy टूटने है::
एक उदाहरण का उपयोग करते हैं https://demos.explosion.ai/displacy/?text=Video%20Games%20that%20Should%20Be%20Animated%20TV%20Shows%20-%20Screen%20Rant&model=en&cpu=1&cph=1
शब्द कोड का निर्णय लिया जा रहा है समाप्त हो गया की जगह " वह ", जो इस वाक्य में एक संज्ञा भी नहीं है, लेकिन ऐसा लगता है कि यादृच्छिक शब्द पसंद फॉलबैक है, क्योंकि यह कोई विषय, अप्रत्यक्ष वस्तु या प्रत्यक्ष वस्तु नहीं ढूंढ सका। मेरी आशा है कि इस उदाहरण में इसे "वीडियो गेम" जैसे कुछ और मिलेगा।
मुझे नोट करना चाहिए कि अगर मैं आखिरी बिट आउट (जो समाचार लेख का स्रोत प्रतीत होता है) displaCy: https://demos.explosion.ai/displacy/?text=Video%20Games%20that%20Should%20Be%20Animated%20TV%20Shows&model=en&cpu=1&cph=1 ऐसा लगता है कि "वह" विषय गलत है, जो गलत है।
इसका विश्लेषण करने का एक बेहतर तरीका क्या है? क्या मुझे पहले उचित संज्ञाएं तलाशनी चाहिए?
यह कोशिश/ब्लॉक को छोड़कर बहुत पाइथनिक नहीं दिखता है, उन्हें किसी को शुरू करने में क्या गलत है और फिर जांचें? –
आपको वाक्य खंडों पर अच्छे नतीजे नहीं दिखाई देंगे, आपके उदाहरण वाक्य में भविष्यवाणी भी नहीं है। –
पुन: प्रयास/ब्लॉक को छोड़कर मैं इसे एक कोड उदाहरण से आधार दे रहा था जिसे मैंने स्पासी का उपयोग करने के लिए पाया था। भविष्यवाणी खराब नहीं होगी? SpaCy का उपयोग करने से वाक्य खंड के विषय को खोजने का कोई बेहतर तरीका है? – SpaceMouse