我試圖找到不同的方式來編寫語義上類似的「城市中的事件」。我試圖通過查找與「事件」在語義上相似的詞來做到這一點,所以我可以將它們替換。nltk語義詞替換
要找到這些詞我正在使用nltk的wordnet語料庫,但我得到了一些非常奇怪的結果。例如,使用'event.n.01'的下位詞,我得到了「渥太華的奇蹟」。
聯合下標和上位詞看起來一樣糟糕或更糟糕。我想知道是否有人更好地理解結構並能提供潛在的解決方案?
下面是一些示例代碼:
!/usr/bin/python3
import nltk
lemma = 'event.n.01'
synset = nltk.corpus.wordnet.synset(lemma)
print("%s: %s" % (synset.name(), synset.definition()))
print("\nFinding hyponyms...")
print([s.split('.')[0] for w in synset.hyponyms() for s in w.lemma_names()])
print("\nFinding hypernym paths...")
print([s.split('.')[0] for hyprs in synset.hypernym_paths() for hypr in hyprs for s in hypr.lemma_names()])
print("\nFinding co-hyponyms...")
for hypers in synset.hypernym_paths():
for hyper in hypers:
print(hyper.name())
for hypos in hyper.hyponyms():
print("\t%s" % (', '.join(hypos.lemma_names())))
print(synset.similar())
此提醒的是,這是一個好主意,嘗試,並結合不同的方法。我找到了一個搜索查詢語句列表,搜索'events'並找到最常見的POS標籤結構(也許這是語法結構?)。然後,我搜索了那些POS標籤(例如'[n] [in] [n]'),然後嘗試通過加權它們的頻率和路徑相似性來對它們進行排序。這是一個很好的去,但word2vec是少了很多實驗。 – Alter
@Alter出於好奇,你用word2vec獲得了「城市中的事件」是什麼樣的提示? – zvone
word2vec僅用於單詞'events'。它工作得很好,但沒有給它上下文。它有像賽車,運動,音樂會這樣的結果 – Alter