亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將一個列表與一個句子匹配并帶上帶有 id - words 格式的單詞列表

如何將一個列表與一個句子匹配并帶上帶有 id - words 格式的單詞列表

皈依舞 2021-11-02 09:55:34
我有一堆身份證和他們的句子。我需要將此數據與單詞列表進行比較。我希望我的輸出能夠從與單詞列表匹配的句子中獲取 ID 和相應的單詞。我嘗試在 Excel 中完成它們,方法是將文本轉換為列,然后轉置列表,然后進行條件格式設置。但是真的不可能像那個時候有這么多詞的句子,而且有很多句子。有沒有辦法通過 python 編程來完成它們輸入: | ID | data                 |    | List | |----|----------------------| .   hello | 1  | hello can you hear me| .   love | 2  | roses are red        | .   water | 3  | water is life        | .   roses | 4  | pie                  | .   pie | 5  | I love chicken pie   | .   chicken |----|----------------------| .   hear                                   red預期輸出: | ID | data   | |----|--------| | 1  | hello  | | 1  | hear   | | 2  | roses  | | 2  | red    | | 3  | water  | | 4  | pie    | | 5  | love   | | 5  | chicken| | 5  | pie    |
查看完整描述

1 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

假設您有一個包含 ID 和句子的 csv 表sentences.csv,以及一個包含單詞列表的文本文件words.txt,您可以執行以下操作:


import csv


words = set(l.strip() for l in open('words.txt'))

table = []

with open('sentences.csv') as f:

    for sid,sentence in csv.reader(f):

        table += [[word, sid] for word in sentence.split() if word in words]

csv.writer(sys.stdout).writerows(table)

這是表達這一點的緊湊方式,并且在錯誤檢查方式中沒有做太多事情。例如,如果 csv 文件中的某些行中沒有 2 個單元格,則循環將崩潰。更簡單地說,可以將表解析表示為:


 table = [[word,sid] for sid,sentence in csv.reader(open('sentences.csv'))

                     for word in sentence.split() if word in words]

兩者都給出了預期的輸出


hello,1

hear,1

roses,2

red,2

water,3

pie,4

love,5

chicken,5

pie,5


查看完整回答
反對 回復 2021-11-02
  • 1 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號