2009-04-21 8 views
28

मेरा एक दोस्त एक शब्द गेम के बारे में बात कर रहा था जिसे वह एक शब्द को दूसरे स्थान पर बदलने की कोशिश करती थी (एक ही अक्षर में एक ही संख्या में) एक अक्षर को स्विच करके, जहां प्रत्येक पुनरावृत्ति एक वास्तविक शब्द उत्पन्न करती है।प्रोग्रामेटिक रूप से उपयोग के लिए मुफ्त शब्द सूची?

उदाहरण:

चंद्रमा -> भेड़िया
गुंडा
गड़बड़
गोल्फ़
भेड़िया

मैं लगा यह करने के लिए एक प्रोग्राम लिखने के लिए एक मजेदार थोड़ा परियोजना होगी समाधान उत्पन्न करें, और इसे आगे ले जाएं, दो शब्दों को देखते हुए, यह निर्धारित करें कि कोई समाधान मौजूद है या इष्टतम समाधान में पुनरावृत्तियों की संख्या है।

समस्या मुझे मुफ्त शब्द सूची खोजने में परेशानी हो रही है जिसे मैं आसानी से प्रोग्रामेटिक रूप से एक्सेस कर सकता हूं। मैं इसे पायथन सीखने के लिए एक बहाना के रूप में भी उपयोग करने के बारे में सोच रहा हूं, इसलिए अगर कोई मुफ्त शब्द सूचियों और पॉइंटर्स को पाइथन से कैसे पार्स और एक्सेस करने के बारे में जानता है तो यह बहुत अच्छा होगा। एक इष्टतम पथ खोजने के तरीके के बारे में पता लगाने के लिए एल्गोरिदम मैं अपने आप काम करूंगा।

+4

यह एक उपयोगी प्रश्न है, हालांकि यह एक उपयोगी सवाल है, हालांकि यह एक डुप्ली होता है (देखें http://stackoverflow.com/a/772929/284795) –

उत्तर

54

this question और this question देखें, जो अनिवार्य रूप से आप जो खोज रहे हैं, देखें।

विकल्प:/usr/share/dict के लिए

  1. देखो/अपने सामान्य या बगीचे विविधता यूनिक्स पर शब्द स्थापित करें।
  2. http://www.ibiblio.org/webster/
  3. http://wordlist.sourceforge.net/
  4. http://svnweb.freebsd.org/csrg/share/dict/ (क्लिक करें 'शब्द' फ़ाइल की 'संशोधन' टैग)

#4 एक मैं अपने खुद के Python experiment शब्द खेल में के लिए इस्तेमाल किया है, और यह अच्छी तरह से काम किया ।

import re 
startwith = "MOON" 
endwith = "GOLF" 
cklength = re.compile('.{' + str(len(startwith)) + '}(\n)?$', re.I) 
filename = "C:/dict.txt" 
words = set(x.strip().upper() for x in open(filename) if x.match(cklength)) 

शब्द तो शब्दकोश में सभी 4 पत्र शब्द का एक सेट हो जाएगा:

बोनस अंक के लिए, यहाँ प्राप्त करने के लिए कुछ है कि आप अपने शब्द कार्यक्रम पर शुरू कर दिया है। आप वहां से अपना तर्क कर सकते हैं।

+0

मान लीजिए कि मैंने डुप्ली नहीं देखी मेरी त्वरित खोज में। धन्यवाद :) – Davy8

+0

संपादन के लिए धन्यवाद, अगर मैं कर सकता था तो मैं बोनस अंक दूंगा, लेकिन मैं जो कुछ भी कर सकता हूं उसके बारे में अपवित्र और स्वीकार कर सकता हूं: पी – Davy8

+0

फ्रीब्सड स्रोत नियंत्रण के लिए सबवर्जन में स्विच हो गया है ताकि लिंक अब काम न करे - यहां एक अपडेट किया गया लिंक है http://svnweb.freebsd.org/base/head/share/dict/web2?view=co –

6

आप अंग्रेजी शब्दों की 2.2 एमबी सूची here पा सकते हैं।

आप file i/o functions का उपयोग करके उन्हें एक्सेस कर सकते हैं।

22

अधिकांश यूनिक्स (जिसमें ओएसएक्स शामिल है) में फ़ाइल /usr/share/dict/words है।

4

आप एक linux के लिए उपयोग स्थापित किया है, वहाँ

/usr/share/dict/ 
1

में कुछ शब्द सूची होना चाहिए समान मैं mozilla English dictionary का इस्तेमाल किया है कुछ के लिए। यह एक ज़िप फ़ाइल है (भले ही इसमें एक और एक्सटेंशन हो)। अंदर आप en-GB.dic पाएंगे जो शब्दकोश है।

3

dict.org में डेटाबेस पर नज़र डालें। ये वास्तव में शब्दकोश डेटाबेस हैं, इसलिए आपको शब्द परिभाषाओं को स्वयं निकालने की आवश्यकता होगी। आप Wordnet से शुरू कर सकते हैं।

1

मुझे एक ही समस्या थी और कुछ स्क्रैबल आधारित साइट पर खोदने के साथ, मैंने अपनी कई शब्द सूचियों को एक अच्छे टेक्स्ट प्रारूप में पाया। उनके पास https://www.wordgamedictionary.com/english-word-list/

+4

क्या आपने इस सूची को बिल्कुल भी नहीं दिया? मैं कुछ चीजें देख रहा हूं जो मुझे वैध शब्दों की तरह नहीं दिखते हैं: 'tween, 10000, 1760s, 1st_Earl_Baldwin_of_Bewdley, 365_days, 5-hydroxy-3-methylglutaryl-coenzyme_A_reductase, आदि ... –

संबंधित मुद्दे