给定一个 Python 列表的双字结构
双字结构是通过给定句子中的每两个连续词创建一个词组来形成的。在 Python 中,这种技术在文本分析中得到了广泛的应用。下面介绍实现这一目标的两种方法。
使用 enumerate 和 split
使用这两个方法,我们首先将句子拆分为多个单词,然后使用 enumerate 函数从连续单词中创建一对单词。
示例
list = ['Stop. look left right. go'] print ("The given list is : \n" + str(list)) # Using enumerate() and split() for Bigram formation output = [(k, m.split()[n + 1]) for m in list for n, k in enumerate(m.split()) if n < len(m.split()) - 1] print ("Bigram formation from given list is: \n" + str(output))
输出
运行上述代码,将得到以下结果 −
The given list is : ['Stop. look left right. go'] Bigram formation from given list is: [('Stop.', 'look'), ('look', 'left'), ('left', 'right.'), ('right.', 'go')]
使用 zip() 和 split()
我们还可以使用 zip 和 split 函数创建双字结构。zip() 函数根据使用 split() 从句子中创建的词将计数器按顺序排列。
示例
list = ['Stop. look left right. go'] print ("The given list is : \n" + str(list)) # Using zip() and split() for Bigram formation output = [m for n in list for m in zip(n.split(" ")[:-1], n.split(" ")[1:])] print ("Bigram formation from given list is: \n" + str(output))
输出
运行上述代码,将得到以下结果 −
The given list is : ['Stop. look left right. go'] Bigram formation from given list is: [('Stop.', 'look'), ('look', 'left'), ('left', 'right.'), ('right.', 'go')]
广告