給定一個 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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.