0

(1 番目の単語と 2 番目の単語) と (2 番目の単語と 3 番目の単語) の頻度をカウントする 2 単語のダイグラム辞書と 3 単語の文を一致させるのに苦労しています。私が欲しいのは、文字列 ( AAA BBB CCC) がバイグラムにあり、(AAA BBB) にカウントがあり、(BBB CCC) にもカウントがあり、最大値を取る方法です。

Counter({
('BBB', 'DDD'): 3, 
('AAA', 'BBB'): 2, 
('DDD', 'XXX'): 1, 
('DDD', 'YYY'): 1,
('YYY', 'BBB'): 1, 
('BBB', 'CCC'): 1, 
('CCC', 'AAA'): 1, 
('XXX', 'BBB'): 1})
4

1 に答える 1

0

3 単語の文を構成する 2 つのバイグラムをカウンターに問い合わせて比較するのは、非常に簡単です。1 つの方法を次に示します。

def find_sentence_bracketing(sentence, bigram_dict):
    left = sentence[0:2]
    right = sentence[1:3]
    if bigram_dict[left] > bigram_dict[right]:
        return "left bracketing"
    else:
        return "right bracketing"

もちろん、文字列を返す以外のこともできます。これは、基本的な考え方を示すためのものです。

コードの重要な部分は、leftおよびrightバイグラム タプルを生成するタプル スライスであり、これを使用してディクショナリにインデックスを付けることができます。

于 2013-03-10T03:37:45.973 に答える