给定Python列表的二元组形式
当我们处理文本分类时,有时我们需要进行某种自然语言处理,因此有时需要形成二元词进行处理。在没有合适的库的情况下,它的困难和必须做同样的事情总是非常有用的。让我们讨论一些可以实现这一目标的方法。
方法 #1:使用列表理解 + enumerate() + split()
上述三个功能的组合可用于完成此特定任务。 enumerate函数执行可能的迭代,split函数用于配对,list comprehension 用于组合逻辑。
# Python3 code to demonstrate
# Bigram formation
# using list comprehension + enumerate() + split()
# initializing list
test_list = ['geeksforgeeks is best', 'I love it']
# printing the original list
print ("The original list is : " + str(test_list))
# using list comprehension + enumerate() + split()
# for Bigram formation
res = [(x, i.split()[j + 1]) for i in test_list
for j, x in enumerate(i.split()) if j < len(i.split()) - 1]
# printing result
print ("The formed bigrams are : " + str(res))
输出 :
The original list is : [‘geeksforgeeks is best’, ‘I love it’]
The formed bigrams are : [(‘geeksforgeeks’, ‘is’), (‘is’, ‘best’), (‘I’, ‘love’), (‘love’, ‘it’)]
方法 #2:使用zip() + split() + list comprehension
在上述方法中执行的枚举任务也可以通过使用迭代器的 zip函数执行,因此以更快的方式执行。让我们讨论一些可以做到这一点的方法。
# Python3 code to demonstrate
# Bigram formation
# using zip() + split() + list comprehension
# initializing list
test_list = ['geeksforgeeks is best', 'I love it']
# printing the original list
print ("The original list is : " + str(test_list))
# using zip() + split() + list comprehension
# for Bigram formation
res = [i for j in test_list
for i in zip(j.split(" ")[:-1], j.split(" ")[1:])]
# printing result
print ("The formed bigrams are : " + str(res))
输出 :
The original list is : [‘geeksforgeeks is best’, ‘I love it’]
The formed bigrams are : [(‘geeksforgeeks’, ‘is’), (‘is’, ‘best’), (‘I’, ‘love’), (‘love’, ‘it’)]