["NOUN"、 "VERB"]のように、各要素が2つのタグのペアである2D配列があり、これらの一意のペアのそれぞれが大きなデータセットで発生する回数をカウントしたいと思います。
これまで、defaultdict(int)とCounter()を使用して、以前に見つからなかった場合、または見つかった場合は値を1増やして、要素を簡単に追加しようとしました。
dTransition = Counter()
# dTransition = defaultdict(int)
# <s> is a start of sentence tag
pairs = [[('<s>', 'NOUN')], [('CCONJ', 'NOUN')], [('NOUN', 'SCONJ')], [('SCONJ', 'NOUN')]]
for pair in pairs:
dTransition[pairs] += 1
これは、2つの引数を受け入れないため、機能しません。したがって、2D配列であるキーがすでに存在するかどうかを辞書で確認する簡単な方法があるかどうか疑問に思います。存在する場合は、値を1増やします。
リストとは異なり、タプルはハッシュ可能であるため、リストをフラット化する必要があります。簡単なオプションは、タプルのリストを使用してを使用itertools.chain
して構築することCounter
です。
from itertools import chain
Counter(chain(*pairs))
出力
Counter({('<s>', 'NOUN'): 1, ('CCONJ', 'NOUN'): 1,
('NOUN', 'SCONJ'): 1, ('SCONJ', 'NOUN'): 1})
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加