簡體   English   中英

ConditionalFreqDist 查找單詞最常見的 POS 標簽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM