我有一個關鍵字串列,我希望在句子串列中匹配這些關鍵字。如果在該句子中找到,則在串列中回傳找到的關鍵字。
我試過的:
sentence = df['List of Content']
list_of_words = ['keyword1','keyword2', 'keyword3']
如果我只選擇一行,則以下內容有效:
[word for word in list_of_words if word in sentence[0]
和輸出
output: ['keyword1', 'keyword3']
所有行的理想輸出是在句子中匹配的關鍵字串列。像這樣的東西:
matching_keywords = [['keyword1', 'keyword3'],['keyword2, 'keyword3'],['keyword1', 'keyword2']..]
但是,當我for在整個串列中運行回圈時,它只會輸出一個空串列[]
我還嘗試了一個嵌套的 for 回圈:
kwords = []
for row in MCC:
for x in list_of_words:
if x in row:
kwords.append(x)
它要么再次給我一個空括號串列,[]要么只是創建一長串重復自己的關鍵字。
我犯了什么錯誤?任何人都可以嘗試幫助我解決邏輯/解決方案。
uj5u.com熱心網友回復:
您可以通過執行以下操作來擴展您的初始方法。
[[word for word in list_of_words if word in row] for row in sentence]
說明:這相當于嵌套串列理解。對于每一行,我們想要一個出現在該行中的關鍵字串列。使用串列理解,這應該寫成
[<list of keywords in row> for row in sentence]
另一方面,如果您正在查看特定行(例如row = sentence[0]),那么當您在問題中陳述時,可以使用 獲得出現在該行中的關鍵字串列[word for word in list_of_words if word in row]。把這些放在一起導致我上面寫的結果,即
[[word for word in list_of_words if word in row] for row in sentence]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456874.html
下一篇:如何不允許輸入負數
