[英]ConditionalFreqDist to find most frequent POS tags for words
我正在嘗試為數據集中的單詞找到最常見的 POS 標簽,但在 ConditionalFrewDist 部分苦苦掙扎。
import nltk
tw = nltk.corpus.brown.tagged_words()
train_idx = int(0.8*len(tw))
training_set = tw[:train_idx]
test_set = tw[train_idx:]
words= list(zip(*training_set))[0]
from nltk import ConditionalFreqDist
ofd= ConditionalFreqDist(word for word in list(zip(*training_set))[0])
tags= list(zip(*training_set))[1]
ofd.tabulate(conditions= words, samples= tags)
ValueError:要解包的值太多(預期為 2)
正如您可能在文檔中看到的那樣, ConditionalFreqDist
可以幫助您計算
在不同條件下運行的單個實驗的頻率分布集合。
您唯一必須提供的是可以(在此問題中)翻譯為單詞和相應 POS 標簽的項目和條件列表。 更改最少的代碼看起來像這樣,它將計算整個語料庫的分布,但將前 10 個項目和條件的結果制成表格(防止崩潰):
import nltk
from nltk import ConditionalFreqDist
tw = nltk.corpus.brown.tagged_words()
train_idx = int(0.8*len(tw))
training_set = tw[:train_idx]
test_set = tw[train_idx:]
words= list(zip(*training_set))[0] # items
tags= list(zip(*training_set))[1] # conditions
ofd= ConditionalFreqDist((tag, word) for tag, word in zip(words, tags)) # simple comprehension pattern in python
ofd.tabulate(conditions= words[:10], samples= tags[:10])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.