给定一个 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')]

更新于: 2020 年 2 月 26 日

747 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告