में स्ट्रिंग के समानार्थी को संग्रहीत और जांचने के लिए कैसे मैं एक प्रोग्राम बना रहा हूं जो उपयोगकर्ता ने कहा, प्रतिक्रिया चॉट बॉट की तरह कुछ प्रतिक्रिया दे सकता है। लेकिन मुझे आश्चर्य है कि अगर मैं दो या दो से अधिक शब्दों का एक ही अर्थ रखता हूं तो मैं इसे समझ सकता हूं।जावा
उदाहरण के लिए, मैं इसे जवाब देता हूं, "हाँ" जब उपयोगकर्ता कहता है "क्या आप अंधेरे से डरते हैं?"। लेकिन "डर", "डर", और "भयभीत" का एक ही अर्थ है। यदि उपयोगकर्ता "भयभीत" के बजाय "डर" का उपयोग करता है, तो प्रोग्राम कैसे उन दो शब्दों के समान अर्थ को पहचानता है, इसलिए "क्या आप अंधेरे से डरते हैं?" प्रश्न और उत्तर "हां"?
मुझे आश्चर्य है कि क्या मैं {"hello", "hi", "hey"}
या {"afraid", "scared", "frightened"}
आदि जैसे स्ट्रिंग की सरणी बना सकता हूं। मदद के लिए धन्यवाद।
पीएस: मैंने जो प्रोग्राम लिखा है वह अंग्रेजी भाषा का उपयोग नहीं करता है, मुझे डर है कि मैं लाइब्रेरी या एपीआई का उपयोग नहीं कर सकता, लेकिन मुझे समानार्थी सूची को परिभाषित करने में कोई समस्या नहीं है। समानार्थी शब्द
public class Word implements Comparable<Word> {
private String word;
private TreeSet<Word> synonyms;
//getter and setter
public void addSynonym(final Word word) {
synonyms.add(word);
}
@Override
public int compareTo(final Word other) {
if (this.word == null) {
return -1;
if (other == null || other.getWord() == null) {
return 1;
}
return this.word.compareTo(other.getWord());
}
}
तो हम एक शब्द-वर्ग, एक TreeSet साथ (तेजी से खोज के लिए) है:
मैं विचार पसंद है, वह भी मेरी सुझाव में डेटा-दोहराव की समस्या को दूर करेंगे खोजने के लिए मिलता है। – Tobb
मुझे वास्तव में विचार पसंद है लेकिन आवश्यकताओं ने कहा कि पूरा कार्यक्रम जावा में लिखा जाना चाहिए, लेकिन वास्तव में, धन्यवाद। मैं जानना चाहता हूं कि सरणी में कैसे स्टोर किया जाए (मुझे लगता है कि मैं इसे सरल बना दूंगा और उस शब्द को संग्रहीत करने की आवश्यकता नहीं होगी), अगर आपको कोई फर्क नहीं पड़ता। – bronze45
इससे मदद मिल सकती है। https://gist.github.com/4182564 –