我正在努力将3个单词的句子与两个单词的digram字典进行匹配,它计算(第一个单词和第二个单词)和(第二个单词和第三个单词)的频率。我想要的是如何匹配字符串(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})
答案 0 :(得分:0)
向你的计数器查询组成三个单词的两个双字母组并进行比较应该非常简单。这是一种方式:
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
bigram元组的元组切片,然后可以用它来索引字典。