簡體   English   中英

如何使輸出以正確的格式打印到文件?

[英]How to get the output to be printed in the right form to the file?

我有一份文件清單。 像這樣:

['nn', 'known', "tsutsumi's", 'father', 'yasujiro', 'sowed', 'seeds', "family's", 'dominion']
['un', 'secretary', 'general', 'kofi', 'annan', 'appointed', 'special', 'representative', 'iraq', 'help', 'improve', 'communication', 'iraqi', 'leaders']
['confidence', 'debate', 'repeatedly', 'chided', 'opposition', 'speakers', 'joining', 'groups', 'bitter', 'critics', 'nationalists', 'past']

每個文檔都是一個字符串列表。

我正在對這些文檔進行一些預處理,其中要刪除區分這些詞的后綴。

這是我的代碼:

    results=[]

    with open('/Users/mtr/Documents/Stemtry.txt') as filer:
        for line in filer:
           results.append(line.strip().split())

    result=[]
    final=[]
    temp=[]

    def stemm(n):
        for suffix in ['ing', 'ly', 'ed', 'ious', 'ies', 'ive', 'es', "'s", 'ment', "s", "'ve", "'t", "'"]:
            if n.endswith(suffix):
                return n[:-len(suffix)]
        return n

   for eachitem in results[:10]:
       for n in eachitem:
           r=stemm(n)
           final.append(r)
   print(final)
   result.append(final)

   datafile=open("Stemmingg.txt", "w")
   for each in result:
       for every in each:
           datafile.write(each+' ')
       datafile.write("\n")
   print(datafile)
   datafile.close()

我的問題是,刪除后綴后,該程序會將所有文檔的所有單詞放入一個大列表中。 但是,我希望它們在預處理后以原始形式(即以前的文檔列表)返回。 我應該如何修改代碼?

您是要在文檔的每一行的每個單詞上運行stemm()嗎?

這是代碼:

final = [[stemm(x) for x in line] for line in result]

您的決賽不斷累積。 在外循環中重新定義它:

for eachitem in results[:10]:
    final = []
    for n in eachitem:
        r=stemm(n)
        final.append(r)
   result.append(final)

甚至更好,請使用列表理解

for eachitem in results[:10]:
    final = [stemm(n) for n in eachitem]
    result.append(final)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM