第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

數(shù)據(jù)生成Python

數(shù)據(jù)生成Python

阿晨1998 2023-03-08 11:19:11
我正在嘗試基于現(xiàn)有數(shù)據(jù)集生成數(shù)據(jù)集,我能夠?qū)崿F(xiàn)一種隨機(jī)更改文件內(nèi)容的方法,但我無法將所有這些寫入文件。此外,我還需要將變化的單詞數(shù)寫入文件,因?yàn)槲蚁胗眠@個(gè)數(shù)據(jù)集來訓(xùn)練神經(jīng)網(wǎng)絡(luò),你能幫幫我嗎?輸入:每個(gè)文件有 2 行文本。輸出:有 3(可能)行的文件:第一行不變,第二行根據(jù)方法更改,第三行顯示更改的單詞數(shù)(如果對(duì)于深度學(xué)習(xí)任務(wù)最好不這樣做,我會(huì)很高興建議,因?yàn)槲沂浅鯇W(xué)者)from random import randrangeimport osPath = "D:\corrected data\\"filelist = os.listdir(Path)if __name__ == "__main__":    new_words = ['consultable', 'partie ', 'celle ', 'également ', 'forte ', 'statistiques ', 'langue ', 'cadeaux', 'publications ', 'notre', 'nous', 'pour', 'suivr', 'les', 'vos', 'visitez ', 'thème ', 'thème  ', 'thème ', 'produits', 'coulisses ', 'un ', 'atelier ', 'concevoir  ', 'personnalisés  ', 'consultable', 'découvrir ', 'fournit ', 'trace ', 'dire ', 'tableau', 'décrire', 'grande ', 'feuille ', 'noter ', 'correspondant', 'propre',]    nb_words_to_replace = randrange(10)    #with open("1.txt") as file:    for i in filelist:       # if i.endswith(".txt"):              with open(Path + i,"r",encoding="utf-8") as file:               # for line in file:                    data = file.readlines()                    first_line = data[0]                    second_line = data[1]                    print(f"Original: {second_line}")                   # print(f"FIle: {file}")                    second_line_array = second_line.split(" ")                    for j in range(nb_words_to_replace):                        replacement_position = randrange(len(second_line_array))                        old_word = second_line_array[replacement_position]                        new_word = new_words[randrange(len(new_words))]                        print(f"Position {replacement_position} : {old_word} -> {new_word}")                        second_line_array[replacement_position] = new_word                    res = " ".join(second_line_array)                    print(f"Result: {res}")            with open(Path + i,"w") as f:                       for line in file:                          if line == second_line:                                f.write(res)
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

簡(jiǎn)而言之,您有兩個(gè)問題:

  • 如何正確替換文件的第 2(和 3)行。

  • 如何跟蹤更改的單詞數(shù)。


如何正確替換文件的第 2(和 3)行。

你的代碼:

with open(Path + i,"w") as f:

   for line in file:

      if line == second_line:

      f.write(res)

未啟用閱讀。for line in file不管用。f已定義,但file改為使用。要解決此問題,請(qǐng)改為執(zhí)行以下操作:


with open(Path + i,"r+") as file:

   lines = file.read().splitlines()    # splitlines() removes the \n characters

   lines[1] = second_line

   file.writelines(lines)

但是,您想向其中添加更多行。我建議你以不同的方式構(gòu)建邏輯。


如何跟蹤更改的單詞數(shù)。

添加變量changed_words_count并在old_word != new_word


結(jié)果代碼:

for i in filelist:

    filepath = Path + i


    # The lines that will be replacing the file

    new_lines = [""] * 3

    

    with open(filepath, "r", encoding="utf-8") as file:

        data = file.readlines()

        first_line = data[0]

        second_line = data[1]

        

        second_line_array = second_line.split(" ")


        changed_words_count = 0

        for j in range(nb_words_to_replace):

            replacement_position = randrange(len(second_line_array))


            old_word = second_line_array[replacement_position]

            new_word = new_words[randrange(len(new_words))]


            # A word replaced does not mean the word has changed.

            # It could be replacing itself.

            # Check if the replacing word is different

            if old_word != new_word:

                changed_words_count += 1

            

            second_line_array[replacement_position] = new_word

        

        # Add the lines to the new file lines

        new_lines[0] = first_line

        new_lines[1] = " ".join(second_line_array)

        new_lines[2] = str(changed_words_count)

        

        print(f"Result: {new_lines[1]}")

    

    with open(filepath, "w") as file:

        file.writelines(new_lines)

注意:代碼未經(jīng)測(cè)試。


查看完整回答
反對(duì) 回復(fù) 2023-03-08
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)