def semantic_analysis(): wikiwordnet = WikiWordnet() text = calculated_text.get(1.0, END) text = text.replace('\n', '') if text == '': return None start = time.time() if letters_in_the_word(text): hyponyms = [] # Кольцо синонимов или синсет - это группа элементов данных, которые считаются семантически эквивалентными # для целей поиска информации synsets2 = wikiwordnet.get_synsets(text) text = '' lemmas2 = [x.lemma() for x in synsets2[0].get_words()] # Synset представляет группу лемм, имеющих одинаковый смысл, а лемма представляет собой отдельную словоформу. for lemma in lemmas2: text += lemma + ' ' synset2 = synsets2[0] for hypernym in wikiwordnet.get_hypernyms(synset2): for w in hypernym.get_words(): text += w.lemma() + ' ' for hyponym in wikiwordnet.get_hyponyms(synset2): for w in hyponym.get_words(): text += w.lemma() + ' ' word_cloud(text) end = time.time() print("Total time: {:.1f}".format(end - start)) else: messagebox.showwarning('Warning!!!', 'One word!', type='ok')
def semantic_analysis(text): wikiwordnet = WikiWordnet() tree_text = re.sub('-', ',', text) if tree_text == '': return None if letters_in_the_word(tree_text): hyponyms = [] # Кольцо синонимов или синсет - это группа элементов данных, которые считаются семантически эквивалентными # для целей поиска информации synsets2 = wikiwordnet.get_synsets(tree_text) text = '' lemmas2 = [x.lemma() for x in synsets2[0].get_words()] # Synset представляет группу лемм, имеющих одинаковый смысл, а лемма представляет собой отдельную словоформу. for lemma in lemmas2: text += lemma + ' ' synset2 = synsets2[0] for hypernym in wikiwordnet.get_hypernyms(synset2): for w in hypernym.get_words(): text += w.lemma() + ' ' for hyponym in wikiwordnet.get_hyponyms(synset2): for w in hyponym.get_words(): text += w.lemma() + ' ' return word_cloud(text)
def view_window(): text = calculated_text.get(1.0, END) text = text.replace('\n', '') if text != '': check = check_word(text) if not check: messagebox.showwarning('!', 'Необходимо ввести одно слово', type='ok') else: wiki_wordnet = WikiWordnet() syn = wiki_wordnet.get_synsets(text.lower()) text = '' for l in syn[0].get_words(): text += l.lemma() + ' ' for i in wiki_wordnet.get_hyponyms(syn[0]): for hyponym in i.get_words(): text += hyponym.lemma() + ' ' for j in wiki_wordnet.get_hypernyms(syn[0]): for hypernym in j.get_words(): text += hypernym.lemma() + ' ' wordcloud = WordCloud(relative_scaling=1.0, ).generate(text) plt.imshow(wordcloud) plt.axis("off") plt.show()
def semantic_parse(text): wiki_wordnet = WikiWordnet() syn = wiki_wordnet.get_synsets(text.lower()) if syn: synonyms = [l.lemma() for l in syn[0].get_words()] hyponyms = [ hyponym.lemma() for i in wiki_wordnet.get_hyponyms(syn[0]) for hyponym in i.get_words() ] hypernyms = [ hypernym.lemma() for j in wiki_wordnet.get_hypernyms(syn[0]) for hypernym in j.get_words() ] else: synonyms = hyponyms = hypernyms = [] return {'synonyms': synonyms, 'hyponyms': hyponyms, 'hypernyms': hypernyms}