如何连接字典中文本的连续单词?

时间:2013-12-31 12:15:25

标签: python list dictionary graph

我必须在字典中连接文本的连续单词。

案文是:

text = "Hello world I am Josh"

字典将是:

dict = {Hello:[world], world:[Hello, I], I:[am, world], am:[I, Josh], Josh:[am]} 

键是文本中的所有单词,值是连续的单词。 有人有想法弃权吗?

  1. 我会拆分文字。获取列表中的所有单词。
  2. 我会用这些词作为词典的键。

1 个答案:

答案 0 :(得分:4)

使用 pairwise recipe from itertools

def pairwise(iterable):
    a, b = tee(iterable)
    next(b, None)
    return izip(a, b)

adjacent = collections.defaultdict(list)
for left, right in pairwise(text.split()):
    adjacent[right].append(left)
    adjacent[left].append(right)

您的问题不会考虑一个单词出现在句子中的可能性不止一次。您可能需要set而不是list个相邻字词。句子中的标点符号也可能毁掉你的一天,因此根据你的要求,你可能需要做的不仅仅是split()