我是NLP和NLTK的新手,我想找到含糊不清的單詞,即至少含有n
不同標籤的單詞。我有這種方法,但輸出不是混淆。這是一個標籤列表還是別的嗎?
代碼:
def MostAmbiguousWords(words, n):
# wordsUniqeTags holds a list of uniqe tags that have been observed for a given word
wordsUniqeTags = {}
for (w,t) in words:
if wordsUniqeTags.has_key(w):
wordsUniqeTags[w] = wordsUniqeTags[w] | set(t)
else:
wordsUniqeTags[w] = set([t])
# Starting to count
res = []
for w in wordsUniqeTags:
if len(wordsUniqeTags[w]) >= n:
res.append((w, wordsUniqeTags[w]))
return res
MostAmbiguousWords(brown.tagged_words(), 13)
輸出:
[("what's", set(['C', 'B', 'E', 'D', 'H', 'WDT+BEZ', '-', 'N', 'T', 'W', 'V', 'Z', '+'])),
("who's", set(['C', 'B', 'E', 'WPS+BEZ', 'H', '+', '-', 'N', 'P', 'S', 'W', 'V', 'Z'])),
("that's", set(['C', 'B', 'E', 'D', 'H', '+', '-', 'N', 'DT+BEZ', 'P', 'S', 'T', 'W', 'V', 'Z'])),
('that', set(['C', 'D', 'I', 'H', '-', 'L', 'O', 'N', 'Q', 'P', 'S', 'T', 'W', 'CS']))]
現在,我不知道是什麼B
,C
,Q
,等。可以代表。所以,我的問題:
- 這些是什麼?
- 這是什麼意思? (如果他們是標籤)
- 我認爲他們不是標籤,因爲
who
和whats
沒有WH
標籤,指示「wh問題詞」。
如果有人能發佈包含所有可能標記及其含義映射的鏈接,我會很高興。
你如何給單詞添加標籤?它看起來像你截斷或分裂它們。也許不是添加「WH」,而是添加了「W」和「H」? – Colleen
我不這樣做,我使用[brown corpus](http://nltk.org/api/nltk.corpus.html)可供下載[這裏](http://nltk.org/data的.html)。它廣泛用於從事NLP工作的人員。(至少在我看來,很多人正在使用它) –
嗯。我想知道你是否以我沒有看到的方式截斷標籤?如果你在循環的每次迭代中打印出t會發生什麼? – Colleen