本文整理匯總了Python中nltk.corpus.wordnet.synsets方法的典型用法代碼示例。如果您正苦於以下問題:Python wordnet.synsets方法的具體用法?Python wordnet.synsets怎麽用?Python wordnet.synsets使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類nltk.corpus.wordnet
的用法示例。
在下文中一共展示了wordnet.synsets方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: valid
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def valid(word, replacement):
if replacement.lower() != replacement:
return False
synset_word = wn.synsets(word)
synset_replacement = wn.synsets(replacement)
for item_1 in synset_word:
for item_2 in synset_replacement:
if item_1 == item_2:
return False
# one-step hypernymy/hyponymy check
for item_1 in synset_word:
for subitem in item_1.hypernyms():
for item_2 in synset_replacement:
if item_2 == subitem:
return False
for subitem in item_1.hyponyms():
for item_2 in synset_replacement:
if item_2 == subitem:
return False
return True
示例2: tag_semantic_similarity
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def tag_semantic_similarity(x, y, ic):
mx = wn.morphy(x)
my = wn.morphy(y)
if mx is None or my is None:
return 0
synX = wn.synsets(mx, pos=wn.NOUN)
synY = wn.synsets(my, pos=wn.NOUN)
if len(synX) > 0 and len(synY) > 0:
maxSim = synX[0].lin_similarity(synY[0], ic)
else:
maxSim = 0
return maxSim
示例3: transform_one
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def transform_one(self, obs, target, id):
obs_tokens = nlp_utils._tokenize(obs, token_pattern)
target_tokens = nlp_utils._tokenize(target, token_pattern)
obs_synset_list = [wn.synsets(obs_token) for obs_token in obs_tokens]
target_synset_list = [wn.synsets(target_token) for target_token in target_tokens]
val_list = []
for obs_synset in obs_synset_list:
_val_list = []
for target_synset in target_synset_list:
_s = self._maximum_similarity_for_two_synset_list(obs_synset, target_synset)
_val_list.append(_s)
if len(_val_list) == 0:
_val_list = [config.MISSING_VALUE_NUMERIC]
val_list.append( _val_list )
if len(val_list) == 0:
val_list = [[config.MISSING_VALUE_NUMERIC]]
return val_list
示例4: synset
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def synset(data):
result = {}
syns = wordnet.synsets(data)
list = []
for s in syns:
r = {}
r["name"] = s.name()
r["lemma"] = s.lemmas()[0].name()
r["definition"] = s.definition()
r["examples"] = s.examples()
list.append(r)
result["list"] = list
synonyms = []
antonyms = []
for syn in syns:
for l in syn.lemmas():
synonyms.append(l.name())
if l.antonyms():
antonyms.append(l.antonyms()[0].name())
result["synonyms"] = synonyms
result["antonyms"] = antonyms
return json.loads(jsonpickle.encode(result, unpicklable=False))
示例5: get_hyponym_stems
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_hyponym_stems(item):
word, pos = item
stems = set([])
for synset in wn.synsets(word, pos=pos):
for lemma in synset.lemma_names():
for syn_lemma in wn.synsets(lemma, pos=pos):
try:
syn_lemma_hypos = get_hyponyms(syn_lemma)
except RecursionError:
# print(syn_lemma)
continue
for nym in syn_lemma_hypos:
stems |= set(nym.lemma_names())
stems |= set([get_stem(ln) for ln in nym.lemma_names()])
return (stems - get_stem_set(word))
示例6: get_hyponym_stems_p
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_hyponym_stems_p(item, hyponym_stems_dict):
word, pos = item
item_key = word + '<(-.-)>' + pos
if item_key in hyponym_stems_dict:
return hyponym_stems_dict[item_key]
stems = set([])
for synset in wn.synsets(word, pos=pos):
for lemma in synset.lemma_names():
for syn_lemma in wn.synsets(lemma, pos=pos):
try:
syn_lemma_hypos = get_hyponyms(syn_lemma)
except RecursionError:
# print(syn_lemma)
continue
for nym in syn_lemma_hypos:
stems |= set(nym.lemma_names())
stems |= set([get_stem(ln) for ln in nym.lemma_names()])
result_set = (stems - get_stem_set(word))
hyponym_stems_dict[item_key] = result_set
return result_set
示例7: get_hypernym_stems_p
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_hypernym_stems_p(item, hypernym_stems_dict):
word, pos = item
item_key = word + '<(-.-)>' + pos
if item_key in hypernym_stems_dict:
return hypernym_stems_dict[item_key]
stems = set([])
for synset in wn.synsets(word, pos=pos):
for lemma in synset.lemma_names():
for syn_lemma in wn.synsets(lemma, pos=pos):
try:
syn_lemma_hypers = get_hypernyms(syn_lemma)
except RecursionError:
# print(syn_lemma)
continue
for nym in syn_lemma_hypers:
stems |= set(nym.lemma_names())
stems |= set([get_stem(ln) for ln in nym.lemma_names()])
result_set = (stems - get_stem_set(word))
hypernym_stems_dict[item_key] = result_set
return result_set
示例8: get_hypernym_stems
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_hypernym_stems(item):
word, pos = item
stems = set([])
for synset in wn.synsets(word, pos=pos):
for lemma in synset.lemma_names():
for syn_lemma in wn.synsets(lemma, pos=pos):
try:
syn_lemma_hypers = get_hypernyms(syn_lemma)
except RecursionError:
# print(syn_lemma)
continue
for nym in syn_lemma_hypers:
stems |= set(nym.lemma_names())
stems |= set([get_stem(ln) for ln in nym.lemma_names()])
return (stems - get_stem_set(word))
示例9: get_hypo_up_to_lv_p
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_hypo_up_to_lv_p(item, level, hypo_lvl_dict):
word, pos = item
stems = set([])
item_key = word + '<(-.-)>' + pos + '#' + str(level)
if item_key in hypo_lvl_dict:
return hypo_lvl_dict[item_key]
for synset in wn.synsets(word, pos=pos):
for lemma in synset.lemma_names():
for syn_lemma in wn.synsets(lemma, pos=pos):
for h in syn_lemma.closure(hypo, level):
for h_lemma in h.lemma_names():
stems.add(h_lemma)
stems.add(get_stem(h_lemma))
hypo_lvl_dict[item_key] = stems
return stems
示例10: get_antonym_stems_p
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_antonym_stems_p(item, ant_dict):
word, pos = item
stems = set([])
item_key = word + '<(-.-)>' + pos
if item_key in ant_dict:
return ant_dict[item_key]
for synset in wn.synsets(word, pos=pos):
for lemma in synset.lemma_names():
for syn_lemma in wn.synsets(lemma, pos=pos):
for l in syn_lemma.lemmas():
for antonym in l.antonyms():
stems.add(antonym.name())
stems.add(get_stem(antonym.name()))
ant_dict[item_key] = stems
return stems
示例11: is_exact_match
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def is_exact_match(token1, token2):
token1 = token1.lower()
token2 = token2.lower()
if token1 == token2:
return True
token1_stem = get_stem(token1)
for synsets in wn.synsets(token2):
for lemma in synsets.lemma_names():
if token1_stem == get_stem(lemma):
return True
if token1 == "n't" and token2 == "not":
return True
elif token1 == "not" and token2 == "n't":
return True
elif token1_stem == get_stem(token2):
return True
return False
示例12: graph_synsets
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def graph_synsets(terms, pos=wn.NOUN, depth=2):
"""
Create a networkx graph of the given terms to the given depth.
"""
G = nx.Graph(
name="WordNet Synsets Graph for {}".format(", ".join(terms)), depth=depth,
)
def add_term_links(G, term, current_depth):
for syn in wn.synsets(term):
for name in syn.lemma_names():
G.add_edge(term, name)
if current_depth < depth:
add_term_links(G, name, current_depth+1)
for term in terms:
add_term_links(G, term, 0)
return G
示例13: get_best_synset_pair
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def get_best_synset_pair(word_1, word_2):
"""
Choose the pair with highest path similarity among all pairs.
Mimics pattern-seeking behavior of humans.
"""
max_sim = -1.0
synsets_1 = wn.synsets(word_1)
synsets_2 = wn.synsets(word_2)
if len(synsets_1) == 0 or len(synsets_2) == 0:
return None, None
else:
max_sim = -1.0
best_pair = None, None
for synset_1 in synsets_1:
for synset_2 in synsets_2:
sim = wn.path_similarity(synset_1, synset_2)
if sim is not None and sim > max_sim:
max_sim = sim
best_pair = synset_1, synset_2
return best_pair
示例14: length_dist
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def length_dist(synset_1, synset_2):
"""
Return a measure of the length of the shortest path in the semantic
ontology (Wordnet in our case as well as the paper's) between two
synsets.
"""
l_dist = six.MAXSIZE
if synset_1 is None or synset_2 is None:
return 0.0
if synset_1 == synset_2:
# if synset_1 and synset_2 are the same synset return 0
l_dist = 0.0
else:
wset_1 = set([str(x.name()) for x in synset_1.lemmas()])
wset_2 = set([str(x.name()) for x in synset_2.lemmas()])
if len(wset_1.intersection(wset_2)) > 0:
# if synset_1 != synset_2 but there is word overlap, return 1.0
l_dist = 1.0
else:
# just compute the shortest path between the two
l_dist = synset_1.shortest_path_distance(synset_2)
if l_dist is None:
l_dist = 0.0
# normalize path length to the range [0,1]
return math.exp(-ALPHA * l_dist)
示例15: is_atomic_mwe
# 需要導入模塊: from nltk.corpus import wordnet [as 別名]
# 或者: from nltk.corpus.wordnet import synsets [as 別名]
def is_atomic_mwe(mwe, verb_lemma, complement_lemma, synsets):
mwe_count = 0
for synset in synsets:
gloss_lemmas = set([WordNetLemmatizer().lemmatize(word) for word in synset.definition.split()])
if verb_lemma in gloss_lemmas or complement_lemma in gloss_lemmas:
return False
for syn_lemma in synset.lemmas:
if syn_lemma.name != mwe:
tokens = syn_lemma.name.split('_')
for token in tokens:
if token == verb_lemma:
return False
if len(tokens) == 2 and tokens[1] == complement_lemma:
return False
else:
mwe_count += syn_lemma.count()
return True